Package Information
Downloads: 3 weekly / 103 monthly
Latest Version: 0.1.1
Documentation
n8n-nodes-supercodejs
n8n community node that runs custom JavaScript and supports external npm libraries through a controlled require().
What this node does
- Executes JavaScript in either:
Run For Each ItemmodeRun Once for All Itemsmode
- Lets you load external packages with
require('package-name') - Restricts imports to a per-node allowlist (
Allowed Modules)
Bundled libraries
These are already included in the package:
dayjslodashxlsxpdf-libpdf-parsemammothcsv-parsecsv-stringifyxml2js
Example code inside the node
const dayjs = require('dayjs');
return {
json: {
...$json,
formattedNow: dayjs().format('YYYY-MM-DD HH:mm:ss'),
},
};
Set Allowed Modules to:
dayjs
XLSX example (read first sheet)
const XLSX = require('xlsx');
const b64 = $binary.file.data;
const workbook = XLSX.read(Buffer.from(b64, 'base64'), { type: 'buffer' });
const sheet = workbook.Sheets[workbook.SheetNames[0]];
const rows = XLSX.utils.sheet_to_json(sheet);
return rows.map((row) => ({ json: row }));
Set Allowed Modules to:
xlsx
PDF example (extract text)
const pdfParse = require('pdf-parse');
const b64 = $binary.file.data;
const parsed = await pdfParse(Buffer.from(b64, 'base64'));
return {
json: {
...$json,
text: parsed.text,
pages: parsed.numpages,
},
};
Set Allowed Modules to:
pdf-parse
File conversion example (JSON to CSV)
const { stringify } = require('csv-stringify/sync');
const csv = stringify(items.map((i) => i.json), { header: true });
return {
json: { ...$json, csvLength: csv.length },
binary: {
csv: {
data: Buffer.from(csv, 'utf8').toString('base64'),
mimeType: 'text/csv',
fileName: 'output.csv',
},
},
};
Set Allowed Modules to:
csv-stringify
Add more libraries
npm install <your-library>
Then build:
npm run build
Load in n8n
- Install this package where n8n can load community nodes.
- Restart n8n.
- Add the
Super Code JSnode in your workflow.
Important behavior
require()only works for modules listed inAllowed Modules.- Relative and absolute imports are blocked.
- Node.js built-in modules are blocked.
- Timeout is best-effort for async code.