@tanstack/start-plugin-core 1.20.3-alpha.1
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/LICENSE +21 -0
- package/README.md +12 -0
- package/dist/cjs/compilers.cjs +402 -0
- package/dist/cjs/compilers.cjs.map +1 -0
- package/dist/cjs/compilers.d.cts +21 -0
- package/dist/cjs/extractHtmlScripts.cjs +35 -0
- package/dist/cjs/extractHtmlScripts.cjs.map +1 -0
- package/dist/cjs/extractHtmlScripts.d.cts +4 -0
- package/dist/cjs/index.cjs +15 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +7 -0
- package/dist/cjs/nitro/build-nitro.cjs +18 -0
- package/dist/cjs/nitro/build-nitro.cjs.map +1 -0
- package/dist/cjs/nitro/build-nitro.d.cts +2 -0
- package/dist/cjs/nitro/build-sitemap.cjs +54 -0
- package/dist/cjs/nitro/build-sitemap.cjs.map +1 -0
- package/dist/cjs/nitro/build-sitemap.d.cts +9 -0
- package/dist/cjs/nitro/dev-server-plugin.cjs +128 -0
- package/dist/cjs/nitro/dev-server-plugin.cjs.map +1 -0
- package/dist/cjs/nitro/dev-server-plugin.d.cts +5 -0
- package/dist/cjs/nitro/nitro-plugin.cjs +128 -0
- package/dist/cjs/nitro/nitro-plugin.cjs.map +1 -0
- package/dist/cjs/nitro/nitro-plugin.d.cts +3 -0
- package/dist/cjs/plugin.cjs +117 -0
- package/dist/cjs/plugin.cjs.map +1 -0
- package/dist/cjs/plugin.d.cts +2713 -0
- package/dist/cjs/prerender.cjs +171 -0
- package/dist/cjs/prerender.cjs.map +1 -0
- package/dist/cjs/prerender.d.cts +8 -0
- package/dist/cjs/queue.cjs +131 -0
- package/dist/cjs/queue.cjs.map +1 -0
- package/dist/cjs/queue.d.cts +32 -0
- package/dist/cjs/routesManifestPlugin.cjs +165 -0
- package/dist/cjs/routesManifestPlugin.cjs.map +1 -0
- package/dist/cjs/routesManifestPlugin.d.cts +3 -0
- package/dist/cjs/schema.cjs +136 -0
- package/dist/cjs/schema.cjs.map +1 -0
- package/dist/cjs/schema.d.cts +8128 -0
- package/dist/cjs/start-compiler-plugin.cjs +72 -0
- package/dist/cjs/start-compiler-plugin.cjs.map +1 -0
- package/dist/cjs/start-compiler-plugin.d.cts +13 -0
- package/dist/cjs/start-server-routes-plugin/config.d.cts +49 -0
- package/dist/cjs/start-server-routes-plugin/plugin.cjs +608 -0
- package/dist/cjs/start-server-routes-plugin/plugin.cjs.map +1 -0
- package/dist/cjs/start-server-routes-plugin/plugin.d.cts +3 -0
- package/dist/cjs/start-server-routes-plugin/template.cjs +111 -0
- package/dist/cjs/start-server-routes-plugin/template.cjs.map +1 -0
- package/dist/cjs/start-server-routes-plugin/template.d.cts +34 -0
- package/dist/esm/compilers.d.ts +21 -0
- package/dist/esm/compilers.js +384 -0
- package/dist/esm/compilers.js.map +1 -0
- package/dist/esm/extractHtmlScripts.d.ts +4 -0
- package/dist/esm/extractHtmlScripts.js +18 -0
- package/dist/esm/extractHtmlScripts.js.map +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/nitro/build-nitro.d.ts +2 -0
- package/dist/esm/nitro/build-nitro.js +18 -0
- package/dist/esm/nitro/build-nitro.js.map +1 -0
- package/dist/esm/nitro/build-sitemap.d.ts +9 -0
- package/dist/esm/nitro/build-sitemap.js +54 -0
- package/dist/esm/nitro/build-sitemap.js.map +1 -0
- package/dist/esm/nitro/dev-server-plugin.d.ts +5 -0
- package/dist/esm/nitro/dev-server-plugin.js +128 -0
- package/dist/esm/nitro/dev-server-plugin.js.map +1 -0
- package/dist/esm/nitro/nitro-plugin.d.ts +3 -0
- package/dist/esm/nitro/nitro-plugin.js +128 -0
- package/dist/esm/nitro/nitro-plugin.js.map +1 -0
- package/dist/esm/plugin.d.ts +2713 -0
- package/dist/esm/plugin.js +117 -0
- package/dist/esm/plugin.js.map +1 -0
- package/dist/esm/prerender.d.ts +8 -0
- package/dist/esm/prerender.js +171 -0
- package/dist/esm/prerender.js.map +1 -0
- package/dist/esm/queue.d.ts +32 -0
- package/dist/esm/queue.js +131 -0
- package/dist/esm/queue.js.map +1 -0
- package/dist/esm/routesManifestPlugin.d.ts +3 -0
- package/dist/esm/routesManifestPlugin.js +165 -0
- package/dist/esm/routesManifestPlugin.js.map +1 -0
- package/dist/esm/schema.d.ts +8128 -0
- package/dist/esm/schema.js +136 -0
- package/dist/esm/schema.js.map +1 -0
- package/dist/esm/start-compiler-plugin.d.ts +13 -0
- package/dist/esm/start-compiler-plugin.js +72 -0
- package/dist/esm/start-compiler-plugin.js.map +1 -0
- package/dist/esm/start-server-routes-plugin/config.d.ts +49 -0
- package/dist/esm/start-server-routes-plugin/plugin.d.ts +3 -0
- package/dist/esm/start-server-routes-plugin/plugin.js +608 -0
- package/dist/esm/start-server-routes-plugin/plugin.js.map +1 -0
- package/dist/esm/start-server-routes-plugin/template.d.ts +34 -0
- package/dist/esm/start-server-routes-plugin/template.js +111 -0
- package/dist/esm/start-server-routes-plugin/template.js.map +1 -0
- package/package.json +72 -0
- package/src/compilers.ts +759 -0
- package/src/extractHtmlScripts.ts +19 -0
- package/src/index.ts +15 -0
- package/src/nitro/build-nitro.ts +27 -0
- package/src/nitro/build-sitemap.ts +79 -0
- package/src/nitro/dev-server-plugin.ts +159 -0
- package/src/nitro/nitro-plugin.ts +161 -0
- package/src/plugin.ts +145 -0
- package/src/prerender.ts +245 -0
- package/src/queue.ts +153 -0
- package/src/routesManifestPlugin.ts +216 -0
- package/src/schema.ts +193 -0
- package/src/start-compiler-plugin.ts +111 -0
- package/src/start-server-routes-plugin/config.ts +8 -0
- package/src/start-server-routes-plugin/plugin.ts +890 -0
- package/src/start-server-routes-plugin/template.ts +164 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const node_url = require("node:url");
|
|
4
|
+
const routerUtils = require("@tanstack/router-utils");
|
|
5
|
+
const compilers = require("./compilers.cjs");
|
|
6
|
+
const debug = process.env.TSR_VITE_DEBUG && ["true", "start-plugin"].includes(process.env.TSR_VITE_DEBUG);
|
|
7
|
+
const transformFuncs = [
|
|
8
|
+
"createServerFn",
|
|
9
|
+
"createMiddleware",
|
|
10
|
+
"serverOnly",
|
|
11
|
+
"clientOnly",
|
|
12
|
+
"createIsomorphicFn",
|
|
13
|
+
"createServerFileRoute"
|
|
14
|
+
];
|
|
15
|
+
const tokenRegex = new RegExp(transformFuncs.join("|"));
|
|
16
|
+
function TanStackStartCompilerPlugin(framework, inputOpts) {
|
|
17
|
+
const opts = {
|
|
18
|
+
client: {
|
|
19
|
+
envName: "client",
|
|
20
|
+
...inputOpts == null ? void 0 : inputOpts.client
|
|
21
|
+
},
|
|
22
|
+
server: {
|
|
23
|
+
envName: "server",
|
|
24
|
+
...inputOpts == null ? void 0 : inputOpts.server
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
name: "vite-plugin-tanstack-start-create-server-fn",
|
|
29
|
+
enforce: "pre",
|
|
30
|
+
applyToEnvironment(env) {
|
|
31
|
+
return [opts.client.envName, opts.server.envName].includes(env.name);
|
|
32
|
+
},
|
|
33
|
+
transform(code, id) {
|
|
34
|
+
const env = this.environment.name === opts.client.envName ? "client" : this.environment.name === opts.server.envName ? "server" : (() => {
|
|
35
|
+
throw new Error(
|
|
36
|
+
`Environment ${this.environment.name} not configured`
|
|
37
|
+
);
|
|
38
|
+
})();
|
|
39
|
+
return transformCode({
|
|
40
|
+
code,
|
|
41
|
+
id,
|
|
42
|
+
env,
|
|
43
|
+
framework
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function transformCode(opts) {
|
|
49
|
+
const { code, env, framework } = opts;
|
|
50
|
+
let { id } = opts;
|
|
51
|
+
const url = node_url.pathToFileURL(id);
|
|
52
|
+
url.searchParams.delete("v");
|
|
53
|
+
id = node_url.fileURLToPath(url).replace(/\\/g, "/");
|
|
54
|
+
const includesToken = tokenRegex.test(code);
|
|
55
|
+
if (!includesToken) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (debug) console.info(`${env} Compiling Start: `, id);
|
|
59
|
+
const compileStartOutput = compilers.compileStartOutputFactory(framework);
|
|
60
|
+
const compiled = compileStartOutput({
|
|
61
|
+
code,
|
|
62
|
+
filename: id,
|
|
63
|
+
env
|
|
64
|
+
});
|
|
65
|
+
if (debug) {
|
|
66
|
+
routerUtils.logDiff(code, compiled.code);
|
|
67
|
+
console.log("Output:\n", compiled.code + "\n\n");
|
|
68
|
+
}
|
|
69
|
+
return compiled;
|
|
70
|
+
}
|
|
71
|
+
exports.TanStackStartCompilerPlugin = TanStackStartCompilerPlugin;
|
|
72
|
+
//# sourceMappingURL=start-compiler-plugin.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-compiler-plugin.cjs","sources":["../../src/start-compiler-plugin.ts"],"sourcesContent":["import { fileURLToPath, pathToFileURL } from 'node:url'\nimport { logDiff } from '@tanstack/router-utils'\n\nimport { compileStartOutputFactory } from './compilers'\nimport type { Plugin } from 'vite'\nimport type { CompileStartFrameworkOptions } from './compilers'\n\nconst debug =\n process.env.TSR_VITE_DEBUG &&\n ['true', 'start-plugin'].includes(process.env.TSR_VITE_DEBUG)\n\nexport type TanStackStartViteOptions = {\n globalMiddlewareEntry: string\n}\n\nconst transformFuncs = [\n 'createServerFn',\n 'createMiddleware',\n 'serverOnly',\n 'clientOnly',\n 'createIsomorphicFn',\n 'createServerFileRoute',\n]\n\nconst tokenRegex = new RegExp(transformFuncs.join('|'))\n\nexport function TanStackStartCompilerPlugin(\n framework: CompileStartFrameworkOptions,\n inputOpts?: {\n client?: {\n envName?: string\n }\n server?: {\n envName?: string\n }\n },\n): Plugin {\n const opts = {\n client: {\n envName: 'client',\n ...inputOpts?.client,\n },\n server: {\n envName: 'server',\n ...inputOpts?.server,\n },\n }\n\n return {\n name: 'vite-plugin-tanstack-start-create-server-fn',\n enforce: 'pre',\n applyToEnvironment(env) {\n return [opts.client.envName, opts.server.envName].includes(env.name)\n },\n transform(code, id) {\n const env =\n this.environment.name === opts.client.envName\n ? 'client'\n : this.environment.name === opts.server.envName\n ? 'server'\n : (() => {\n throw new Error(\n `Environment ${this.environment.name} not configured`,\n )\n })()\n\n return transformCode({\n code,\n id,\n env,\n framework,\n })\n },\n }\n}\n\nfunction transformCode(opts: {\n code: string\n id: string\n env: 'server' | 'client'\n framework: CompileStartFrameworkOptions\n}) {\n const { code, env, framework } = opts\n let { id } = opts\n\n const url = pathToFileURL(id)\n url.searchParams.delete('v')\n id = fileURLToPath(url).replace(/\\\\/g, '/')\n\n const includesToken = tokenRegex.test(code)\n\n if (!includesToken) {\n return null\n }\n\n if (debug) console.info(`${env} Compiling Start: `, id)\n\n const compileStartOutput = compileStartOutputFactory(framework)\n const compiled = compileStartOutput({\n code,\n filename: id,\n env,\n })\n\n if (debug) {\n logDiff(code, compiled.code)\n console.log('Output:\\n', compiled.code + '\\n\\n')\n }\n\n return compiled\n}\n"],"names":["pathToFileURL","fileURLToPath","compileStartOutputFactory","logDiff"],"mappings":";;;;;AAOA,MAAM,QACJ,QAAQ,IAAI,kBACZ,CAAC,QAAQ,cAAc,EAAE,SAAS,QAAQ,IAAI,cAAc;AAM9D,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,aAAa,IAAI,OAAO,eAAe,KAAK,GAAG,CAAC;AAEtC,SAAA,4BACd,WACA,WAQQ;AACR,QAAM,OAAO;AAAA,IACX,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,GAAG,uCAAW;AAAA,IAChB;AAAA,IACA,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,GAAG,uCAAW;AAAA,IAAA;AAAA,EAElB;AAEO,SAAA;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,mBAAmB,KAAK;AACf,aAAA,CAAC,KAAK,OAAO,SAAS,KAAK,OAAO,OAAO,EAAE,SAAS,IAAI,IAAI;AAAA,IACrE;AAAA,IACA,UAAU,MAAM,IAAI;AAClB,YAAM,MACJ,KAAK,YAAY,SAAS,KAAK,OAAO,UAClC,WACA,KAAK,YAAY,SAAS,KAAK,OAAO,UACpC,YACC,MAAM;AACL,cAAM,IAAI;AAAA,UACR,eAAe,KAAK,YAAY,IAAI;AAAA,QACtC;AAAA,MAAA,GACC;AAEX,aAAO,cAAc;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AACF;AAEA,SAAS,cAAc,MAKpB;AACD,QAAM,EAAE,MAAM,KAAK,UAAc,IAAA;AAC7B,MAAA,EAAE,OAAO;AAEP,QAAA,MAAMA,uBAAc,EAAE;AACxB,MAAA,aAAa,OAAO,GAAG;AAC3B,OAAKC,SAAc,cAAA,GAAG,EAAE,QAAQ,OAAO,GAAG;AAEpC,QAAA,gBAAgB,WAAW,KAAK,IAAI;AAE1C,MAAI,CAAC,eAAe;AACX,WAAA;AAAA,EAAA;AAGT,MAAI,MAAe,SAAA,KAAK,GAAG,GAAG,sBAAsB,EAAE;AAEhD,QAAA,qBAAqBC,oCAA0B,SAAS;AAC9D,QAAM,WAAW,mBAAmB;AAAA,IAClC;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA,CACD;AAED,MAAI,OAAO;AACDC,wBAAA,MAAM,SAAS,IAAI;AAC3B,YAAQ,IAAI,aAAa,SAAS,OAAO,MAAM;AAAA,EAAA;AAG1C,SAAA;AACT;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
import { CompileStartFrameworkOptions } from './compilers.cjs';
|
|
3
|
+
export type TanStackStartViteOptions = {
|
|
4
|
+
globalMiddlewareEntry: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function TanStackStartCompilerPlugin(framework: CompileStartFrameworkOptions, inputOpts?: {
|
|
7
|
+
client?: {
|
|
8
|
+
envName?: string;
|
|
9
|
+
};
|
|
10
|
+
server?: {
|
|
11
|
+
envName?: string;
|
|
12
|
+
};
|
|
13
|
+
}): Plugin;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const configSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
3
|
+
target: z.ZodDefault<z.ZodOptional<z.ZodEnum<["react", "solid"]>>>;
|
|
4
|
+
virtualRouteConfig: z.ZodOptional<z.ZodUnion<[z.ZodType<import('@tanstack/virtual-file-routes').VirtualRootRoute, z.ZodTypeDef, import('@tanstack/virtual-file-routes').VirtualRootRoute>, z.ZodString]>>;
|
|
5
|
+
routeFilePrefix: z.ZodOptional<z.ZodString>;
|
|
6
|
+
routeFileIgnorePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
7
|
+
routeFileIgnorePattern: z.ZodOptional<z.ZodString>;
|
|
8
|
+
routesDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
9
|
+
quoteStyle: z.ZodDefault<z.ZodOptional<z.ZodEnum<["single", "double"]>>>;
|
|
10
|
+
semicolons: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
|
+
disableLogging: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
|
+
routeTreeFileHeader: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
13
|
+
indexToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
14
|
+
routeToken: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
15
|
+
pathParamsAllowedCharacters: z.ZodOptional<z.ZodArray<z.ZodEnum<[";", ":", "@", "&", "=", "+", "$", ","]>, "many">>;
|
|
16
|
+
}, {
|
|
17
|
+
srcDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
18
|
+
}>, "strip", z.ZodTypeAny, {
|
|
19
|
+
target: "react" | "solid";
|
|
20
|
+
routeFileIgnorePrefix: string;
|
|
21
|
+
routesDirectory: string;
|
|
22
|
+
quoteStyle: "single" | "double";
|
|
23
|
+
semicolons: boolean;
|
|
24
|
+
disableLogging: boolean;
|
|
25
|
+
routeTreeFileHeader: string[];
|
|
26
|
+
indexToken: string;
|
|
27
|
+
routeToken: string;
|
|
28
|
+
srcDirectory: string;
|
|
29
|
+
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
30
|
+
routeFilePrefix?: string | undefined;
|
|
31
|
+
routeFileIgnorePattern?: string | undefined;
|
|
32
|
+
pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
target?: "react" | "solid" | undefined;
|
|
35
|
+
virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
|
|
36
|
+
routeFilePrefix?: string | undefined;
|
|
37
|
+
routeFileIgnorePrefix?: string | undefined;
|
|
38
|
+
routeFileIgnorePattern?: string | undefined;
|
|
39
|
+
routesDirectory?: string | undefined;
|
|
40
|
+
quoteStyle?: "single" | "double" | undefined;
|
|
41
|
+
semicolons?: boolean | undefined;
|
|
42
|
+
disableLogging?: boolean | undefined;
|
|
43
|
+
routeTreeFileHeader?: string[] | undefined;
|
|
44
|
+
indexToken?: string | undefined;
|
|
45
|
+
routeToken?: string | undefined;
|
|
46
|
+
pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
|
|
47
|
+
srcDirectory?: string | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export type Config = z.infer<typeof configSchema>;
|