first commit
This commit is contained in:
10
node_modules/@n8n/node-cli/dist/commands/dev/index.d.ts
generated
vendored
Normal file
10
node_modules/@n8n/node-cli/dist/commands/dev/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Command } from '@oclif/core';
|
||||
export default class Dev extends Command {
|
||||
static description: string;
|
||||
static examples: string[];
|
||||
static flags: {
|
||||
'external-n8n': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
||||
'custom-user-folder': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
||||
};
|
||||
run(): Promise<void>;
|
||||
}
|
||||
109
node_modules/@n8n/node-cli/dist/commands/dev/index.js
generated
vendored
Normal file
109
node_modules/@n8n/node-cli/dist/commands/dev/index.js
generated
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const prompts_1 = require("@clack/prompts");
|
||||
const core_1 = require("@oclif/core");
|
||||
const node_os_1 = __importDefault(require("node:os"));
|
||||
const node_path_1 = __importDefault(require("node:path"));
|
||||
const picocolors_1 = __importDefault(require("picocolors"));
|
||||
const rimraf_1 = require("rimraf");
|
||||
const filesystem_1 = require("../../utils/filesystem");
|
||||
const package_manager_1 = require("../../utils/package-manager");
|
||||
const prompts_2 = require("../../utils/prompts");
|
||||
const validation_1 = require("../../utils/validation");
|
||||
const build_1 = require("../build");
|
||||
const utils_1 = require("./utils");
|
||||
const child_process_1 = require("../../utils/child-process");
|
||||
class Dev extends core_1.Command {
|
||||
async run() {
|
||||
const { flags } = await this.parse(Dev);
|
||||
const packageManager = (await (0, package_manager_1.detectPackageManager)()) ?? 'npm';
|
||||
const { runPersistentCommand } = (0, utils_1.commands)();
|
||||
(0, prompts_1.intro)(picocolors_1.default.inverse(' n8n-node dev '));
|
||||
await (0, prompts_2.ensureN8nPackage)('n8n-node dev');
|
||||
await (0, build_1.copyStaticFiles)();
|
||||
const linkingSpinner = (0, prompts_1.spinner)();
|
||||
linkingSpinner.start('Linking custom node to n8n');
|
||||
await (0, child_process_1.runCommand)(packageManager, ['link']);
|
||||
const n8nUserFolder = flags['custom-user-folder'];
|
||||
const customNodesFolder = node_path_1.default.join(n8nUserFolder, '.n8n', 'custom');
|
||||
await (0, filesystem_1.ensureFolder)(customNodesFolder);
|
||||
const packageName = await (0, utils_1.readPackageName)();
|
||||
const invalidNodeNameError = (0, validation_1.validateNodeName)(packageName);
|
||||
if (invalidNodeNameError)
|
||||
return (0, prompts_2.onCancel)(invalidNodeNameError);
|
||||
await (0, rimraf_1.rimraf)(node_path_1.default.join(customNodesFolder, 'package.json'));
|
||||
await (0, child_process_1.runCommand)(packageManager, ['link', packageName], {
|
||||
cwd: customNodesFolder,
|
||||
});
|
||||
linkingSpinner.stop('Linked custom node to n8n');
|
||||
if (!flags['external-n8n']) {
|
||||
let setupComplete = false;
|
||||
const npxN8nSpinner = (0, prompts_1.spinner)();
|
||||
npxN8nSpinner.start('Starting n8n dev server');
|
||||
prompts_1.log.warn(picocolors_1.default.dim('First run may take a few minutes while dependencies are installed'));
|
||||
try {
|
||||
await Promise.race([
|
||||
new Promise((resolve) => {
|
||||
runPersistentCommand('npx', ['-y', '--quiet', '--prefer-online', 'n8n@latest'], {
|
||||
cwd: n8nUserFolder,
|
||||
env: {
|
||||
...process.env,
|
||||
N8N_DEV_RELOAD: 'true',
|
||||
N8N_RUNNERS_ENABLED: 'true',
|
||||
DB_SQLITE_POOL_SIZE: '10',
|
||||
N8N_USER_FOLDER: n8nUserFolder,
|
||||
},
|
||||
name: 'n8n',
|
||||
color: picocolors_1.default.green,
|
||||
allowOutput: (line) => {
|
||||
if (line.includes('Initializing n8n process')) {
|
||||
resolve();
|
||||
}
|
||||
return setupComplete;
|
||||
},
|
||||
});
|
||||
}),
|
||||
new Promise((_, reject) => {
|
||||
setTimeout(() => {
|
||||
const error = new Error('n8n startup timeout after 120 seconds');
|
||||
reject(error);
|
||||
}, 120_000);
|
||||
}),
|
||||
]);
|
||||
setupComplete = true;
|
||||
npxN8nSpinner.stop('Started n8n dev server');
|
||||
}
|
||||
catch (error) {
|
||||
npxN8nSpinner.stop('Failed to start n8n dev server');
|
||||
(0, prompts_2.onCancel)(error instanceof Error ? error.message : 'Unknown error occurred', 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
(0, prompts_1.outro)('✓ Setup complete');
|
||||
runPersistentCommand(packageManager, ['exec', '--', 'tsc', '--watch'], {
|
||||
name: 'build',
|
||||
color: picocolors_1.default.cyan,
|
||||
});
|
||||
}
|
||||
}
|
||||
Dev.description = 'Run n8n with the node and rebuild on changes for live preview';
|
||||
Dev.examples = [
|
||||
'<%= config.bin %> <%= command.id %>',
|
||||
'<%= config.bin %> <%= command.id %> --external-n8n',
|
||||
'<%= config.bin %> <%= command.id %> --custom-user-folder /Users/test',
|
||||
];
|
||||
Dev.flags = {
|
||||
'external-n8n': core_1.Flags.boolean({
|
||||
default: false,
|
||||
description: 'By default n8n-node dev will run n8n in a sub process. Enable this option if you would like to run n8n elsewhere. Make sure to set N8N_DEV_RELOAD to true in that case.',
|
||||
}),
|
||||
'custom-user-folder': core_1.Flags.directory({
|
||||
default: node_path_1.default.join(node_os_1.default.homedir(), '.n8n-node-cli'),
|
||||
description: 'Folder to use to store user-specific n8n data. By default it will use ~/.n8n-node-cli. The node CLI will install your node here.',
|
||||
}),
|
||||
};
|
||||
exports.default = Dev;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@n8n/node-cli/dist/commands/dev/index.js.map
generated
vendored
Normal file
1
node_modules/@n8n/node-cli/dist/commands/dev/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"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"}
|
||||
12
node_modules/@n8n/node-cli/dist/commands/dev/utils.d.ts
generated
vendored
Normal file
12
node_modules/@n8n/node-cli/dist/commands/dev/utils.d.ts
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
import { type ChildProcess } from 'node:child_process';
|
||||
import type { Formatter } from 'picocolors/types';
|
||||
export declare function commands(): {
|
||||
runPersistentCommand: (cmd: string, args: string[], opts?: {
|
||||
cwd?: string;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
name?: string;
|
||||
color?: Formatter;
|
||||
allowOutput?: (line: string) => boolean;
|
||||
}) => ChildProcess;
|
||||
};
|
||||
export declare function readPackageName(): Promise<string>;
|
||||
115
node_modules/@n8n/node-cli/dist/commands/dev/utils.js
generated
vendored
Normal file
115
node_modules/@n8n/node-cli/dist/commands/dev/utils.js
generated
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.commands = commands;
|
||||
exports.readPackageName = readPackageName;
|
||||
const node_child_process_1 = require("node:child_process");
|
||||
const promises_1 = __importDefault(require("node:fs/promises"));
|
||||
const json_1 = require("../../utils/json");
|
||||
function commands() {
|
||||
const childProcesses = [];
|
||||
let isShuttingDown = false;
|
||||
const registerChild = (child) => {
|
||||
childProcesses.push(child);
|
||||
};
|
||||
const killChild = (child, signal) => {
|
||||
if (!child.killed) {
|
||||
child.kill(signal);
|
||||
}
|
||||
};
|
||||
const forceKillAllChildren = () => {
|
||||
childProcesses.forEach((child) => killChild(child, 'SIGKILL'));
|
||||
process.exit(1);
|
||||
};
|
||||
const gracefulShutdown = (signal) => {
|
||||
if (childProcesses.length === 0) {
|
||||
process.exit();
|
||||
return;
|
||||
}
|
||||
let exitedCount = 0;
|
||||
const totalChildren = childProcesses.length;
|
||||
const forceExitTimer = setTimeout(forceKillAllChildren, 5000);
|
||||
const onChildExit = () => {
|
||||
exitedCount++;
|
||||
if (exitedCount === totalChildren) {
|
||||
clearTimeout(forceExitTimer);
|
||||
process.exit();
|
||||
}
|
||||
};
|
||||
childProcesses.forEach((child) => {
|
||||
if (!child.killed) {
|
||||
child.once('exit', onChildExit);
|
||||
killChild(child, signal);
|
||||
setTimeout(() => killChild(child, 'SIGKILL'), 5000);
|
||||
}
|
||||
else {
|
||||
onChildExit();
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleSignal = (signal) => {
|
||||
if (isShuttingDown) {
|
||||
console.log('\nForce killing processes...');
|
||||
forceKillAllChildren();
|
||||
return;
|
||||
}
|
||||
isShuttingDown = true;
|
||||
if (signal === 'SIGINT') {
|
||||
console.log('\nShutting down gracefully... (press Ctrl+C again to force quit)');
|
||||
}
|
||||
gracefulShutdown(signal);
|
||||
};
|
||||
process.on('SIGINT', () => handleSignal('SIGINT'));
|
||||
process.on('SIGTERM', () => handleSignal('SIGTERM'));
|
||||
const stripAnsiCodes = (input) => input
|
||||
.replace(/\x1Bc/g, '')
|
||||
.replace(/\x1B\[2J/g, '')
|
||||
.replace(/\x1B\[3J/g, '')
|
||||
.replace(/\x1B\[H/g, '')
|
||||
.replace(/\x1B\[0?m/g, '');
|
||||
const createLogger = (name, color, allowOutput) => (text) => {
|
||||
if (allowOutput && !allowOutput(text))
|
||||
return;
|
||||
const prefix = name ? (color ? color(`[${name}]`) : `[${name}]`) : '';
|
||||
console.log(prefix ? `${prefix} ${text}` : text);
|
||||
};
|
||||
const processOutput = (data, logger) => {
|
||||
data
|
||||
.toString()
|
||||
.split('\n')
|
||||
.map((line) => stripAnsiCodes(line).trim())
|
||||
.filter(Boolean)
|
||||
.forEach(logger);
|
||||
};
|
||||
const runPersistentCommand = (cmd, args, opts = {}) => {
|
||||
const child = (0, node_child_process_1.spawn)(cmd, args, {
|
||||
cwd: opts.cwd,
|
||||
env: { ...process.env, ...opts.env },
|
||||
stdio: ['inherit', 'pipe', 'pipe'],
|
||||
shell: process.platform === 'win32',
|
||||
});
|
||||
registerChild(child);
|
||||
const logger = createLogger(opts.name, opts.color, opts.allowOutput);
|
||||
const handleOutput = (data) => processOutput(data, logger);
|
||||
child.stdout?.on('data', handleOutput);
|
||||
child.stderr?.on('data', handleOutput);
|
||||
child.on('close', (code) => {
|
||||
if (!isShuttingDown) {
|
||||
console.log(`${opts.name ?? cmd} exited with code ${code}`);
|
||||
process.exit(code ?? 0);
|
||||
}
|
||||
});
|
||||
return child;
|
||||
};
|
||||
return {
|
||||
runPersistentCommand,
|
||||
};
|
||||
}
|
||||
async function readPackageName() {
|
||||
return await promises_1.default
|
||||
.readFile('package.json', 'utf-8')
|
||||
.then((packageJson) => (0, json_1.jsonParse)(packageJson)?.name ?? 'unknown');
|
||||
}
|
||||
//# sourceMappingURL=utils.js.map
|
||||
1
node_modules/@n8n/node-cli/dist/commands/dev/utils.js.map
generated
vendored
Normal file
1
node_modules/@n8n/node-cli/dist/commands/dev/utils.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dev/utils.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user