@tanstack/start-plugin-core 1.120.4-alpha.16 → 1.120.4-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/nitro/nitro-plugin.cjs +3 -19
- package/dist/cjs/nitro/nitro-plugin.cjs.map +1 -1
- package/dist/cjs/plugin.d.cts +0 -6
- package/dist/cjs/schema.cjs +0 -1
- package/dist/cjs/schema.cjs.map +1 -1
- package/dist/cjs/schema.d.cts +0 -16
- package/dist/esm/nitro/nitro-plugin.js +3 -19
- package/dist/esm/nitro/nitro-plugin.js.map +1 -1
- package/dist/esm/plugin.d.ts +0 -6
- package/dist/esm/schema.d.ts +0 -16
- package/dist/esm/schema.js +0 -1
- package/dist/esm/schema.js.map +1 -1
- package/package.json +2 -2
- package/src/nitro/nitro-plugin.ts +0 -18
- package/src/schema.ts +0 -1
|
@@ -37,7 +37,7 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
37
37
|
builder: {
|
|
38
38
|
sharedPlugins: true,
|
|
39
39
|
async buildApp(builder) {
|
|
40
|
-
var _a, _b
|
|
40
|
+
var _a, _b;
|
|
41
41
|
const clientEnv = builder.environments[constants.VITE_ENVIRONMENT_NAMES.client];
|
|
42
42
|
const serverEnv = builder.environments[constants.VITE_ENVIRONMENT_NAMES.server];
|
|
43
43
|
if (!clientEnv) {
|
|
@@ -68,27 +68,11 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
68
68
|
renderer: plugin.ssrEntryFile,
|
|
69
69
|
rollupConfig: {
|
|
70
70
|
plugins: [virtualBundlePlugin(getSsrBundle())]
|
|
71
|
-
},
|
|
72
|
-
routeRules: {
|
|
73
|
-
// TODO: We need to expose *some* kind of routeRules configuration
|
|
74
|
-
// and it needs to translate to this for now. But we should
|
|
75
|
-
// be cognizant of the probability that we will not use Nitro's
|
|
76
|
-
// routeRules configuration in the future.
|
|
77
|
-
...((_a = options.shell) == null ? void 0 : _a.enabled) && options.shell.autoRedirect ? {
|
|
78
|
-
"/**": {
|
|
79
|
-
// @ts-expect-error We are using this as a marker
|
|
80
|
-
__TSS_SHELL: true,
|
|
81
|
-
redirect: {
|
|
82
|
-
to: `${options.shell.prerender.outputPath.replace(/[/]{1,}$/, "")}`,
|
|
83
|
-
statusCode: 200
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
} : {}
|
|
87
71
|
}
|
|
88
72
|
};
|
|
89
73
|
const nitro = await nitropack.createNitro(nitroConfig);
|
|
90
74
|
await buildNitro.buildNitroEnvironment(nitro, () => nitropack.build(nitro));
|
|
91
|
-
if ((
|
|
75
|
+
if ((_a = options.shell) == null ? void 0 : _a.enabled) {
|
|
92
76
|
options.prerender = {
|
|
93
77
|
...options.prerender,
|
|
94
78
|
enabled: true
|
|
@@ -106,7 +90,7 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
106
90
|
}
|
|
107
91
|
});
|
|
108
92
|
}
|
|
109
|
-
if ((
|
|
93
|
+
if ((_b = options.prerender) == null ? void 0 : _b.enabled) {
|
|
110
94
|
await prerender.prerender({
|
|
111
95
|
options,
|
|
112
96
|
nitro,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro-plugin.cjs","sources":["../../../src/nitro/nitro-plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { rmSync } from 'node:fs'\nimport { build, createNitro } from 'nitropack'\nimport { dirname, resolve } from 'pathe'\nimport { clientDistDir, ssrEntryFile } from '../plugin'\nimport { prerender } from '../prerender'\nimport { VITE_ENVIRONMENT_NAMES } from '../constants'\nimport { devServerPlugin } from './dev-server-plugin'\nimport { buildNitroEnvironment } from './build-nitro'\nimport type { EnvironmentOptions, PluginOption, Rollup } from 'vite'\nimport type { NitroConfig } from 'nitropack'\nimport type { TanStackStartOutputConfig } from '../plugin'\n\nexport function nitroPlugin(\n options: TanStackStartOutputConfig,\n getSsrBundle: () => Rollup.OutputBundle,\n): Array<PluginOption> {\n const buildPreset =\n process.env['START_TARGET'] ?? (options.target as string | undefined)\n\n return [\n devServerPlugin(),\n {\n name: 'tanstack-vite-plugin-nitro',\n configEnvironment(name) {\n if (name === VITE_ENVIRONMENT_NAMES.server) {\n return {\n build: {\n commonjsOptions: {\n include: [],\n },\n ssr: true,\n sourcemap: true,\n rollupOptions: {\n input: '/~start/server-entry',\n },\n },\n } satisfies EnvironmentOptions\n }\n\n return null\n },\n config() {\n return {\n builder: {\n sharedPlugins: true,\n async buildApp(builder) {\n const clientEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.client]\n const serverEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.server]\n\n if (!clientEnv) {\n throw new Error('Client environment not found')\n }\n\n if (!serverEnv) {\n throw new Error('SSR environment not found')\n }\n\n const clientOutputDir = resolve(options.root, clientDistDir)\n rmSync(clientOutputDir, { recursive: true, force: true })\n await builder.build(clientEnv)\n\n await builder.build(serverEnv)\n\n const nitroConfig: NitroConfig = {\n dev: false,\n // TODO do we need this? should this be made configurable?\n compatibilityDate: '2024-11-19',\n logLevel: 3,\n preset: buildPreset,\n publicAssets: [\n {\n dir: path.resolve(options.root, clientDistDir),\n },\n ],\n typescript: {\n generateTsConfig: false,\n },\n prerender: undefined,\n renderer: ssrEntryFile,\n rollupConfig: {\n plugins: [virtualBundlePlugin(getSsrBundle())],\n },\n
|
|
1
|
+
{"version":3,"file":"nitro-plugin.cjs","sources":["../../../src/nitro/nitro-plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { rmSync } from 'node:fs'\nimport { build, createNitro } from 'nitropack'\nimport { dirname, resolve } from 'pathe'\nimport { clientDistDir, ssrEntryFile } from '../plugin'\nimport { prerender } from '../prerender'\nimport { VITE_ENVIRONMENT_NAMES } from '../constants'\nimport { devServerPlugin } from './dev-server-plugin'\nimport { buildNitroEnvironment } from './build-nitro'\nimport type { EnvironmentOptions, PluginOption, Rollup } from 'vite'\nimport type { NitroConfig } from 'nitropack'\nimport type { TanStackStartOutputConfig } from '../plugin'\n\nexport function nitroPlugin(\n options: TanStackStartOutputConfig,\n getSsrBundle: () => Rollup.OutputBundle,\n): Array<PluginOption> {\n const buildPreset =\n process.env['START_TARGET'] ?? (options.target as string | undefined)\n\n return [\n devServerPlugin(),\n {\n name: 'tanstack-vite-plugin-nitro',\n configEnvironment(name) {\n if (name === VITE_ENVIRONMENT_NAMES.server) {\n return {\n build: {\n commonjsOptions: {\n include: [],\n },\n ssr: true,\n sourcemap: true,\n rollupOptions: {\n input: '/~start/server-entry',\n },\n },\n } satisfies EnvironmentOptions\n }\n\n return null\n },\n config() {\n return {\n builder: {\n sharedPlugins: true,\n async buildApp(builder) {\n const clientEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.client]\n const serverEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.server]\n\n if (!clientEnv) {\n throw new Error('Client environment not found')\n }\n\n if (!serverEnv) {\n throw new Error('SSR environment not found')\n }\n\n const clientOutputDir = resolve(options.root, clientDistDir)\n rmSync(clientOutputDir, { recursive: true, force: true })\n await builder.build(clientEnv)\n\n await builder.build(serverEnv)\n\n const nitroConfig: NitroConfig = {\n dev: false,\n // TODO do we need this? should this be made configurable?\n compatibilityDate: '2024-11-19',\n logLevel: 3,\n preset: buildPreset,\n publicAssets: [\n {\n dir: path.resolve(options.root, clientDistDir),\n },\n ],\n typescript: {\n generateTsConfig: false,\n },\n prerender: undefined,\n renderer: ssrEntryFile,\n rollupConfig: {\n plugins: [virtualBundlePlugin(getSsrBundle())],\n },\n }\n\n const nitro = await createNitro(nitroConfig)\n\n await buildNitroEnvironment(nitro, () => build(nitro))\n\n if (options.shell?.enabled) {\n options.prerender = {\n ...options.prerender,\n enabled: true,\n }\n\n const maskUrl = new URL(\n options.shell.maskPath,\n 'http://localhost',\n )\n\n maskUrl.searchParams.set('__TSS_SHELL', 'true')\n\n options.pages.push({\n path: maskUrl.toString().replace('http://localhost', ''),\n prerender: options.shell.prerender,\n sitemap: {\n exclude: true,\n },\n })\n }\n\n if (options.prerender?.enabled) {\n await prerender({\n options,\n nitro,\n builder,\n })\n }\n\n // if (nitroConfig.prerender?.routes?.length && options.sitemap) {\n // console.log('Building Sitemap...')\n // // sitemap needs to be built after all directories are built\n // await buildSitemap({\n // host: options.sitemap.host,\n // routes: nitroConfig.prerender.routes,\n // outputDir: resolve(options.root, 'dist/public'),\n // })\n // }\n\n // console.log(\n // `\\n\\n✅ Client and server bundles successfully built.`,\n // )\n },\n },\n }\n },\n },\n ]\n}\n\nfunction virtualBundlePlugin(ssrBundle: Rollup.OutputBundle): Rollup.Plugin {\n type VirtualModule = { code: string; map: string | null }\n const _modules = new Map<string, VirtualModule>()\n\n // group chunks and source maps\n for (const [fileName, content] of Object.entries(ssrBundle)) {\n if (content.type === 'chunk') {\n const virtualModule: VirtualModule = {\n code: content.code,\n map: null,\n }\n const maybeMap = ssrBundle[`${fileName}.map`]\n if (maybeMap && maybeMap.type === 'asset') {\n virtualModule.map = maybeMap.source as string\n }\n _modules.set(fileName, virtualModule)\n _modules.set(resolve(fileName), virtualModule)\n }\n }\n\n return {\n name: 'virtual-bundle',\n resolveId(id, importer) {\n if (_modules.has(id)) {\n return resolve(id)\n }\n\n if (importer) {\n const resolved = resolve(dirname(importer), id)\n if (_modules.has(resolved)) {\n return resolved\n }\n }\n return null\n },\n load(id) {\n const m = _modules.get(id)\n if (!m) {\n return null\n }\n return m\n },\n }\n}\n"],"names":["devServerPlugin","VITE_ENVIRONMENT_NAMES","resolve","clientDistDir","rmSync","ssrEntryFile","createNitro","buildNitroEnvironment","build","prerender","dirname"],"mappings":"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"}
|
package/dist/cjs/plugin.d.cts
CHANGED
|
@@ -1955,7 +1955,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
1955
1955
|
shell: z.ZodOptional<z.ZodObject<{
|
|
1956
1956
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1957
1957
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1958
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1959
1958
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
1960
1959
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1961
1960
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -2371,7 +2370,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2371
2370
|
};
|
|
2372
2371
|
enabled: boolean;
|
|
2373
2372
|
maskPath: string;
|
|
2374
|
-
autoRedirect: boolean;
|
|
2375
2373
|
}, {
|
|
2376
2374
|
prerender?: {
|
|
2377
2375
|
enabled?: boolean | undefined;
|
|
@@ -2413,7 +2411,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2413
2411
|
} | undefined;
|
|
2414
2412
|
enabled?: boolean | undefined;
|
|
2415
2413
|
maskPath?: string | undefined;
|
|
2416
|
-
autoRedirect?: boolean | undefined;
|
|
2417
2414
|
}>>;
|
|
2418
2415
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
2419
2416
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -2717,7 +2714,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2717
2714
|
};
|
|
2718
2715
|
enabled: boolean;
|
|
2719
2716
|
maskPath: string;
|
|
2720
|
-
autoRedirect: boolean;
|
|
2721
2717
|
} | undefined;
|
|
2722
2718
|
}, {
|
|
2723
2719
|
client?: {
|
|
@@ -3019,7 +3015,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
3019
3015
|
} | undefined;
|
|
3020
3016
|
enabled?: boolean | undefined;
|
|
3021
3017
|
maskPath?: string | undefined;
|
|
3022
|
-
autoRedirect?: boolean | undefined;
|
|
3023
3018
|
} | undefined;
|
|
3024
3019
|
}>>>;
|
|
3025
3020
|
export type TanStackStartInputConfig = z.input<typeof TanStackStartOptionsSchema>;
|
|
@@ -3325,7 +3320,6 @@ export declare function getTanStackStartOptions(opts?: TanStackStartInputConfig)
|
|
|
3325
3320
|
};
|
|
3326
3321
|
enabled: boolean;
|
|
3327
3322
|
maskPath: string;
|
|
3328
|
-
autoRedirect: boolean;
|
|
3329
3323
|
} | undefined;
|
|
3330
3324
|
};
|
|
3331
3325
|
export type TanStackStartOutputConfig = ReturnType<typeof getTanStackStartOptions>;
|
package/dist/cjs/schema.cjs
CHANGED
|
@@ -132,7 +132,6 @@ const pagePrerenderOptionsSchema = zod.z.object({
|
|
|
132
132
|
const shellSchema = zod.z.object({
|
|
133
133
|
enabled: zod.z.boolean().optional().default(true),
|
|
134
134
|
maskPath: zod.z.string().optional().default("/"),
|
|
135
|
-
autoRedirect: zod.z.boolean().optional().default(true),
|
|
136
135
|
prerender: pagePrerenderOptionsSchema.optional().default({}).transform((opts) => ({
|
|
137
136
|
outputPath: opts.outputPath ?? "/_shell",
|
|
138
137
|
crawlLinks: false,
|
package/dist/cjs/schema.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.cjs","sources":["../../src/schema.ts"],"sourcesContent":["import path from 'node:path'\nimport { existsSync } from 'node:fs'\nimport { z } from 'zod'\nimport { configSchema, getConfig } from '@tanstack/router-generator'\nimport type { NitroConfig } from 'nitropack'\n\nconst tsrConfig = configSchema.partial().extend({\n srcDirectory: z.string().optional().default('src'),\n})\n\nexport function createTanStackConfig<\n TFrameworkPlugin extends Record<string, unknown>,\n>(frameworkPlugin?: TFrameworkPlugin) {\n const schema = createTanStackStartOptionsSchema(frameworkPlugin)\n\n return {\n schema,\n parse: (opts?: z.input<typeof schema>) => {\n const options = schema.parse(opts)\n\n const srcDirectory = options.tsr.srcDirectory\n\n const routesDirectory =\n options.tsr.routesDirectory ?? path.join(srcDirectory, 'routes')\n\n const generatedRouteTree =\n options.tsr.generatedRouteTree ??\n path.join(srcDirectory, 'routeTree.gen.ts')\n\n const clientEntryPath = (() => {\n if (options.client.entry) {\n return path.join(srcDirectory, options.client.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'client.tsx'))) {\n return path.join(srcDirectory, 'client.tsx')\n }\n\n return '/~start/default-client-entry'\n })()\n\n const serverEntryPath = (() => {\n if (options.server.entry) {\n return path.join(srcDirectory, options.server.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'server.tsx'))) {\n return path.join(srcDirectory, 'server.tsx')\n }\n\n return '/~start/default-server-entry'\n })()\n\n return {\n ...options,\n tsr: {\n ...options.tsr,\n ...getConfig({\n ...options.tsr,\n routesDirectory,\n generatedRouteTree,\n }),\n },\n clientEntryPath,\n serverEntryPath,\n }\n },\n }\n}\n\nexport function createTanStackStartOptionsSchema(\n frameworkPlugin: Record<string, unknown> = {},\n) {\n return z\n .object({\n root: z.string().optional().default(process.cwd()),\n target: z.custom<NitroConfig['preset']>().optional(),\n ...frameworkPlugin,\n tsr: tsrConfig.optional().default({}),\n client: z\n .object({\n entry: z.string().optional(),\n base: z.string().optional().default('/_build'),\n })\n .optional()\n .default({}),\n server: z\n .object({\n entry: z.string().optional(),\n })\n .optional()\n .default({}),\n serverFns: z\n .object({\n base: z.string().optional().default('/_server'),\n })\n .optional()\n .default({}),\n public: z\n .object({\n dir: z.string().optional().default('public'),\n base: z.string().optional().default('/'),\n })\n .optional()\n .default({}),\n pages: z\n .array(z.union([z.string(), pageSchema]))\n .optional()\n .default([]),\n sitemap: pagePrerenderOptionsSchema\n .extend({\n host: z.string().optional(),\n })\n .optional(),\n prerender: z\n .object({\n enabled: z.boolean().optional(),\n concurrency: z.number().optional(),\n filter: z.function().args(pageSchema).returns(z.any()).optional(),\n failOnError: z.boolean().optional(),\n })\n .and(pagePrerenderOptionsSchema.optional())\n .optional(),\n shell: shellSchema.optional(),\n })\n .optional()\n .default({})\n}\n\nconst pageSitemapOptionsSchema = z.object({\n exclude: z.boolean().optional(),\n priority: z.number().min(0).max(1).optional(),\n changefreq: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .optional(),\n lastmod: z.union([z.string(), z.date()]).optional(),\n alternateRefs: z\n .array(\n z.object({\n href: z.string(),\n hreflang: z.string(),\n }),\n )\n .optional(),\n images: z\n .array(\n z.object({\n loc: z.string(),\n caption: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .optional(),\n news: z\n .object({\n publication: z.object({\n name: z.string(),\n language: z.string(),\n }),\n publicationDate: z.union([z.string(), z.date()]),\n title: z.string(),\n })\n .optional(),\n})\n\nconst pageBaseSchema = z.object({\n path: z.string(),\n sitemap: pageSitemapOptionsSchema.optional(),\n fromCrawl: z.boolean().optional(),\n})\n\nconst pagePrerenderOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n outputPath: z.string().optional(),\n autoSubfolderIndex: z.boolean().optional(),\n crawlLinks: z.boolean().optional(),\n retryCount: z.number().optional(),\n retryDelay: z.number().optional(),\n onSuccess: z\n .function()\n .args(\n z.object({\n page: pageBaseSchema,\n html: z.string(),\n }),\n )\n .returns(z.any())\n .optional(),\n})\n\nconst shellSchema = z.object({\n enabled: z.boolean().optional().default(true),\n maskPath: z.string().optional().default('/'),\n autoRedirect: z.boolean().optional().default(true),\n prerender: pagePrerenderOptionsSchema\n .optional()\n .default({})\n .transform((opts) => ({\n outputPath: opts.outputPath ?? '/_shell',\n crawlLinks: false,\n retryCount: 0,\n ...opts,\n enabled: true,\n })),\n})\n\nexport const pageSchema = pageBaseSchema.extend({\n prerender: pagePrerenderOptionsSchema.optional(),\n})\n\nexport type Page = z.infer<typeof pageSchema>\n"],"names":["configSchema","z","existsSync","getConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.cjs","sources":["../../src/schema.ts"],"sourcesContent":["import path from 'node:path'\nimport { existsSync } from 'node:fs'\nimport { z } from 'zod'\nimport { configSchema, getConfig } from '@tanstack/router-generator'\nimport type { NitroConfig } from 'nitropack'\n\nconst tsrConfig = configSchema.partial().extend({\n srcDirectory: z.string().optional().default('src'),\n})\n\nexport function createTanStackConfig<\n TFrameworkPlugin extends Record<string, unknown>,\n>(frameworkPlugin?: TFrameworkPlugin) {\n const schema = createTanStackStartOptionsSchema(frameworkPlugin)\n\n return {\n schema,\n parse: (opts?: z.input<typeof schema>) => {\n const options = schema.parse(opts)\n\n const srcDirectory = options.tsr.srcDirectory\n\n const routesDirectory =\n options.tsr.routesDirectory ?? path.join(srcDirectory, 'routes')\n\n const generatedRouteTree =\n options.tsr.generatedRouteTree ??\n path.join(srcDirectory, 'routeTree.gen.ts')\n\n const clientEntryPath = (() => {\n if (options.client.entry) {\n return path.join(srcDirectory, options.client.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'client.tsx'))) {\n return path.join(srcDirectory, 'client.tsx')\n }\n\n return '/~start/default-client-entry'\n })()\n\n const serverEntryPath = (() => {\n if (options.server.entry) {\n return path.join(srcDirectory, options.server.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'server.tsx'))) {\n return path.join(srcDirectory, 'server.tsx')\n }\n\n return '/~start/default-server-entry'\n })()\n\n return {\n ...options,\n tsr: {\n ...options.tsr,\n ...getConfig({\n ...options.tsr,\n routesDirectory,\n generatedRouteTree,\n }),\n },\n clientEntryPath,\n serverEntryPath,\n }\n },\n }\n}\n\nexport function createTanStackStartOptionsSchema(\n frameworkPlugin: Record<string, unknown> = {},\n) {\n return z\n .object({\n root: z.string().optional().default(process.cwd()),\n target: z.custom<NitroConfig['preset']>().optional(),\n ...frameworkPlugin,\n tsr: tsrConfig.optional().default({}),\n client: z\n .object({\n entry: z.string().optional(),\n base: z.string().optional().default('/_build'),\n })\n .optional()\n .default({}),\n server: z\n .object({\n entry: z.string().optional(),\n })\n .optional()\n .default({}),\n serverFns: z\n .object({\n base: z.string().optional().default('/_server'),\n })\n .optional()\n .default({}),\n public: z\n .object({\n dir: z.string().optional().default('public'),\n base: z.string().optional().default('/'),\n })\n .optional()\n .default({}),\n pages: z\n .array(z.union([z.string(), pageSchema]))\n .optional()\n .default([]),\n sitemap: pagePrerenderOptionsSchema\n .extend({\n host: z.string().optional(),\n })\n .optional(),\n prerender: z\n .object({\n enabled: z.boolean().optional(),\n concurrency: z.number().optional(),\n filter: z.function().args(pageSchema).returns(z.any()).optional(),\n failOnError: z.boolean().optional(),\n })\n .and(pagePrerenderOptionsSchema.optional())\n .optional(),\n shell: shellSchema.optional(),\n })\n .optional()\n .default({})\n}\n\nconst pageSitemapOptionsSchema = z.object({\n exclude: z.boolean().optional(),\n priority: z.number().min(0).max(1).optional(),\n changefreq: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .optional(),\n lastmod: z.union([z.string(), z.date()]).optional(),\n alternateRefs: z\n .array(\n z.object({\n href: z.string(),\n hreflang: z.string(),\n }),\n )\n .optional(),\n images: z\n .array(\n z.object({\n loc: z.string(),\n caption: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .optional(),\n news: z\n .object({\n publication: z.object({\n name: z.string(),\n language: z.string(),\n }),\n publicationDate: z.union([z.string(), z.date()]),\n title: z.string(),\n })\n .optional(),\n})\n\nconst pageBaseSchema = z.object({\n path: z.string(),\n sitemap: pageSitemapOptionsSchema.optional(),\n fromCrawl: z.boolean().optional(),\n})\n\nconst pagePrerenderOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n outputPath: z.string().optional(),\n autoSubfolderIndex: z.boolean().optional(),\n crawlLinks: z.boolean().optional(),\n retryCount: z.number().optional(),\n retryDelay: z.number().optional(),\n onSuccess: z\n .function()\n .args(\n z.object({\n page: pageBaseSchema,\n html: z.string(),\n }),\n )\n .returns(z.any())\n .optional(),\n})\n\nconst shellSchema = z.object({\n enabled: z.boolean().optional().default(true),\n maskPath: z.string().optional().default('/'),\n prerender: pagePrerenderOptionsSchema\n .optional()\n .default({})\n .transform((opts) => ({\n outputPath: opts.outputPath ?? '/_shell',\n crawlLinks: false,\n retryCount: 0,\n ...opts,\n enabled: true,\n })),\n})\n\nexport const pageSchema = pageBaseSchema.extend({\n prerender: pagePrerenderOptionsSchema.optional(),\n})\n\nexport type Page = z.infer<typeof pageSchema>\n"],"names":["configSchema","z","existsSync","getConfig"],"mappings":"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"}
|
package/dist/cjs/schema.d.cts
CHANGED
|
@@ -1954,7 +1954,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
1954
1954
|
shell: z.ZodOptional<z.ZodObject<{
|
|
1955
1955
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1956
1956
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1957
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1958
1957
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
1959
1958
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1960
1959
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -2370,7 +2369,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2370
2369
|
};
|
|
2371
2370
|
enabled: boolean;
|
|
2372
2371
|
maskPath: string;
|
|
2373
|
-
autoRedirect: boolean;
|
|
2374
2372
|
}, {
|
|
2375
2373
|
prerender?: {
|
|
2376
2374
|
enabled?: boolean | undefined;
|
|
@@ -2412,7 +2410,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2412
2410
|
} | undefined;
|
|
2413
2411
|
enabled?: boolean | undefined;
|
|
2414
2412
|
maskPath?: string | undefined;
|
|
2415
|
-
autoRedirect?: boolean | undefined;
|
|
2416
2413
|
}>>;
|
|
2417
2414
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
2418
2415
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -2716,7 +2713,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2716
2713
|
};
|
|
2717
2714
|
enabled: boolean;
|
|
2718
2715
|
maskPath: string;
|
|
2719
|
-
autoRedirect: boolean;
|
|
2720
2716
|
} | undefined;
|
|
2721
2717
|
}, {
|
|
2722
2718
|
client?: {
|
|
@@ -3018,7 +3014,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
3018
3014
|
} | undefined;
|
|
3019
3015
|
enabled?: boolean | undefined;
|
|
3020
3016
|
maskPath?: string | undefined;
|
|
3021
|
-
autoRedirect?: boolean | undefined;
|
|
3022
3017
|
} | undefined;
|
|
3023
3018
|
}>>>;
|
|
3024
3019
|
parse: (opts?: z.input<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
@@ -4975,7 +4970,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
4975
4970
|
shell: z.ZodOptional<z.ZodObject<{
|
|
4976
4971
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
4977
4972
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
4978
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
4979
4973
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
4980
4974
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
4981
4975
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -5391,7 +5385,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5391
5385
|
};
|
|
5392
5386
|
enabled: boolean;
|
|
5393
5387
|
maskPath: string;
|
|
5394
|
-
autoRedirect: boolean;
|
|
5395
5388
|
}, {
|
|
5396
5389
|
prerender?: {
|
|
5397
5390
|
enabled?: boolean | undefined;
|
|
@@ -5433,7 +5426,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5433
5426
|
} | undefined;
|
|
5434
5427
|
enabled?: boolean | undefined;
|
|
5435
5428
|
maskPath?: string | undefined;
|
|
5436
|
-
autoRedirect?: boolean | undefined;
|
|
5437
5429
|
}>>;
|
|
5438
5430
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
5439
5431
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -5737,7 +5729,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5737
5729
|
};
|
|
5738
5730
|
enabled: boolean;
|
|
5739
5731
|
maskPath: string;
|
|
5740
|
-
autoRedirect: boolean;
|
|
5741
5732
|
} | undefined;
|
|
5742
5733
|
}, {
|
|
5743
5734
|
client?: {
|
|
@@ -6039,7 +6030,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
6039
6030
|
} | undefined;
|
|
6040
6031
|
enabled?: boolean | undefined;
|
|
6041
6032
|
maskPath?: string | undefined;
|
|
6042
|
-
autoRedirect?: boolean | undefined;
|
|
6043
6033
|
} | undefined;
|
|
6044
6034
|
}>>>>) => {
|
|
6045
6035
|
tsr: {
|
|
@@ -6343,7 +6333,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
6343
6333
|
};
|
|
6344
6334
|
enabled: boolean;
|
|
6345
6335
|
maskPath: string;
|
|
6346
|
-
autoRedirect: boolean;
|
|
6347
6336
|
} | undefined;
|
|
6348
6337
|
};
|
|
6349
6338
|
};
|
|
@@ -8301,7 +8290,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8301
8290
|
shell: z.ZodOptional<z.ZodObject<{
|
|
8302
8291
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8303
8292
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
8304
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8305
8293
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
8306
8294
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8307
8295
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -8717,7 +8705,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8717
8705
|
};
|
|
8718
8706
|
enabled: boolean;
|
|
8719
8707
|
maskPath: string;
|
|
8720
|
-
autoRedirect: boolean;
|
|
8721
8708
|
}, {
|
|
8722
8709
|
prerender?: {
|
|
8723
8710
|
enabled?: boolean | undefined;
|
|
@@ -8759,7 +8746,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8759
8746
|
} | undefined;
|
|
8760
8747
|
enabled?: boolean | undefined;
|
|
8761
8748
|
maskPath?: string | undefined;
|
|
8762
|
-
autoRedirect?: boolean | undefined;
|
|
8763
8749
|
}>>;
|
|
8764
8750
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
8765
8751
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -9063,7 +9049,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
9063
9049
|
};
|
|
9064
9050
|
enabled: boolean;
|
|
9065
9051
|
maskPath: string;
|
|
9066
|
-
autoRedirect: boolean;
|
|
9067
9052
|
} | undefined;
|
|
9068
9053
|
}, {
|
|
9069
9054
|
client?: {
|
|
@@ -9365,7 +9350,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
9365
9350
|
} | undefined;
|
|
9366
9351
|
enabled?: boolean | undefined;
|
|
9367
9352
|
maskPath?: string | undefined;
|
|
9368
|
-
autoRedirect?: boolean | undefined;
|
|
9369
9353
|
} | undefined;
|
|
9370
9354
|
}>>>;
|
|
9371
9355
|
export declare const pageSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
@@ -35,7 +35,7 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
35
35
|
builder: {
|
|
36
36
|
sharedPlugins: true,
|
|
37
37
|
async buildApp(builder) {
|
|
38
|
-
var _a, _b
|
|
38
|
+
var _a, _b;
|
|
39
39
|
const clientEnv = builder.environments[VITE_ENVIRONMENT_NAMES.client];
|
|
40
40
|
const serverEnv = builder.environments[VITE_ENVIRONMENT_NAMES.server];
|
|
41
41
|
if (!clientEnv) {
|
|
@@ -66,27 +66,11 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
66
66
|
renderer: ssrEntryFile,
|
|
67
67
|
rollupConfig: {
|
|
68
68
|
plugins: [virtualBundlePlugin(getSsrBundle())]
|
|
69
|
-
},
|
|
70
|
-
routeRules: {
|
|
71
|
-
// TODO: We need to expose *some* kind of routeRules configuration
|
|
72
|
-
// and it needs to translate to this for now. But we should
|
|
73
|
-
// be cognizant of the probability that we will not use Nitro's
|
|
74
|
-
// routeRules configuration in the future.
|
|
75
|
-
...((_a = options.shell) == null ? void 0 : _a.enabled) && options.shell.autoRedirect ? {
|
|
76
|
-
"/**": {
|
|
77
|
-
// @ts-expect-error We are using this as a marker
|
|
78
|
-
__TSS_SHELL: true,
|
|
79
|
-
redirect: {
|
|
80
|
-
to: `${options.shell.prerender.outputPath.replace(/[/]{1,}$/, "")}`,
|
|
81
|
-
statusCode: 200
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
} : {}
|
|
85
69
|
}
|
|
86
70
|
};
|
|
87
71
|
const nitro = await createNitro(nitroConfig);
|
|
88
72
|
await buildNitroEnvironment(nitro, () => build(nitro));
|
|
89
|
-
if ((
|
|
73
|
+
if ((_a = options.shell) == null ? void 0 : _a.enabled) {
|
|
90
74
|
options.prerender = {
|
|
91
75
|
...options.prerender,
|
|
92
76
|
enabled: true
|
|
@@ -104,7 +88,7 @@ function nitroPlugin(options, getSsrBundle) {
|
|
|
104
88
|
}
|
|
105
89
|
});
|
|
106
90
|
}
|
|
107
|
-
if ((
|
|
91
|
+
if ((_b = options.prerender) == null ? void 0 : _b.enabled) {
|
|
108
92
|
await prerender({
|
|
109
93
|
options,
|
|
110
94
|
nitro,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro-plugin.js","sources":["../../../src/nitro/nitro-plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { rmSync } from 'node:fs'\nimport { build, createNitro } from 'nitropack'\nimport { dirname, resolve } from 'pathe'\nimport { clientDistDir, ssrEntryFile } from '../plugin'\nimport { prerender } from '../prerender'\nimport { VITE_ENVIRONMENT_NAMES } from '../constants'\nimport { devServerPlugin } from './dev-server-plugin'\nimport { buildNitroEnvironment } from './build-nitro'\nimport type { EnvironmentOptions, PluginOption, Rollup } from 'vite'\nimport type { NitroConfig } from 'nitropack'\nimport type { TanStackStartOutputConfig } from '../plugin'\n\nexport function nitroPlugin(\n options: TanStackStartOutputConfig,\n getSsrBundle: () => Rollup.OutputBundle,\n): Array<PluginOption> {\n const buildPreset =\n process.env['START_TARGET'] ?? (options.target as string | undefined)\n\n return [\n devServerPlugin(),\n {\n name: 'tanstack-vite-plugin-nitro',\n configEnvironment(name) {\n if (name === VITE_ENVIRONMENT_NAMES.server) {\n return {\n build: {\n commonjsOptions: {\n include: [],\n },\n ssr: true,\n sourcemap: true,\n rollupOptions: {\n input: '/~start/server-entry',\n },\n },\n } satisfies EnvironmentOptions\n }\n\n return null\n },\n config() {\n return {\n builder: {\n sharedPlugins: true,\n async buildApp(builder) {\n const clientEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.client]\n const serverEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.server]\n\n if (!clientEnv) {\n throw new Error('Client environment not found')\n }\n\n if (!serverEnv) {\n throw new Error('SSR environment not found')\n }\n\n const clientOutputDir = resolve(options.root, clientDistDir)\n rmSync(clientOutputDir, { recursive: true, force: true })\n await builder.build(clientEnv)\n\n await builder.build(serverEnv)\n\n const nitroConfig: NitroConfig = {\n dev: false,\n // TODO do we need this? should this be made configurable?\n compatibilityDate: '2024-11-19',\n logLevel: 3,\n preset: buildPreset,\n publicAssets: [\n {\n dir: path.resolve(options.root, clientDistDir),\n },\n ],\n typescript: {\n generateTsConfig: false,\n },\n prerender: undefined,\n renderer: ssrEntryFile,\n rollupConfig: {\n plugins: [virtualBundlePlugin(getSsrBundle())],\n },\n
|
|
1
|
+
{"version":3,"file":"nitro-plugin.js","sources":["../../../src/nitro/nitro-plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { rmSync } from 'node:fs'\nimport { build, createNitro } from 'nitropack'\nimport { dirname, resolve } from 'pathe'\nimport { clientDistDir, ssrEntryFile } from '../plugin'\nimport { prerender } from '../prerender'\nimport { VITE_ENVIRONMENT_NAMES } from '../constants'\nimport { devServerPlugin } from './dev-server-plugin'\nimport { buildNitroEnvironment } from './build-nitro'\nimport type { EnvironmentOptions, PluginOption, Rollup } from 'vite'\nimport type { NitroConfig } from 'nitropack'\nimport type { TanStackStartOutputConfig } from '../plugin'\n\nexport function nitroPlugin(\n options: TanStackStartOutputConfig,\n getSsrBundle: () => Rollup.OutputBundle,\n): Array<PluginOption> {\n const buildPreset =\n process.env['START_TARGET'] ?? (options.target as string | undefined)\n\n return [\n devServerPlugin(),\n {\n name: 'tanstack-vite-plugin-nitro',\n configEnvironment(name) {\n if (name === VITE_ENVIRONMENT_NAMES.server) {\n return {\n build: {\n commonjsOptions: {\n include: [],\n },\n ssr: true,\n sourcemap: true,\n rollupOptions: {\n input: '/~start/server-entry',\n },\n },\n } satisfies EnvironmentOptions\n }\n\n return null\n },\n config() {\n return {\n builder: {\n sharedPlugins: true,\n async buildApp(builder) {\n const clientEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.client]\n const serverEnv =\n builder.environments[VITE_ENVIRONMENT_NAMES.server]\n\n if (!clientEnv) {\n throw new Error('Client environment not found')\n }\n\n if (!serverEnv) {\n throw new Error('SSR environment not found')\n }\n\n const clientOutputDir = resolve(options.root, clientDistDir)\n rmSync(clientOutputDir, { recursive: true, force: true })\n await builder.build(clientEnv)\n\n await builder.build(serverEnv)\n\n const nitroConfig: NitroConfig = {\n dev: false,\n // TODO do we need this? should this be made configurable?\n compatibilityDate: '2024-11-19',\n logLevel: 3,\n preset: buildPreset,\n publicAssets: [\n {\n dir: path.resolve(options.root, clientDistDir),\n },\n ],\n typescript: {\n generateTsConfig: false,\n },\n prerender: undefined,\n renderer: ssrEntryFile,\n rollupConfig: {\n plugins: [virtualBundlePlugin(getSsrBundle())],\n },\n }\n\n const nitro = await createNitro(nitroConfig)\n\n await buildNitroEnvironment(nitro, () => build(nitro))\n\n if (options.shell?.enabled) {\n options.prerender = {\n ...options.prerender,\n enabled: true,\n }\n\n const maskUrl = new URL(\n options.shell.maskPath,\n 'http://localhost',\n )\n\n maskUrl.searchParams.set('__TSS_SHELL', 'true')\n\n options.pages.push({\n path: maskUrl.toString().replace('http://localhost', ''),\n prerender: options.shell.prerender,\n sitemap: {\n exclude: true,\n },\n })\n }\n\n if (options.prerender?.enabled) {\n await prerender({\n options,\n nitro,\n builder,\n })\n }\n\n // if (nitroConfig.prerender?.routes?.length && options.sitemap) {\n // console.log('Building Sitemap...')\n // // sitemap needs to be built after all directories are built\n // await buildSitemap({\n // host: options.sitemap.host,\n // routes: nitroConfig.prerender.routes,\n // outputDir: resolve(options.root, 'dist/public'),\n // })\n // }\n\n // console.log(\n // `\\n\\n✅ Client and server bundles successfully built.`,\n // )\n },\n },\n }\n },\n },\n ]\n}\n\nfunction virtualBundlePlugin(ssrBundle: Rollup.OutputBundle): Rollup.Plugin {\n type VirtualModule = { code: string; map: string | null }\n const _modules = new Map<string, VirtualModule>()\n\n // group chunks and source maps\n for (const [fileName, content] of Object.entries(ssrBundle)) {\n if (content.type === 'chunk') {\n const virtualModule: VirtualModule = {\n code: content.code,\n map: null,\n }\n const maybeMap = ssrBundle[`${fileName}.map`]\n if (maybeMap && maybeMap.type === 'asset') {\n virtualModule.map = maybeMap.source as string\n }\n _modules.set(fileName, virtualModule)\n _modules.set(resolve(fileName), virtualModule)\n }\n }\n\n return {\n name: 'virtual-bundle',\n resolveId(id, importer) {\n if (_modules.has(id)) {\n return resolve(id)\n }\n\n if (importer) {\n const resolved = resolve(dirname(importer), id)\n if (_modules.has(resolved)) {\n return resolved\n }\n }\n return null\n },\n load(id) {\n const m = _modules.get(id)\n if (!m) {\n return null\n }\n return m\n },\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/plugin.d.ts
CHANGED
|
@@ -1955,7 +1955,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
1955
1955
|
shell: z.ZodOptional<z.ZodObject<{
|
|
1956
1956
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1957
1957
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1958
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1959
1958
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
1960
1959
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1961
1960
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -2371,7 +2370,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2371
2370
|
};
|
|
2372
2371
|
enabled: boolean;
|
|
2373
2372
|
maskPath: string;
|
|
2374
|
-
autoRedirect: boolean;
|
|
2375
2373
|
}, {
|
|
2376
2374
|
prerender?: {
|
|
2377
2375
|
enabled?: boolean | undefined;
|
|
@@ -2413,7 +2411,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2413
2411
|
} | undefined;
|
|
2414
2412
|
enabled?: boolean | undefined;
|
|
2415
2413
|
maskPath?: string | undefined;
|
|
2416
|
-
autoRedirect?: boolean | undefined;
|
|
2417
2414
|
}>>;
|
|
2418
2415
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
2419
2416
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -2717,7 +2714,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
2717
2714
|
};
|
|
2718
2715
|
enabled: boolean;
|
|
2719
2716
|
maskPath: string;
|
|
2720
|
-
autoRedirect: boolean;
|
|
2721
2717
|
} | undefined;
|
|
2722
2718
|
}, {
|
|
2723
2719
|
client?: {
|
|
@@ -3019,7 +3015,6 @@ declare const TanStackStartOptionsSchema: z.ZodDefault<z.ZodOptional<z.ZodObject
|
|
|
3019
3015
|
} | undefined;
|
|
3020
3016
|
enabled?: boolean | undefined;
|
|
3021
3017
|
maskPath?: string | undefined;
|
|
3022
|
-
autoRedirect?: boolean | undefined;
|
|
3023
3018
|
} | undefined;
|
|
3024
3019
|
}>>>;
|
|
3025
3020
|
export type TanStackStartInputConfig = z.input<typeof TanStackStartOptionsSchema>;
|
|
@@ -3325,7 +3320,6 @@ export declare function getTanStackStartOptions(opts?: TanStackStartInputConfig)
|
|
|
3325
3320
|
};
|
|
3326
3321
|
enabled: boolean;
|
|
3327
3322
|
maskPath: string;
|
|
3328
|
-
autoRedirect: boolean;
|
|
3329
3323
|
} | undefined;
|
|
3330
3324
|
};
|
|
3331
3325
|
export type TanStackStartOutputConfig = ReturnType<typeof getTanStackStartOptions>;
|
package/dist/esm/schema.d.ts
CHANGED
|
@@ -1954,7 +1954,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
1954
1954
|
shell: z.ZodOptional<z.ZodObject<{
|
|
1955
1955
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1956
1956
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
1957
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
1958
1957
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
1959
1958
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1960
1959
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -2370,7 +2369,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2370
2369
|
};
|
|
2371
2370
|
enabled: boolean;
|
|
2372
2371
|
maskPath: string;
|
|
2373
|
-
autoRedirect: boolean;
|
|
2374
2372
|
}, {
|
|
2375
2373
|
prerender?: {
|
|
2376
2374
|
enabled?: boolean | undefined;
|
|
@@ -2412,7 +2410,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2412
2410
|
} | undefined;
|
|
2413
2411
|
enabled?: boolean | undefined;
|
|
2414
2412
|
maskPath?: string | undefined;
|
|
2415
|
-
autoRedirect?: boolean | undefined;
|
|
2416
2413
|
}>>;
|
|
2417
2414
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
2418
2415
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -2716,7 +2713,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
2716
2713
|
};
|
|
2717
2714
|
enabled: boolean;
|
|
2718
2715
|
maskPath: string;
|
|
2719
|
-
autoRedirect: boolean;
|
|
2720
2716
|
} | undefined;
|
|
2721
2717
|
}, {
|
|
2722
2718
|
client?: {
|
|
@@ -3018,7 +3014,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
3018
3014
|
} | undefined;
|
|
3019
3015
|
enabled?: boolean | undefined;
|
|
3020
3016
|
maskPath?: string | undefined;
|
|
3021
|
-
autoRedirect?: boolean | undefined;
|
|
3022
3017
|
} | undefined;
|
|
3023
3018
|
}>>>;
|
|
3024
3019
|
parse: (opts?: z.input<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
@@ -4975,7 +4970,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
4975
4970
|
shell: z.ZodOptional<z.ZodObject<{
|
|
4976
4971
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
4977
4972
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
4978
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
4979
4973
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
4980
4974
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
4981
4975
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -5391,7 +5385,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5391
5385
|
};
|
|
5392
5386
|
enabled: boolean;
|
|
5393
5387
|
maskPath: string;
|
|
5394
|
-
autoRedirect: boolean;
|
|
5395
5388
|
}, {
|
|
5396
5389
|
prerender?: {
|
|
5397
5390
|
enabled?: boolean | undefined;
|
|
@@ -5433,7 +5426,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5433
5426
|
} | undefined;
|
|
5434
5427
|
enabled?: boolean | undefined;
|
|
5435
5428
|
maskPath?: string | undefined;
|
|
5436
|
-
autoRedirect?: boolean | undefined;
|
|
5437
5429
|
}>>;
|
|
5438
5430
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
5439
5431
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -5737,7 +5729,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
5737
5729
|
};
|
|
5738
5730
|
enabled: boolean;
|
|
5739
5731
|
maskPath: string;
|
|
5740
|
-
autoRedirect: boolean;
|
|
5741
5732
|
} | undefined;
|
|
5742
5733
|
}, {
|
|
5743
5734
|
client?: {
|
|
@@ -6039,7 +6030,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
6039
6030
|
} | undefined;
|
|
6040
6031
|
enabled?: boolean | undefined;
|
|
6041
6032
|
maskPath?: string | undefined;
|
|
6042
|
-
autoRedirect?: boolean | undefined;
|
|
6043
6033
|
} | undefined;
|
|
6044
6034
|
}>>>>) => {
|
|
6045
6035
|
tsr: {
|
|
@@ -6343,7 +6333,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
|
|
|
6343
6333
|
};
|
|
6344
6334
|
enabled: boolean;
|
|
6345
6335
|
maskPath: string;
|
|
6346
|
-
autoRedirect: boolean;
|
|
6347
6336
|
} | undefined;
|
|
6348
6337
|
};
|
|
6349
6338
|
};
|
|
@@ -8301,7 +8290,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8301
8290
|
shell: z.ZodOptional<z.ZodObject<{
|
|
8302
8291
|
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8303
8292
|
maskPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
8304
|
-
autoRedirect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
8305
8293
|
prerender: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
8306
8294
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8307
8295
|
outputPath: z.ZodOptional<z.ZodString>;
|
|
@@ -8717,7 +8705,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8717
8705
|
};
|
|
8718
8706
|
enabled: boolean;
|
|
8719
8707
|
maskPath: string;
|
|
8720
|
-
autoRedirect: boolean;
|
|
8721
8708
|
}, {
|
|
8722
8709
|
prerender?: {
|
|
8723
8710
|
enabled?: boolean | undefined;
|
|
@@ -8759,7 +8746,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
8759
8746
|
} | undefined;
|
|
8760
8747
|
enabled?: boolean | undefined;
|
|
8761
8748
|
maskPath?: string | undefined;
|
|
8762
|
-
autoRedirect?: boolean | undefined;
|
|
8763
8749
|
}>>;
|
|
8764
8750
|
root: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
8765
8751
|
target: z.ZodOptional<z.ZodType<import('nitropack/presets').PresetNameInput | undefined, z.ZodTypeDef, import('nitropack/presets').PresetNameInput | undefined>>;
|
|
@@ -9063,7 +9049,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
9063
9049
|
};
|
|
9064
9050
|
enabled: boolean;
|
|
9065
9051
|
maskPath: string;
|
|
9066
|
-
autoRedirect: boolean;
|
|
9067
9052
|
} | undefined;
|
|
9068
9053
|
}, {
|
|
9069
9054
|
client?: {
|
|
@@ -9365,7 +9350,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
|
|
|
9365
9350
|
} | undefined;
|
|
9366
9351
|
enabled?: boolean | undefined;
|
|
9367
9352
|
maskPath?: string | undefined;
|
|
9368
|
-
autoRedirect?: boolean | undefined;
|
|
9369
9353
|
} | undefined;
|
|
9370
9354
|
}>>>;
|
|
9371
9355
|
export declare const pageSchema: z.ZodObject<z.objectUtil.extendShape<{
|
package/dist/esm/schema.js
CHANGED
|
@@ -130,7 +130,6 @@ const pagePrerenderOptionsSchema = z.object({
|
|
|
130
130
|
const shellSchema = z.object({
|
|
131
131
|
enabled: z.boolean().optional().default(true),
|
|
132
132
|
maskPath: z.string().optional().default("/"),
|
|
133
|
-
autoRedirect: z.boolean().optional().default(true),
|
|
134
133
|
prerender: pagePrerenderOptionsSchema.optional().default({}).transform((opts) => ({
|
|
135
134
|
outputPath: opts.outputPath ?? "/_shell",
|
|
136
135
|
crawlLinks: false,
|
package/dist/esm/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sources":["../../src/schema.ts"],"sourcesContent":["import path from 'node:path'\nimport { existsSync } from 'node:fs'\nimport { z } from 'zod'\nimport { configSchema, getConfig } from '@tanstack/router-generator'\nimport type { NitroConfig } from 'nitropack'\n\nconst tsrConfig = configSchema.partial().extend({\n srcDirectory: z.string().optional().default('src'),\n})\n\nexport function createTanStackConfig<\n TFrameworkPlugin extends Record<string, unknown>,\n>(frameworkPlugin?: TFrameworkPlugin) {\n const schema = createTanStackStartOptionsSchema(frameworkPlugin)\n\n return {\n schema,\n parse: (opts?: z.input<typeof schema>) => {\n const options = schema.parse(opts)\n\n const srcDirectory = options.tsr.srcDirectory\n\n const routesDirectory =\n options.tsr.routesDirectory ?? path.join(srcDirectory, 'routes')\n\n const generatedRouteTree =\n options.tsr.generatedRouteTree ??\n path.join(srcDirectory, 'routeTree.gen.ts')\n\n const clientEntryPath = (() => {\n if (options.client.entry) {\n return path.join(srcDirectory, options.client.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'client.tsx'))) {\n return path.join(srcDirectory, 'client.tsx')\n }\n\n return '/~start/default-client-entry'\n })()\n\n const serverEntryPath = (() => {\n if (options.server.entry) {\n return path.join(srcDirectory, options.server.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'server.tsx'))) {\n return path.join(srcDirectory, 'server.tsx')\n }\n\n return '/~start/default-server-entry'\n })()\n\n return {\n ...options,\n tsr: {\n ...options.tsr,\n ...getConfig({\n ...options.tsr,\n routesDirectory,\n generatedRouteTree,\n }),\n },\n clientEntryPath,\n serverEntryPath,\n }\n },\n }\n}\n\nexport function createTanStackStartOptionsSchema(\n frameworkPlugin: Record<string, unknown> = {},\n) {\n return z\n .object({\n root: z.string().optional().default(process.cwd()),\n target: z.custom<NitroConfig['preset']>().optional(),\n ...frameworkPlugin,\n tsr: tsrConfig.optional().default({}),\n client: z\n .object({\n entry: z.string().optional(),\n base: z.string().optional().default('/_build'),\n })\n .optional()\n .default({}),\n server: z\n .object({\n entry: z.string().optional(),\n })\n .optional()\n .default({}),\n serverFns: z\n .object({\n base: z.string().optional().default('/_server'),\n })\n .optional()\n .default({}),\n public: z\n .object({\n dir: z.string().optional().default('public'),\n base: z.string().optional().default('/'),\n })\n .optional()\n .default({}),\n pages: z\n .array(z.union([z.string(), pageSchema]))\n .optional()\n .default([]),\n sitemap: pagePrerenderOptionsSchema\n .extend({\n host: z.string().optional(),\n })\n .optional(),\n prerender: z\n .object({\n enabled: z.boolean().optional(),\n concurrency: z.number().optional(),\n filter: z.function().args(pageSchema).returns(z.any()).optional(),\n failOnError: z.boolean().optional(),\n })\n .and(pagePrerenderOptionsSchema.optional())\n .optional(),\n shell: shellSchema.optional(),\n })\n .optional()\n .default({})\n}\n\nconst pageSitemapOptionsSchema = z.object({\n exclude: z.boolean().optional(),\n priority: z.number().min(0).max(1).optional(),\n changefreq: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .optional(),\n lastmod: z.union([z.string(), z.date()]).optional(),\n alternateRefs: z\n .array(\n z.object({\n href: z.string(),\n hreflang: z.string(),\n }),\n )\n .optional(),\n images: z\n .array(\n z.object({\n loc: z.string(),\n caption: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .optional(),\n news: z\n .object({\n publication: z.object({\n name: z.string(),\n language: z.string(),\n }),\n publicationDate: z.union([z.string(), z.date()]),\n title: z.string(),\n })\n .optional(),\n})\n\nconst pageBaseSchema = z.object({\n path: z.string(),\n sitemap: pageSitemapOptionsSchema.optional(),\n fromCrawl: z.boolean().optional(),\n})\n\nconst pagePrerenderOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n outputPath: z.string().optional(),\n autoSubfolderIndex: z.boolean().optional(),\n crawlLinks: z.boolean().optional(),\n retryCount: z.number().optional(),\n retryDelay: z.number().optional(),\n onSuccess: z\n .function()\n .args(\n z.object({\n page: pageBaseSchema,\n html: z.string(),\n }),\n )\n .returns(z.any())\n .optional(),\n})\n\nconst shellSchema = z.object({\n enabled: z.boolean().optional().default(true),\n maskPath: z.string().optional().default('/'),\n
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../src/schema.ts"],"sourcesContent":["import path from 'node:path'\nimport { existsSync } from 'node:fs'\nimport { z } from 'zod'\nimport { configSchema, getConfig } from '@tanstack/router-generator'\nimport type { NitroConfig } from 'nitropack'\n\nconst tsrConfig = configSchema.partial().extend({\n srcDirectory: z.string().optional().default('src'),\n})\n\nexport function createTanStackConfig<\n TFrameworkPlugin extends Record<string, unknown>,\n>(frameworkPlugin?: TFrameworkPlugin) {\n const schema = createTanStackStartOptionsSchema(frameworkPlugin)\n\n return {\n schema,\n parse: (opts?: z.input<typeof schema>) => {\n const options = schema.parse(opts)\n\n const srcDirectory = options.tsr.srcDirectory\n\n const routesDirectory =\n options.tsr.routesDirectory ?? path.join(srcDirectory, 'routes')\n\n const generatedRouteTree =\n options.tsr.generatedRouteTree ??\n path.join(srcDirectory, 'routeTree.gen.ts')\n\n const clientEntryPath = (() => {\n if (options.client.entry) {\n return path.join(srcDirectory, options.client.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'client.tsx'))) {\n return path.join(srcDirectory, 'client.tsx')\n }\n\n return '/~start/default-client-entry'\n })()\n\n const serverEntryPath = (() => {\n if (options.server.entry) {\n return path.join(srcDirectory, options.server.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'server.tsx'))) {\n return path.join(srcDirectory, 'server.tsx')\n }\n\n return '/~start/default-server-entry'\n })()\n\n return {\n ...options,\n tsr: {\n ...options.tsr,\n ...getConfig({\n ...options.tsr,\n routesDirectory,\n generatedRouteTree,\n }),\n },\n clientEntryPath,\n serverEntryPath,\n }\n },\n }\n}\n\nexport function createTanStackStartOptionsSchema(\n frameworkPlugin: Record<string, unknown> = {},\n) {\n return z\n .object({\n root: z.string().optional().default(process.cwd()),\n target: z.custom<NitroConfig['preset']>().optional(),\n ...frameworkPlugin,\n tsr: tsrConfig.optional().default({}),\n client: z\n .object({\n entry: z.string().optional(),\n base: z.string().optional().default('/_build'),\n })\n .optional()\n .default({}),\n server: z\n .object({\n entry: z.string().optional(),\n })\n .optional()\n .default({}),\n serverFns: z\n .object({\n base: z.string().optional().default('/_server'),\n })\n .optional()\n .default({}),\n public: z\n .object({\n dir: z.string().optional().default('public'),\n base: z.string().optional().default('/'),\n })\n .optional()\n .default({}),\n pages: z\n .array(z.union([z.string(), pageSchema]))\n .optional()\n .default([]),\n sitemap: pagePrerenderOptionsSchema\n .extend({\n host: z.string().optional(),\n })\n .optional(),\n prerender: z\n .object({\n enabled: z.boolean().optional(),\n concurrency: z.number().optional(),\n filter: z.function().args(pageSchema).returns(z.any()).optional(),\n failOnError: z.boolean().optional(),\n })\n .and(pagePrerenderOptionsSchema.optional())\n .optional(),\n shell: shellSchema.optional(),\n })\n .optional()\n .default({})\n}\n\nconst pageSitemapOptionsSchema = z.object({\n exclude: z.boolean().optional(),\n priority: z.number().min(0).max(1).optional(),\n changefreq: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .optional(),\n lastmod: z.union([z.string(), z.date()]).optional(),\n alternateRefs: z\n .array(\n z.object({\n href: z.string(),\n hreflang: z.string(),\n }),\n )\n .optional(),\n images: z\n .array(\n z.object({\n loc: z.string(),\n caption: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .optional(),\n news: z\n .object({\n publication: z.object({\n name: z.string(),\n language: z.string(),\n }),\n publicationDate: z.union([z.string(), z.date()]),\n title: z.string(),\n })\n .optional(),\n})\n\nconst pageBaseSchema = z.object({\n path: z.string(),\n sitemap: pageSitemapOptionsSchema.optional(),\n fromCrawl: z.boolean().optional(),\n})\n\nconst pagePrerenderOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n outputPath: z.string().optional(),\n autoSubfolderIndex: z.boolean().optional(),\n crawlLinks: z.boolean().optional(),\n retryCount: z.number().optional(),\n retryDelay: z.number().optional(),\n onSuccess: z\n .function()\n .args(\n z.object({\n page: pageBaseSchema,\n html: z.string(),\n }),\n )\n .returns(z.any())\n .optional(),\n})\n\nconst shellSchema = z.object({\n enabled: z.boolean().optional().default(true),\n maskPath: z.string().optional().default('/'),\n prerender: pagePrerenderOptionsSchema\n .optional()\n .default({})\n .transform((opts) => ({\n outputPath: opts.outputPath ?? '/_shell',\n crawlLinks: false,\n retryCount: 0,\n ...opts,\n enabled: true,\n })),\n})\n\nexport const pageSchema = pageBaseSchema.extend({\n prerender: pagePrerenderOptionsSchema.optional(),\n})\n\nexport type Page = z.infer<typeof pageSchema>\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/start-plugin-core",
|
|
3
|
-
"version": "1.120.4-alpha.
|
|
3
|
+
"version": "1.120.4-alpha.17",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"xmlbuilder2": "^3.1.1",
|
|
65
65
|
"zod": "^3.24.2",
|
|
66
66
|
"@tanstack/router-core": "^1.120.4-alpha.15",
|
|
67
|
-
"@tanstack/router-generator": "^1.120.4-alpha.15",
|
|
68
67
|
"@tanstack/router-utils": "^1.120.4-alpha.1",
|
|
68
|
+
"@tanstack/router-generator": "^1.120.4-alpha.15",
|
|
69
69
|
"@tanstack/server-functions-plugin": "^1.120.4-alpha.16"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
@@ -83,24 +83,6 @@ export function nitroPlugin(
|
|
|
83
83
|
rollupConfig: {
|
|
84
84
|
plugins: [virtualBundlePlugin(getSsrBundle())],
|
|
85
85
|
},
|
|
86
|
-
routeRules: {
|
|
87
|
-
// TODO: We need to expose *some* kind of routeRules configuration
|
|
88
|
-
// and it needs to translate to this for now. But we should
|
|
89
|
-
// be cognizant of the probability that we will not use Nitro's
|
|
90
|
-
// routeRules configuration in the future.
|
|
91
|
-
...(options.shell?.enabled && options.shell.autoRedirect
|
|
92
|
-
? {
|
|
93
|
-
'/**': {
|
|
94
|
-
// @ts-expect-error We are using this as a marker
|
|
95
|
-
__TSS_SHELL: true,
|
|
96
|
-
redirect: {
|
|
97
|
-
to: `${options.shell.prerender.outputPath.replace(/[/]{1,}$/, '')}`,
|
|
98
|
-
statusCode: 200,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
}
|
|
102
|
-
: {}),
|
|
103
|
-
},
|
|
104
86
|
}
|
|
105
87
|
|
|
106
88
|
const nitro = await createNitro(nitroConfig)
|
package/src/schema.ts
CHANGED
|
@@ -191,7 +191,6 @@ const pagePrerenderOptionsSchema = z.object({
|
|
|
191
191
|
const shellSchema = z.object({
|
|
192
192
|
enabled: z.boolean().optional().default(true),
|
|
193
193
|
maskPath: z.string().optional().default('/'),
|
|
194
|
-
autoRedirect: z.boolean().optional().default(true),
|
|
195
194
|
prerender: pagePrerenderOptionsSchema
|
|
196
195
|
.optional()
|
|
197
196
|
.default({})
|