feat: Make task runners work with n8n from npm (no-changelog) (#11015)

This commit is contained in:
Tomi Turtiainen
2024-10-02 15:16:02 +03:00
committed by GitHub
parent 6105bfeb4b
commit 74fa259b37
7 changed files with 245 additions and 18 deletions

View File

@@ -3,7 +3,7 @@
"private": true,
"version": "0.1.0",
"description": "",
"main": "dist/index.js",
"main": "dist/start.js",
"scripts": {
"start": "node dist/start.js",
"dev": "pnpm build && pnpm start",
@@ -23,9 +23,9 @@
"package.json",
"tsconfig.json"
],
"main": "dist/index.js",
"module": "src/index.ts",
"types": "dist/index.d.ts",
"main": "dist/start.js",
"module": "src/start.ts",
"types": "dist/start.d.ts",
"packageManager": "pnpm@9.6.0",
"devDependencies": {
"@n8n_io/eslint-config": "^0.0.2",

View File

@@ -1,5 +1,4 @@
import * as a from 'node:assert/strict';
import { JsTaskRunner } from './code';
import { authenticate } from './authenticator';
@@ -7,28 +6,39 @@ let _runner: JsTaskRunner;
type Config = {
n8nUri: string;
authToken: string;
authToken?: string;
grantToken?: string;
};
function readAndParseConfig(): Config {
const authToken = process.env.N8N_RUNNERS_AUTH_TOKEN;
a.ok(authToken, 'Missing task runner auth token. Use N8N_RUNNERS_AUTH_TOKEN to configure it');
const grantToken = process.env.N8N_RUNNERS_GRANT_TOKEN;
if (!authToken && !grantToken) {
throw new Error(
'Missing task runner authentication. Use either N8N_RUNNERS_AUTH_TOKEN or N8N_RUNNERS_GRANT_TOKEN to configure it',
);
}
return {
n8nUri: process.env.N8N_RUNNERS_N8N_URI ?? 'localhost:5678',
authToken,
grantToken,
};
}
void (async function start() {
const config = readAndParseConfig();
const grantToken = await authenticate({
authToken: config.authToken,
n8nUri: config.n8nUri,
});
let grantToken = config.grantToken;
if (!grantToken) {
a.ok(config.authToken);
grantToken = await authenticate({
authToken: config.authToken,
n8nUri: config.n8nUri,
});
}
const wsUrl = `ws://${config.n8nUri}/rest/runners/_ws`;
_runner = new JsTaskRunner('javascript', wsUrl, grantToken, 5);
})();