diff --git a/packages/nextlove/src/generators/generate-route-types/index.ts b/packages/nextlove/src/generators/generate-route-types/index.ts index 2eedec7bf..8b2919c96 100644 --- a/packages/nextlove/src/generators/generate-route-types/index.ts +++ b/packages/nextlove/src/generators/generate-route-types/index.ts @@ -14,6 +14,11 @@ interface GenerateRouteTypesOpts { * If provided, only routes that return true will be included in the generated types. */ filterRoutes?: (route: string) => boolean + /** + * By default, routes that have `excludeFromOpenApi` set to true will be excluded from the generated types. + * Set this to true to include them. + */ + includeOpenApiExcludedRoutes?: boolean } export const generateRouteTypes = async (opts: GenerateRouteTypesOpts) => { diff --git a/packages/nextlove/src/generators/lib/parse-routes-in-package.ts b/packages/nextlove/src/generators/lib/parse-routes-in-package.ts index d41ed4356..9a2fd3c93 100644 --- a/packages/nextlove/src/generators/lib/parse-routes-in-package.ts +++ b/packages/nextlove/src/generators/lib/parse-routes-in-package.ts @@ -14,6 +14,7 @@ export const parseRoutesInPackage = async (opts: { pathGlob?: string apiPrefix?: string mapFilePathToHTTPRoute?: (file_path: string) => string + includeOpenApiExcludedRoutes?: boolean }): Promise> => { const chalk = (await import("chalk")).default const globby = (await import("globby")).globby @@ -37,7 +38,10 @@ export const parseRoutesInPackage = async (opts: { const { default: routeFn } = await require(path.resolve(p)) if (routeFn) { - if (routeFn._routeSpec?.excludeFromOpenApi) { + if ( + routeFn._routeSpec?.excludeFromOpenApi && + !opts.includeOpenApiExcludedRoutes + ) { console.log( chalk.gray( `Ignoring "${p} because it was excluded from OpenAPI generation"`