From d109300492a77a48b9baeef8e8435bf65f26fb2c Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Sun, 11 Aug 2024 20:59:38 +0100 Subject: [PATCH] support for cjs and esm javascript --- packages/cli-v3/src/dev/backgroundWorker.ts | 2 +- packages/cli-v3/src/entryPoints/indexer.ts | 20 +++++++++++++++++-- .../v3-catalog/src/trigger/javascript-esm.mjs | 8 ++++++++ .../v3-catalog/src/trigger/javascript.js | 10 ++++++++++ 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 references/v3-catalog/src/trigger/javascript-esm.mjs create mode 100644 references/v3-catalog/src/trigger/javascript.js diff --git a/packages/cli-v3/src/dev/backgroundWorker.ts b/packages/cli-v3/src/dev/backgroundWorker.ts index 19abfdbf5..30ae27a77 100644 --- a/packages/cli-v3/src/dev/backgroundWorker.ts +++ b/packages/cli-v3/src/dev/backgroundWorker.ts @@ -282,7 +282,7 @@ export class BackgroundWorker { resolved = true; child.kill(); reject(new Error("Worker timed out")); - }, 20_000); + }, 9920_000); child.on("message", async (msg: any) => { const message = parseMessageFromCatalog(msg, indexerToWorkerMessages); diff --git a/packages/cli-v3/src/entryPoints/indexer.ts b/packages/cli-v3/src/entryPoints/indexer.ts index f4c1a9117..d5c53517d 100644 --- a/packages/cli-v3/src/entryPoints/indexer.ts +++ b/packages/cli-v3/src/entryPoints/indexer.ts @@ -85,8 +85,8 @@ async function bootstrap() { for (const file of buildManifest.files) { const module = await import(file.out); - for (const exportName of Object.keys(module)) { - const task = module[exportName]; + for (const exportName of getExportNames(module)) { + const task = module[exportName] ?? module.default?.[exportName]; if (!task) { continue; @@ -142,3 +142,19 @@ await sendMessageInCatalog( return; }); + +function getExportNames(module: any) { + const exports: string[] = []; + + const exportKeys = Object.keys(module); + + if (exportKeys.length === 0) { + return exports; + } + + if (exportKeys.length === 1 && exportKeys[0] === "default") { + return Object.keys(module.default); + } + + return exportKeys; +} diff --git a/references/v3-catalog/src/trigger/javascript-esm.mjs b/references/v3-catalog/src/trigger/javascript-esm.mjs new file mode 100644 index 000000000..8603acf6e --- /dev/null +++ b/references/v3-catalog/src/trigger/javascript-esm.mjs @@ -0,0 +1,8 @@ +import { task } from "@trigger.dev/sdk/v3"; + +export const myJavascriptTaskESM = task({ + id: "my-javascript-task-esm", + run: async (payload) => { + console.log("Hello from JavaScript task in esm!"); + }, +}); diff --git a/references/v3-catalog/src/trigger/javascript.js b/references/v3-catalog/src/trigger/javascript.js new file mode 100644 index 000000000..178d36e12 --- /dev/null +++ b/references/v3-catalog/src/trigger/javascript.js @@ -0,0 +1,10 @@ +const { task } = require("@trigger.dev/sdk/v3"); + +const myJavascriptTask = task({ + id: "my-javascript-task", + run: async (payload) => { + console.log("Hello from JavaScript task!"); + }, +}); + +module.exports = { myJavascriptTask };