From c8a89a053300f93efef5ef721dc0e98274663d6f Mon Sep 17 00:00:00 2001 From: EfeDurmaz16 Date: Fri, 15 May 2026 06:40:05 +0300 Subject: [PATCH] fix(nitro): respect workflow dirs option Signed-off-by: EfeDurmaz16 --- .changeset/nitro-workflow-dirs.md | 5 +++++ packages/nitro/src/builders.ts | 4 ++-- packages/nitro/src/index.test.ts | 30 +++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 .changeset/nitro-workflow-dirs.md diff --git a/.changeset/nitro-workflow-dirs.md b/.changeset/nitro-workflow-dirs.md new file mode 100644 index 0000000000..a5a15c9f32 --- /dev/null +++ b/.changeset/nitro-workflow-dirs.md @@ -0,0 +1,5 @@ +--- +'@workflow/nitro': patch +--- + +Respect the `workflow.dirs` Nitro module option when configuring workflow builders. diff --git a/packages/nitro/src/builders.ts b/packages/nitro/src/builders.ts index ee7f2a0297..ffc9b2205f 100644 --- a/packages/nitro/src/builders.ts +++ b/packages/nitro/src/builders.ts @@ -24,7 +24,7 @@ export class VercelBuilder extends VercelBuildOutputAPIBuilder { super({ ...createBaseBuilderConfig({ workingDir: nitro.options.rootDir, - dirs: ['.'], // Different apps that use nitro have different directories + dirs: nitro.options.workflow?.dirs ?? ['.'], // Different apps that use nitro have different directories runtime: nitro.options.workflow?.runtime, sourcemap: nitro.options.workflow?.sourcemap, externalPackages: getNitroStringExternals(nitro), @@ -53,7 +53,7 @@ export class LocalBuilder extends BaseBuilder { ...createBaseBuilderConfig({ workingDir: nitro.options.rootDir, watch: nitro.options.dev, - dirs: ['.'], // Different apps that use nitro have different directories + dirs: nitro.options.workflow?.dirs ?? ['.'], // Different apps that use nitro have different directories 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 4e57f51aa6..c885a9c9a9 100644 --- a/packages/nitro/src/index.test.ts +++ b/packages/nitro/src/index.test.ts @@ -5,11 +5,13 @@ import nitroModule from './index.js'; function createNitroStub({ routing, externals, + workflow, }: { routing: boolean; externals?: { external?: Array boolean)>; }; + workflow?: Record; }) { return { routing, @@ -23,7 +25,7 @@ function createNitroStub({ rootDir: '/tmp/project', typescript: {}, virtual: {}, - workflow: {}, + workflow: workflow ?? {}, }, hooks: { hook() {}, @@ -100,3 +102,29 @@ describe('@workflow/nitro externals forwarding', () => { }); } }); + +describe('@workflow/nitro workflow.dirs forwarding', () => { + for (const [label, Builder] of [ + ['VercelBuilder', VercelBuilder], + ['LocalBuilder', LocalBuilder], + ] as const) { + describe(label, () => { + it('keeps the Nitro-wide scan default when workflow.dirs is unset', () => { + const nitro = createNitroStub({ routing: true }); + const builder = new Builder(nitro) as any; + + expect(builder.config.dirs).toEqual(['.']); + }); + + it('forwards workflow.dirs to the workflow builder', () => { + const nitro = createNitroStub({ + routing: true, + workflow: { dirs: ['workflows', 'src/jobs'] }, + }); + const builder = new Builder(nitro) as any; + + expect(builder.config.dirs).toEqual(['workflows', 'src/jobs']); + }); + }); + } +});