diff --git a/.changeset/clean-brooms-travel.md b/.changeset/clean-brooms-travel.md new file mode 100644 index 0000000000..f56cf1e467 --- /dev/null +++ b/.changeset/clean-brooms-travel.md @@ -0,0 +1,5 @@ +--- +"@workflow/nitro": patch +--- + +Pass configured Nitro workflow scan directories through to Workflow builders. diff --git a/packages/nitro/src/builders.ts b/packages/nitro/src/builders.ts index 7a8e91f41f..8667feb574 100644 --- a/packages/nitro/src/builders.ts +++ b/packages/nitro/src/builders.ts @@ -31,13 +31,17 @@ function getNitroProjectRoot(nitro: Nitro): string { return nitro.options.workspaceDir ?? nitro.options.rootDir; } +function getNitroWorkflowDirs(nitro: Nitro): string[] { + return nitro.options.workflow?.dirs ?? ['.']; +} + export class VercelBuilder extends VercelBuildOutputAPIBuilder { constructor(nitro: Nitro) { super({ ...createBaseBuilderConfig({ workingDir: nitro.options.rootDir, projectRoot: getNitroProjectRoot(nitro), - dirs: ['.'], // Different apps that use nitro have different directories + dirs: getNitroWorkflowDirs(nitro), runtime: nitro.options.workflow?.runtime, sourcemap: nitro.options.workflow?.sourcemap, externalPackages: getNitroStringExternals(nitro), @@ -67,7 +71,7 @@ export class LocalBuilder extends BaseBuilder { workingDir: nitro.options.rootDir, projectRoot: getNitroProjectRoot(nitro), watch: nitro.options.dev, - dirs: ['.'], // Different apps that use nitro have different directories + dirs: getNitroWorkflowDirs(nitro), sourcemap: nitro.options.workflow?.sourcemap, externalPackages: getNitroStringExternals(nitro), }), diff --git a/packages/nitro/src/index.test.ts b/packages/nitro/src/index.test.ts index 1b0e95bb55..d32dfd83c1 100644 --- a/packages/nitro/src/index.test.ts +++ b/packages/nitro/src/index.test.ts @@ -9,7 +9,7 @@ type StubOptions = { dev?: boolean; preset?: string; workspaceDir?: string; - workflow?: { runtime?: string }; + workflow?: { dirs?: string[]; runtime?: string }; externals?: { external?: Array boolean)>; }; @@ -332,6 +332,18 @@ describe('@workflow/nitro externals forwarding', () => { expect(builder.config.projectRoot).toBe('/tmp'); }); + it('forwards workflow.dirs to the workflow builder', () => { + const nitro = createNitroStub({ + routing: true, + workflow: { dirs: ['server/workflows', 'layers/custom/workflows'] }, + }); + const builder = new Builder(nitro) as any; + expect(builder.config.dirs).toEqual([ + 'server/workflows', + 'layers/custom/workflows', + ]); + }); + it('forwards string entries from nitro.options.externals.external', () => { const nitro = createNitroStub({ routing: true,