From c96cfdb47d2c18010853015a8065a64a25bd04eb Mon Sep 17 00:00:00 2001 From: CaliLuke Date: Sat, 7 Mar 2026 09:32:36 -0800 Subject: [PATCH] fix(router-generator): avoid zod function schema for footer --- packages/router-generator/src/config.ts | 6 +++++- packages/router-generator/tests/config.test.ts | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/router-generator/src/config.ts b/packages/router-generator/src/config.ts index f9680d9d364..0dcb0db65f0 100644 --- a/packages/router-generator/src/config.ts +++ b/packages/router-generator/src/config.ts @@ -15,6 +15,10 @@ const tokenMatcherSchema = z.union([ tokenJsonRegexSchema, ]) +const stringArrayFactorySchema = z.custom<() => Array>( + (value) => typeof value === 'function', +) + export type TokenMatcherJson = string | z.infer export type TokenMatcher = z.infer @@ -61,7 +65,7 @@ export const configSchema = baseConfigSchema.extend({ routeTreeFileFooter: z .union([ z.array(z.string()).optional().default([]), - z.function().returns(z.array(z.string())), + stringArrayFactorySchema, ]) .optional(), autoCodeSplitting: z.boolean().optional(), diff --git a/packages/router-generator/tests/config.test.ts b/packages/router-generator/tests/config.test.ts index 1290920040a..36cedecea12 100644 --- a/packages/router-generator/tests/config.test.ts +++ b/packages/router-generator/tests/config.test.ts @@ -30,4 +30,18 @@ describe('load config tests', () => { ) }, ) + + it('accepts routeTreeFileFooter as a function', () => { + const routeTreeFileFooter = () => ['// append'] + const resolvedConfig = getConfig({ routeTreeFileFooter }) + + expect(resolvedConfig.routeTreeFileFooter).toBe(routeTreeFileFooter) + }) + + it('accepts routeTreeFileFooter as an array', () => { + const routeTreeFileFooter = ['// append'] + const resolvedConfig = getConfig({ routeTreeFileFooter }) + + expect(resolvedConfig.routeTreeFileFooter).toEqual(routeTreeFileFooter) + }) })