diff --git a/.changeset/twelve-actors-hide.md b/.changeset/twelve-actors-hide.md new file mode 100644 index 0000000000..7187b92ab0 --- /dev/null +++ b/.changeset/twelve-actors-hide.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +Fix init.ts auto-import for deployed workers diff --git a/packages/cli-v3/src/build/buildWorker.ts b/packages/cli-v3/src/build/buildWorker.ts index 8c6e2d1cc3..583a9d2d82 100644 --- a/packages/cli-v3/src/build/buildWorker.ts +++ b/packages/cli-v3/src/build/buildWorker.ts @@ -116,6 +116,9 @@ export function rewriteBuildManifestPaths( loaderEntryPoint: buildManifest.loaderEntryPoint ? rewriteOutputPath(destinationDir, buildManifest.loaderEntryPoint) : undefined, + initEntryPoint: buildManifest.initEntryPoint + ? rewriteOutputPath(destinationDir, buildManifest.initEntryPoint) + : undefined, }; } // Remove any query parameters from the entry path diff --git a/packages/cli-v3/src/entryPoints/dev-run-worker.ts b/packages/cli-v3/src/entryPoints/dev-run-worker.ts index 650143118b..66ed02d0db 100644 --- a/packages/cli-v3/src/entryPoints/dev-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/dev-run-worker.ts @@ -104,12 +104,12 @@ const heartbeatIntervalMs = getEnvVar("HEARTBEAT_INTERVAL_MS"); const standardLocalsManager = new StandardLocalsManager(); localsAPI.setGlobalLocalsManager(standardLocalsManager); -const standardRunTimelineMetricsManager = new StandardRunTimelineMetricsManager(); -runTimelineMetrics.setGlobalManager(standardRunTimelineMetricsManager); - const standardLifecycleHooksManager = new StandardLifecycleHooksManager(); lifecycleHooks.setGlobalLifecycleHooksManager(standardLifecycleHooksManager); +const standardRunTimelineMetricsManager = new StandardRunTimelineMetricsManager(); +runTimelineMetrics.setGlobalManager(standardRunTimelineMetricsManager); + const devUsageManager = new DevUsageManager(); usage.setGlobalUsageManager(devUsageManager); timeout.setGlobalManager(new UsageTimeoutManager(devUsageManager)); diff --git a/packages/cli-v3/src/entryPoints/managed-run-worker.ts b/packages/cli-v3/src/entryPoints/managed-run-worker.ts index 9e84130124..d1dc76a27b 100644 --- a/packages/cli-v3/src/entryPoints/managed-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/managed-run-worker.ts @@ -324,6 +324,18 @@ const zodIpc = new ZodIpcConnection({ async () => { const beforeImport = performance.now(); resourceCatalog.setCurrentFileContext(taskManifest.entryPoint, taskManifest.filePath); + + // Load init file if it exists + if (workerManifest.initEntryPoint) { + try { + await import(normalizeImportPath(workerManifest.initEntryPoint)); + console.log(`Loaded init file from ${workerManifest.initEntryPoint}`); + } catch (err) { + console.error(`Failed to load init file`, err); + throw err; + } + } + await import(normalizeImportPath(taskManifest.entryPoint)); resourceCatalog.clearCurrentFileContext(); const durationMs = performance.now() - beforeImport; @@ -439,6 +451,8 @@ const zodIpc = new ZodIpcConnection({ error: { type: "INTERNAL_ERROR", code: TaskRunErrorCodes.CONFIGURED_INCORRECTLY, + message: err instanceof Error ? err.message : String(err), + stackTrace: err instanceof Error ? err.stack : undefined, }, usage: { durationMs: 0, @@ -448,10 +462,7 @@ const zodIpc = new ZodIpcConnection({ }); } }, - FLUSH: async ({ timeoutInMs }, sender) => { - await flushAll(timeoutInMs); - }, - CANCEL: async ({ timeoutInMs }, sender) => { + CANCEL: async ({ timeoutInMs }) => { _isCancelled = true; cancelController.abort("run cancelled"); await callCancelHooks(timeoutInMs); @@ -460,6 +471,9 @@ const zodIpc = new ZodIpcConnection({ } await flushAll(timeoutInMs); }, + FLUSH: async ({ timeoutInMs }) => { + await flushAll(timeoutInMs); + }, RESOLVE_WAITPOINT: async ({ waitpoint }) => { sharedWorkerRuntime.resolveWaitpoints([waitpoint]); },