@reckona/mreact-router 0.0.103 → 0.0.105
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/README.md +1 -1
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +37 -1
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +1 -0
- package/dist/build.js.map +1 -1
- package/dist/bundle-pipeline.d.ts +2 -0
- package/dist/bundle-pipeline.d.ts.map +1 -1
- package/dist/bundle-pipeline.js +6 -3
- package/dist/bundle-pipeline.js.map +1 -1
- package/package.json +11 -11
- package/src/adapters/cloudflare.ts +46 -1
- package/src/build.ts +1 -0
- package/src/bundle-pipeline.ts +12 -3
|
@@ -11,6 +11,7 @@ export interface RouterBundleOptions {
|
|
|
11
11
|
filename: string;
|
|
12
12
|
minify?: boolean | undefined;
|
|
13
13
|
modulePreload?: boolean | undefined;
|
|
14
|
+
nodeBuiltins?: "externalize" | "reject" | undefined;
|
|
14
15
|
outfile?: string | undefined;
|
|
15
16
|
platform: "browser" | "node";
|
|
16
17
|
preserveExports?: boolean | undefined;
|
|
@@ -29,6 +30,7 @@ export interface RouterBundleModulesOptions {
|
|
|
29
30
|
entries: readonly RouterBundleEntryOptions[];
|
|
30
31
|
entryFileNames?: string | undefined;
|
|
31
32
|
minify?: boolean | undefined;
|
|
33
|
+
nodeBuiltins?: "externalize" | "reject" | undefined;
|
|
32
34
|
platform: "browser" | "node";
|
|
33
35
|
plugins?: readonly RouterCompatPlugin[] | undefined;
|
|
34
36
|
root?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-pipeline.d.ts","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AAGd,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7B;AAqBD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CACJ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAC7F,IAAI,CAAC;IACR,SAAS,CACP,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,GACnE,IAAI,CAAC;CACT;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACD,SAAS,CAAC;AAEd,MAAM,MAAM,yBAAyB,GACjC;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GACD,SAAS,CAAC;AAuFd,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AA0GD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC,CA6FpC"}
|
|
1
|
+
{"version":3,"file":"bundle-pipeline.d.ts","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/bundle-pipeline.js
CHANGED
|
@@ -116,7 +116,7 @@ async function bundleRouterModuleUncached(options) {
|
|
|
116
116
|
...(options.define === undefined ? {} : { define: options.define }),
|
|
117
117
|
logLevel: "silent",
|
|
118
118
|
plugins: [
|
|
119
|
-
|
|
119
|
+
nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? "reject"),
|
|
120
120
|
mreactJsxRuntimeAliasPlugin(),
|
|
121
121
|
...(options.vitePlugins ?? []),
|
|
122
122
|
virtualEntryPlugin(entryId, options.code),
|
|
@@ -207,7 +207,7 @@ export async function bundleRouterModules(options) {
|
|
|
207
207
|
...(options.define === undefined ? {} : { define: options.define }),
|
|
208
208
|
logLevel: "silent",
|
|
209
209
|
plugins: [
|
|
210
|
-
|
|
210
|
+
nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? "reject"),
|
|
211
211
|
mreactJsxRuntimeAliasPlugin(),
|
|
212
212
|
...(options.vitePlugins ?? []),
|
|
213
213
|
virtualEntriesPlugin(entries),
|
|
@@ -384,12 +384,15 @@ function moduleTypeForFilename(filename) {
|
|
|
384
384
|
}
|
|
385
385
|
return "js";
|
|
386
386
|
}
|
|
387
|
-
function
|
|
387
|
+
function nodeBuiltinsForBrowserPlugin(platform, policy) {
|
|
388
388
|
return {
|
|
389
389
|
name: "mreact-router-browser-node-builtins",
|
|
390
390
|
enforce: "pre",
|
|
391
391
|
resolveId(id) {
|
|
392
392
|
if (platform === "browser" && nodeBuiltinSpecifiers.has(id)) {
|
|
393
|
+
if (policy === "externalize") {
|
|
394
|
+
return { external: true, id: id.startsWith("node:") ? id : `node:${id}` };
|
|
395
|
+
}
|
|
393
396
|
this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);
|
|
394
397
|
}
|
|
395
398
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-pipeline.js","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from \"node:module\";\nimport { access } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport {\n build as viteBuild,\n type InlineConfig,\n type PluginOption,\n type Plugin as VitePlugin,\n} from \"vite\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\nexport interface RouterBundleOptions {\n base?: string | undefined;\n cache?: Map<string, Promise<RouterBundleOutput>> | undefined;\n cacheDir?: string | undefined;\n cacheKey?: string | undefined;\n code: string;\n define?: Record<string, string> | undefined;\n dropConsoleFunctions?: readonly string[] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n filename: string;\n minify?: boolean | undefined;\n modulePreload?: boolean | undefined;\n outfile?: string | undefined;\n platform: \"browser\" | \"node\";\n preserveExports?: boolean | undefined;\n root?: string | undefined;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleModulesOptions {\n base?: string | undefined;\n cacheDir?: string | undefined;\n chunkFileNames?: string | undefined;\n define?: Record<string, string> | undefined;\n dropConsoleFunctions?: readonly string[] | undefined;\n entries: readonly RouterBundleEntryOptions[];\n entryFileNames?: string | undefined;\n minify?: boolean | undefined;\n platform: \"browser\" | \"node\";\n plugins?: readonly RouterCompatPlugin[] | undefined;\n root?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleEntryOptions {\n code: string;\n filename: string;\n name: string;\n}\n\nexport interface RouterBundleOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n code: string;\n map?: string | undefined;\n}\n\nexport interface RouterBundleModulesOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n chunks: RouterBundleChunkOutput[];\n}\n\nexport interface RouterBundleChunkOutput {\n code: string;\n fileName: string;\n imports: string[];\n isEntry: boolean;\n map?: string | undefined;\n name: string;\n}\n\nexport interface RouterBundleAssetOutput {\n fileName: string;\n source: string | Uint8Array;\n}\n\ninterface RouterBundlerChunk {\n code: string;\n fileName: string;\n imports?: string[] | undefined;\n isEntry?: boolean | undefined;\n name?: string | undefined;\n type: \"chunk\";\n}\n\ninterface RouterBundlerAsset {\n fileName: string;\n source: string | Uint8Array;\n type: \"asset\";\n}\n\ninterface RouterBundlerOutput {\n output: Array<RouterBundlerAsset | RouterBundlerChunk>;\n}\n\nexport interface RouterCompatPlugin {\n name: string;\n setup(buildApi: RouterCompatBuildApi): void;\n}\n\nexport interface RouterCompatBuildApi {\n onLoad(\n options: { filter: RegExp; namespace?: string | undefined },\n callback: (args: { path: string }) => RouterCompatLoadResult | Promise<RouterCompatLoadResult>,\n ): void;\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n importer?: string | undefined;\n path: string;\n resolveDir: string;\n }) => RouterCompatResolveResult | Promise<RouterCompatResolveResult>,\n ): void;\n}\n\nexport type RouterCompatLoadResult =\n | {\n contents: string;\n loader?: string | undefined;\n resolveDir?: string | undefined;\n }\n | undefined;\n\nexport type RouterCompatResolveResult =\n | {\n errors?: Array<{ text: string }> | undefined;\n external?: boolean | undefined;\n namespace?: string | undefined;\n path?: string | undefined;\n }\n | undefined;\n\nconst nodeBuiltinSpecifiers = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));\nconst mreactJsxRuntimeAliasPaths = new Map([\n [\n \"react\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/client\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/server\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"hooks-entry\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n]);\n\nexport async function bundleRouterModule(\n options: RouterBundleOptions,\n): Promise<RouterBundleOutput> {\n if (options.cache !== undefined && options.cacheKey !== undefined) {\n const cached = options.cache.get(options.cacheKey);\n\n if (cached !== undefined) {\n return cloneRouterBundleOutput(await cached);\n }\n\n const pending = bundleRouterModuleUncached(options);\n options.cache.set(options.cacheKey, pending);\n\n try {\n return cloneRouterBundleOutput(await pending);\n } catch (error) {\n options.cache.delete(options.cacheKey);\n throw error;\n }\n }\n\n return await bundleRouterModuleUncached(options);\n}\n\nasync function bundleRouterModuleUncached(\n options: RouterBundleOptions,\n): Promise<RouterBundleOutput> {\n const entryId = `${options.filename}?mreact-router-entry`;\n const outfile = options.outfile ?? \"entry.js\";\n const config = {\n base: options.base ?? \"/\",\n ...(options.cacheDir === undefined ? {} : { cacheDir: options.cacheDir }),\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntryPlugin(entryId, options.code),\n ...(options.externalizeAppSourceModuleDirs === undefined\n ? []\n : [\n externalizeAppSourceModulesPlugin(\n options.filename,\n options.externalizeAppSourceModuleDirs,\n ),\n ]),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.filename),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n lib:\n options.preserveExports === true\n ? {\n entry: entryId,\n fileName: () => outfile,\n formats: [\"es\"],\n }\n : false,\n minify: options.minify === true,\n modulePreload: options.modulePreload ?? true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input: entryId,\n ...routerBundleTreeshakeOptions(options.dropConsoleFunctions),\n output: {\n codeSplitting: false,\n entryFileNames: outfile,\n format: \"es\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no output.`);\n }\n\n const chunk = output.output.find((item): item is RouterBundlerChunk => item.type === \"chunk\");\n const map = output.output.find(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName === `${chunk?.fileName ?? outfile}.map`,\n );\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName !== `${chunk?.fileName ?? outfile}.map`,\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n if (chunk === undefined) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no chunk.`);\n }\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n code: stripSourceMappingUrl(chunk.code),\n ...(map !== undefined && typeof map.source === \"string\" ? { map: map.source } : {}),\n };\n}\n\nfunction cloneRouterBundleOutput(output: RouterBundleOutput): RouterBundleOutput {\n return {\n ...(output.assets === undefined\n ? {}\n : {\n assets: output.assets.map((asset) => ({\n fileName: asset.fileName,\n source:\n typeof asset.source === \"string\" ? asset.source : new Uint8Array(asset.source),\n })),\n }),\n code: output.code,\n ...(output.map === undefined ? {} : { map: output.map }),\n };\n}\n\nexport async function bundleRouterModules(\n options: RouterBundleModulesOptions,\n): Promise<RouterBundleModulesOutput> {\n if (options.entries.length === 0) {\n return { chunks: [] };\n }\n\n const entries = new Map(\n options.entries.map((entry) => [\n `${entry.filename}?mreact-router-entry=${encodeURIComponent(entry.name)}`,\n entry,\n ]),\n );\n const input = Object.fromEntries(\n Array.from(entries, ([entryId, entry]) => [entry.name, entryId]),\n );\n const config = {\n base: options.base ?? \"/\",\n ...(options.cacheDir === undefined ? {} : { cacheDir: options.cacheDir }),\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntriesPlugin(entries),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.entries[0]?.filename ?? process.cwd()),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n minify: options.minify === true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input,\n ...routerBundleTreeshakeOptions(options.dropConsoleFunctions),\n output: {\n chunkFileNames: options.chunkFileNames ?? \"assets/chunks/[name].[hash].js\",\n entryFileNames: options.entryFileNames ?? \"assets/routes/[name].[hash].js\",\n format: \"es\",\n hashCharacters: \"hex\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(\"Failed to bundle client routes: Vite/Rolldown produced no output.\");\n }\n\n const mapAssets = new Map(\n output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName.endsWith(\".map\"),\n )\n .flatMap((asset) =>\n typeof asset.source === \"string\" ? [[asset.fileName, asset.source] as const] : [],\n ),\n );\n const chunks = output.output\n .filter((item): item is RouterBundlerChunk => item.type === \"chunk\")\n .map((chunk) => {\n const map = mapAssets.get(`${chunk.fileName}.map`);\n\n return {\n code: stripSourceMappingUrl(chunk.code),\n fileName: chunk.fileName,\n imports: chunk.imports ?? [],\n isEntry: chunk.isEntry === true,\n ...(map === undefined ? {} : { map }),\n name: chunk.name ?? chunk.fileName,\n };\n });\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && !item.fileName.endsWith(\".map\"),\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n chunks,\n };\n}\n\nfunction mreactJsxRuntimeAliasPlugin(): VitePlugin {\n return {\n name: \"mreact-router-jsx-runtime-alias\",\n enforce: \"pre\",\n resolveId(id) {\n return mreactJsxRuntimeAliasPaths.get(id);\n },\n };\n}\n\nfunction externalizeAppSourceModulesPlugin(\n entryFilename: string,\n sourceDirs: readonly string[],\n): VitePlugin {\n const normalizedSourceDirs = sourceDirs.map((directory) => resolve(directory));\n\n return {\n name: \"mreact-router-externalize-app-source-modules\",\n enforce: \"pre\",\n async resolveId(id, importer) {\n if (importer === undefined || !isAppSourceImport(id)) {\n return undefined;\n }\n\n const importerPath = cleanViteId(importer);\n const resolved = await resolveAppSourceImport(id, dirname(importerPath));\n\n if (\n resolved === undefined ||\n resolved === entryFilename ||\n !isExternalizableAppSourceModule(resolved) ||\n !isInsideAnyDirectory(normalizedSourceDirs, resolved)\n ) {\n return undefined;\n }\n\n return {\n external: true,\n id: pathToFileURL(resolved).href,\n };\n },\n };\n}\n\nfunction isInsideAnyDirectory(directories: readonly string[], path: string): boolean {\n return directories.some((directory) => path === directory || path.startsWith(`${directory}/`));\n}\n\nfunction isAppSourceImport(id: string): boolean {\n return id.startsWith(\".\") || id.startsWith(\"/\") || isAbsolute(id);\n}\n\nfunction isExternalizableAppSourceModule(path: string): boolean {\n return /\\.(?:[cm]?ts|[cm]?js)$/u.test(path);\n}\n\nasync function resolveAppSourceImport(id: string, resolveDir: string): Promise<string | undefined> {\n const base = isAbsolute(id) ? id : resolve(resolveDir, id);\n const extension = extname(base);\n const candidates =\n extension === \"\"\n ? [\n base,\n `${base}.ts`,\n `${base}.mts`,\n `${base}.cts`,\n `${base}.js`,\n `${base}.mjs`,\n `${base}.cjs`,\n join(base, \"index.ts\"),\n join(base, \"index.mts\"),\n join(base, \"index.cts\"),\n join(base, \"index.js\"),\n join(base, \"index.mjs\"),\n join(base, \"index.cjs\"),\n ]\n : [base];\n\n for (const candidate of candidates) {\n try {\n await access(candidate);\n return candidate;\n } catch {\n continue;\n }\n }\n\n return undefined;\n}\n\nfunction routerBundleTreeshakeOptions(\n dropConsoleFunctions: readonly string[] | undefined,\n): { treeshake: { manualPureFunctions: readonly string[] } } | {} {\n return dropConsoleFunctions === undefined || dropConsoleFunctions.length === 0\n ? {}\n : { treeshake: { manualPureFunctions: dropConsoleFunctions } };\n}\n\nfunction stripSourceMappingUrl(code: string): string {\n return code.replace(/\\n?\\/\\/# sourceMappingURL=[^\\n]+\\.map\\s*$/u, \"\");\n}\n\nfunction virtualEntryPlugin(entryId: string, code: string): VitePlugin {\n return {\n name: \"mreact-router-virtual-entry\",\n enforce: \"pre\",\n resolveId(id) {\n return id === entryId ? entryId : undefined;\n },\n load(id) {\n return id === entryId ? { code, moduleType: moduleTypeForFilename(entryId) } : undefined;\n },\n };\n}\n\nfunction virtualEntriesPlugin(entries: ReadonlyMap<string, RouterBundleEntryOptions>): VitePlugin {\n return {\n name: \"mreact-router-virtual-entries\",\n enforce: \"pre\",\n resolveId(id) {\n return entries.has(id) ? id : undefined;\n },\n load(id) {\n const entry = entries.get(id);\n\n return entry === undefined\n ? undefined\n : { code: entry.code, moduleType: moduleTypeForFilename(id) };\n },\n };\n}\n\nfunction moduleTypeForFilename(filename: string): \"js\" | \"jsx\" | \"ts\" | \"tsx\" {\n const clean = cleanViteId(filename);\n\n if (/\\.(?:mreact\\.)?[cm]?tsx$/u.test(clean) || clean.endsWith(\".jsx\")) {\n return \"tsx\";\n }\n\n if (/\\.(?:mreact\\.)?[cm]?ts$/u.test(clean)) {\n return \"ts\";\n }\n\n return \"js\";\n}\n\nfunction rejectNodeBuiltinsForBrowserPlugin(platform: RouterBundleOptions[\"platform\"]): VitePlugin {\n return {\n name: \"mreact-router-browser-node-builtins\",\n enforce: \"pre\",\n resolveId(id) {\n if (platform === \"browser\" && nodeBuiltinSpecifiers.has(id)) {\n this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);\n }\n\n return undefined;\n },\n };\n}\n\nfunction routerCompatPlugin(plugin: RouterCompatPlugin): VitePlugin {\n const resolvers: Array<{\n filter: RegExp;\n callback: Parameters<RouterCompatBuildApi[\"onResolve\"]>[1];\n }> = [];\n const loaders: Array<{\n filter: RegExp;\n namespace?: string | undefined;\n callback: Parameters<RouterCompatBuildApi[\"onLoad\"]>[1];\n }> = [];\n\n plugin.setup({\n onLoad(options, callback) {\n loaders.push({ ...options, callback });\n },\n onResolve(options, callback) {\n resolvers.push({ ...options, callback });\n },\n });\n\n return {\n name: plugin.name,\n enforce: \"pre\",\n async resolveId(source, importer) {\n for (const resolver of resolvers) {\n if (!resolver.filter.test(source)) {\n continue;\n }\n\n const resolved = await resolver.callback({\n importer: importer === undefined ? undefined : cleanViteId(importer),\n path: source,\n resolveDir: importer === undefined ? \"\" : dirname(cleanViteId(importer)),\n });\n\n if (resolved === undefined) {\n continue;\n }\n\n if (resolved.errors !== undefined && resolved.errors.length > 0) {\n this.error(resolved.errors.map((error) => error.text).join(\"\\n\"));\n }\n\n if (resolved.path === undefined) {\n continue;\n }\n\n if (resolved.external === true) {\n return { external: true, id: resolved.path };\n }\n\n return resolved.namespace === undefined\n ? resolved.path\n : compatVirtualId(resolved.namespace, resolved.path);\n }\n\n return undefined;\n },\n async load(id) {\n const virtual = parseCompatVirtualId(id);\n const path = virtual?.path ?? cleanViteId(id);\n const namespace = virtual?.namespace;\n\n for (const loader of loaders) {\n if (loader.namespace !== namespace || !loader.filter.test(path)) {\n continue;\n }\n\n const loaded = await loader.callback({ path });\n\n if (loaded !== undefined) {\n return loaded.contents;\n }\n }\n\n return undefined;\n },\n };\n}\n\nfunction compatVirtualId(namespace: string, path: string): string {\n return `\\0mreact-router-compat:${encodeURIComponent(namespace)}:${encodeURIComponent(path)}`;\n}\n\nfunction parseCompatVirtualId(id: string): { namespace: string; path: string } | undefined {\n const prefix = \"\\0mreact-router-compat:\";\n\n if (!id.startsWith(prefix)) {\n return undefined;\n }\n\n const rest = id.slice(prefix.length);\n const separator = rest.indexOf(\":\");\n\n if (separator === -1) {\n return undefined;\n }\n\n return {\n namespace: decodeURIComponent(rest.slice(0, separator)),\n path: decodeURIComponent(rest.slice(separator + 1)),\n };\n}\n\nfunction cleanViteId(id: string): string {\n const withoutPrefix = id.startsWith(\"/@fs/\") ? id.slice(\"/@fs\".length) : id;\n const queryIndex = withoutPrefix.indexOf(\"?\");\n\n return queryIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, queryIndex);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bundle-pipeline.js","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from \"node:module\";\nimport { access } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport {\n build as viteBuild,\n type InlineConfig,\n type PluginOption,\n type Plugin as VitePlugin,\n} from \"vite\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\nexport interface RouterBundleOptions {\n base?: string | undefined;\n cache?: Map<string, Promise<RouterBundleOutput>> | undefined;\n cacheDir?: string | undefined;\n cacheKey?: string | undefined;\n code: string;\n define?: Record<string, string> | undefined;\n dropConsoleFunctions?: readonly string[] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n filename: string;\n minify?: boolean | undefined;\n modulePreload?: boolean | undefined;\n nodeBuiltins?: \"externalize\" | \"reject\" | undefined;\n outfile?: string | undefined;\n platform: \"browser\" | \"node\";\n preserveExports?: boolean | undefined;\n root?: string | undefined;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleModulesOptions {\n base?: string | undefined;\n cacheDir?: string | undefined;\n chunkFileNames?: string | undefined;\n define?: Record<string, string> | undefined;\n dropConsoleFunctions?: readonly string[] | undefined;\n entries: readonly RouterBundleEntryOptions[];\n entryFileNames?: string | undefined;\n minify?: boolean | undefined;\n nodeBuiltins?: \"externalize\" | \"reject\" | undefined;\n platform: \"browser\" | \"node\";\n plugins?: readonly RouterCompatPlugin[] | undefined;\n root?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleEntryOptions {\n code: string;\n filename: string;\n name: string;\n}\n\nexport interface RouterBundleOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n code: string;\n map?: string | undefined;\n}\n\nexport interface RouterBundleModulesOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n chunks: RouterBundleChunkOutput[];\n}\n\nexport interface RouterBundleChunkOutput {\n code: string;\n fileName: string;\n imports: string[];\n isEntry: boolean;\n map?: string | undefined;\n name: string;\n}\n\nexport interface RouterBundleAssetOutput {\n fileName: string;\n source: string | Uint8Array;\n}\n\ninterface RouterBundlerChunk {\n code: string;\n fileName: string;\n imports?: string[] | undefined;\n isEntry?: boolean | undefined;\n name?: string | undefined;\n type: \"chunk\";\n}\n\ninterface RouterBundlerAsset {\n fileName: string;\n source: string | Uint8Array;\n type: \"asset\";\n}\n\ninterface RouterBundlerOutput {\n output: Array<RouterBundlerAsset | RouterBundlerChunk>;\n}\n\nexport interface RouterCompatPlugin {\n name: string;\n setup(buildApi: RouterCompatBuildApi): void;\n}\n\nexport interface RouterCompatBuildApi {\n onLoad(\n options: { filter: RegExp; namespace?: string | undefined },\n callback: (args: { path: string }) => RouterCompatLoadResult | Promise<RouterCompatLoadResult>,\n ): void;\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n importer?: string | undefined;\n path: string;\n resolveDir: string;\n }) => RouterCompatResolveResult | Promise<RouterCompatResolveResult>,\n ): void;\n}\n\nexport type RouterCompatLoadResult =\n | {\n contents: string;\n loader?: string | undefined;\n resolveDir?: string | undefined;\n }\n | undefined;\n\nexport type RouterCompatResolveResult =\n | {\n errors?: Array<{ text: string }> | undefined;\n external?: boolean | undefined;\n namespace?: string | undefined;\n path?: string | undefined;\n }\n | undefined;\n\nconst nodeBuiltinSpecifiers = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));\nconst mreactJsxRuntimeAliasPaths = new Map([\n [\n \"react\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/client\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/server\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"hooks-entry\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n]);\n\nexport async function bundleRouterModule(\n options: RouterBundleOptions,\n): Promise<RouterBundleOutput> {\n if (options.cache !== undefined && options.cacheKey !== undefined) {\n const cached = options.cache.get(options.cacheKey);\n\n if (cached !== undefined) {\n return cloneRouterBundleOutput(await cached);\n }\n\n const pending = bundleRouterModuleUncached(options);\n options.cache.set(options.cacheKey, pending);\n\n try {\n return cloneRouterBundleOutput(await pending);\n } catch (error) {\n options.cache.delete(options.cacheKey);\n throw error;\n }\n }\n\n return await bundleRouterModuleUncached(options);\n}\n\nasync function bundleRouterModuleUncached(\n options: RouterBundleOptions,\n): Promise<RouterBundleOutput> {\n const entryId = `${options.filename}?mreact-router-entry`;\n const outfile = options.outfile ?? \"entry.js\";\n const config = {\n base: options.base ?? \"/\",\n ...(options.cacheDir === undefined ? {} : { cacheDir: options.cacheDir }),\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? \"reject\"),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntryPlugin(entryId, options.code),\n ...(options.externalizeAppSourceModuleDirs === undefined\n ? []\n : [\n externalizeAppSourceModulesPlugin(\n options.filename,\n options.externalizeAppSourceModuleDirs,\n ),\n ]),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.filename),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n lib:\n options.preserveExports === true\n ? {\n entry: entryId,\n fileName: () => outfile,\n formats: [\"es\"],\n }\n : false,\n minify: options.minify === true,\n modulePreload: options.modulePreload ?? true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input: entryId,\n ...routerBundleTreeshakeOptions(options.dropConsoleFunctions),\n output: {\n codeSplitting: false,\n entryFileNames: outfile,\n format: \"es\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no output.`);\n }\n\n const chunk = output.output.find((item): item is RouterBundlerChunk => item.type === \"chunk\");\n const map = output.output.find(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName === `${chunk?.fileName ?? outfile}.map`,\n );\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName !== `${chunk?.fileName ?? outfile}.map`,\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n if (chunk === undefined) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no chunk.`);\n }\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n code: stripSourceMappingUrl(chunk.code),\n ...(map !== undefined && typeof map.source === \"string\" ? { map: map.source } : {}),\n };\n}\n\nfunction cloneRouterBundleOutput(output: RouterBundleOutput): RouterBundleOutput {\n return {\n ...(output.assets === undefined\n ? {}\n : {\n assets: output.assets.map((asset) => ({\n fileName: asset.fileName,\n source:\n typeof asset.source === \"string\" ? asset.source : new Uint8Array(asset.source),\n })),\n }),\n code: output.code,\n ...(output.map === undefined ? {} : { map: output.map }),\n };\n}\n\nexport async function bundleRouterModules(\n options: RouterBundleModulesOptions,\n): Promise<RouterBundleModulesOutput> {\n if (options.entries.length === 0) {\n return { chunks: [] };\n }\n\n const entries = new Map(\n options.entries.map((entry) => [\n `${entry.filename}?mreact-router-entry=${encodeURIComponent(entry.name)}`,\n entry,\n ]),\n );\n const input = Object.fromEntries(\n Array.from(entries, ([entryId, entry]) => [entry.name, entryId]),\n );\n const config = {\n base: options.base ?? \"/\",\n ...(options.cacheDir === undefined ? {} : { cacheDir: options.cacheDir }),\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? \"reject\"),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntriesPlugin(entries),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.entries[0]?.filename ?? process.cwd()),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n minify: options.minify === true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input,\n ...routerBundleTreeshakeOptions(options.dropConsoleFunctions),\n output: {\n chunkFileNames: options.chunkFileNames ?? \"assets/chunks/[name].[hash].js\",\n entryFileNames: options.entryFileNames ?? \"assets/routes/[name].[hash].js\",\n format: \"es\",\n hashCharacters: \"hex\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(\"Failed to bundle client routes: Vite/Rolldown produced no output.\");\n }\n\n const mapAssets = new Map(\n output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName.endsWith(\".map\"),\n )\n .flatMap((asset) =>\n typeof asset.source === \"string\" ? [[asset.fileName, asset.source] as const] : [],\n ),\n );\n const chunks = output.output\n .filter((item): item is RouterBundlerChunk => item.type === \"chunk\")\n .map((chunk) => {\n const map = mapAssets.get(`${chunk.fileName}.map`);\n\n return {\n code: stripSourceMappingUrl(chunk.code),\n fileName: chunk.fileName,\n imports: chunk.imports ?? [],\n isEntry: chunk.isEntry === true,\n ...(map === undefined ? {} : { map }),\n name: chunk.name ?? chunk.fileName,\n };\n });\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && !item.fileName.endsWith(\".map\"),\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n chunks,\n };\n}\n\nfunction mreactJsxRuntimeAliasPlugin(): VitePlugin {\n return {\n name: \"mreact-router-jsx-runtime-alias\",\n enforce: \"pre\",\n resolveId(id) {\n return mreactJsxRuntimeAliasPaths.get(id);\n },\n };\n}\n\nfunction externalizeAppSourceModulesPlugin(\n entryFilename: string,\n sourceDirs: readonly string[],\n): VitePlugin {\n const normalizedSourceDirs = sourceDirs.map((directory) => resolve(directory));\n\n return {\n name: \"mreact-router-externalize-app-source-modules\",\n enforce: \"pre\",\n async resolveId(id, importer) {\n if (importer === undefined || !isAppSourceImport(id)) {\n return undefined;\n }\n\n const importerPath = cleanViteId(importer);\n const resolved = await resolveAppSourceImport(id, dirname(importerPath));\n\n if (\n resolved === undefined ||\n resolved === entryFilename ||\n !isExternalizableAppSourceModule(resolved) ||\n !isInsideAnyDirectory(normalizedSourceDirs, resolved)\n ) {\n return undefined;\n }\n\n return {\n external: true,\n id: pathToFileURL(resolved).href,\n };\n },\n };\n}\n\nfunction isInsideAnyDirectory(directories: readonly string[], path: string): boolean {\n return directories.some((directory) => path === directory || path.startsWith(`${directory}/`));\n}\n\nfunction isAppSourceImport(id: string): boolean {\n return id.startsWith(\".\") || id.startsWith(\"/\") || isAbsolute(id);\n}\n\nfunction isExternalizableAppSourceModule(path: string): boolean {\n return /\\.(?:[cm]?ts|[cm]?js)$/u.test(path);\n}\n\nasync function resolveAppSourceImport(id: string, resolveDir: string): Promise<string | undefined> {\n const base = isAbsolute(id) ? id : resolve(resolveDir, id);\n const extension = extname(base);\n const candidates =\n extension === \"\"\n ? [\n base,\n `${base}.ts`,\n `${base}.mts`,\n `${base}.cts`,\n `${base}.js`,\n `${base}.mjs`,\n `${base}.cjs`,\n join(base, \"index.ts\"),\n join(base, \"index.mts\"),\n join(base, \"index.cts\"),\n join(base, \"index.js\"),\n join(base, \"index.mjs\"),\n join(base, \"index.cjs\"),\n ]\n : [base];\n\n for (const candidate of candidates) {\n try {\n await access(candidate);\n return candidate;\n } catch {\n continue;\n }\n }\n\n return undefined;\n}\n\nfunction routerBundleTreeshakeOptions(\n dropConsoleFunctions: readonly string[] | undefined,\n): { treeshake: { manualPureFunctions: readonly string[] } } | {} {\n return dropConsoleFunctions === undefined || dropConsoleFunctions.length === 0\n ? {}\n : { treeshake: { manualPureFunctions: dropConsoleFunctions } };\n}\n\nfunction stripSourceMappingUrl(code: string): string {\n return code.replace(/\\n?\\/\\/# sourceMappingURL=[^\\n]+\\.map\\s*$/u, \"\");\n}\n\nfunction virtualEntryPlugin(entryId: string, code: string): VitePlugin {\n return {\n name: \"mreact-router-virtual-entry\",\n enforce: \"pre\",\n resolveId(id) {\n return id === entryId ? entryId : undefined;\n },\n load(id) {\n return id === entryId ? { code, moduleType: moduleTypeForFilename(entryId) } : undefined;\n },\n };\n}\n\nfunction virtualEntriesPlugin(entries: ReadonlyMap<string, RouterBundleEntryOptions>): VitePlugin {\n return {\n name: \"mreact-router-virtual-entries\",\n enforce: \"pre\",\n resolveId(id) {\n return entries.has(id) ? id : undefined;\n },\n load(id) {\n const entry = entries.get(id);\n\n return entry === undefined\n ? undefined\n : { code: entry.code, moduleType: moduleTypeForFilename(id) };\n },\n };\n}\n\nfunction moduleTypeForFilename(filename: string): \"js\" | \"jsx\" | \"ts\" | \"tsx\" {\n const clean = cleanViteId(filename);\n\n if (/\\.(?:mreact\\.)?[cm]?tsx$/u.test(clean) || clean.endsWith(\".jsx\")) {\n return \"tsx\";\n }\n\n if (/\\.(?:mreact\\.)?[cm]?ts$/u.test(clean)) {\n return \"ts\";\n }\n\n return \"js\";\n}\n\nfunction nodeBuiltinsForBrowserPlugin(\n platform: RouterBundleOptions[\"platform\"],\n policy: NonNullable<RouterBundleOptions[\"nodeBuiltins\"]>,\n): VitePlugin {\n return {\n name: \"mreact-router-browser-node-builtins\",\n enforce: \"pre\",\n resolveId(id) {\n if (platform === \"browser\" && nodeBuiltinSpecifiers.has(id)) {\n if (policy === \"externalize\") {\n return { external: true, id: id.startsWith(\"node:\") ? id : `node:${id}` };\n }\n\n this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);\n }\n\n return undefined;\n },\n };\n}\n\nfunction routerCompatPlugin(plugin: RouterCompatPlugin): VitePlugin {\n const resolvers: Array<{\n filter: RegExp;\n callback: Parameters<RouterCompatBuildApi[\"onResolve\"]>[1];\n }> = [];\n const loaders: Array<{\n filter: RegExp;\n namespace?: string | undefined;\n callback: Parameters<RouterCompatBuildApi[\"onLoad\"]>[1];\n }> = [];\n\n plugin.setup({\n onLoad(options, callback) {\n loaders.push({ ...options, callback });\n },\n onResolve(options, callback) {\n resolvers.push({ ...options, callback });\n },\n });\n\n return {\n name: plugin.name,\n enforce: \"pre\",\n async resolveId(source, importer) {\n for (const resolver of resolvers) {\n if (!resolver.filter.test(source)) {\n continue;\n }\n\n const resolved = await resolver.callback({\n importer: importer === undefined ? undefined : cleanViteId(importer),\n path: source,\n resolveDir: importer === undefined ? \"\" : dirname(cleanViteId(importer)),\n });\n\n if (resolved === undefined) {\n continue;\n }\n\n if (resolved.errors !== undefined && resolved.errors.length > 0) {\n this.error(resolved.errors.map((error) => error.text).join(\"\\n\"));\n }\n\n if (resolved.path === undefined) {\n continue;\n }\n\n if (resolved.external === true) {\n return { external: true, id: resolved.path };\n }\n\n return resolved.namespace === undefined\n ? resolved.path\n : compatVirtualId(resolved.namespace, resolved.path);\n }\n\n return undefined;\n },\n async load(id) {\n const virtual = parseCompatVirtualId(id);\n const path = virtual?.path ?? cleanViteId(id);\n const namespace = virtual?.namespace;\n\n for (const loader of loaders) {\n if (loader.namespace !== namespace || !loader.filter.test(path)) {\n continue;\n }\n\n const loaded = await loader.callback({ path });\n\n if (loaded !== undefined) {\n return loaded.contents;\n }\n }\n\n return undefined;\n },\n };\n}\n\nfunction compatVirtualId(namespace: string, path: string): string {\n return `\\0mreact-router-compat:${encodeURIComponent(namespace)}:${encodeURIComponent(path)}`;\n}\n\nfunction parseCompatVirtualId(id: string): { namespace: string; path: string } | undefined {\n const prefix = \"\\0mreact-router-compat:\";\n\n if (!id.startsWith(prefix)) {\n return undefined;\n }\n\n const rest = id.slice(prefix.length);\n const separator = rest.indexOf(\":\");\n\n if (separator === -1) {\n return undefined;\n }\n\n return {\n namespace: decodeURIComponent(rest.slice(0, separator)),\n path: decodeURIComponent(rest.slice(separator + 1)),\n };\n}\n\nfunction cleanViteId(id: string): string {\n const withoutPrefix = id.startsWith(\"/@fs/\") ? id.slice(\"/@fs\".length) : id;\n const queryIndex = withoutPrefix.indexOf(\"?\");\n\n return queryIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, queryIndex);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reckona/mreact-router",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.105",
|
|
4
4
|
"description": "File-system app router, SSR, actions, and deployment adapters for mreact.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jsx",
|
|
@@ -105,20 +105,20 @@
|
|
|
105
105
|
},
|
|
106
106
|
"dependencies": {
|
|
107
107
|
"typescript": "^6.0.3",
|
|
108
|
-
"@reckona/mreact": "0.0.
|
|
109
|
-
"@reckona/mreact
|
|
110
|
-
"@reckona/mreact-
|
|
111
|
-
"@reckona/mreact-devtools": "0.0.
|
|
112
|
-
"@reckona/mreact-query": "0.0.
|
|
113
|
-
"@reckona/mreact-
|
|
114
|
-
"@reckona/mreact-reactive-dom": "0.0.
|
|
115
|
-
"@reckona/mreact-server": "0.0.
|
|
116
|
-
"@reckona/mreact-shared": "0.0.
|
|
108
|
+
"@reckona/mreact-compat": "0.0.105",
|
|
109
|
+
"@reckona/mreact": "0.0.105",
|
|
110
|
+
"@reckona/mreact-reactive-core": "0.0.105",
|
|
111
|
+
"@reckona/mreact-devtools": "0.0.105",
|
|
112
|
+
"@reckona/mreact-query": "0.0.105",
|
|
113
|
+
"@reckona/mreact-compiler": "0.0.105",
|
|
114
|
+
"@reckona/mreact-reactive-dom": "0.0.105",
|
|
115
|
+
"@reckona/mreact-server": "0.0.105",
|
|
116
|
+
"@reckona/mreact-shared": "0.0.105"
|
|
117
117
|
},
|
|
118
118
|
"peerDependencies": {
|
|
119
119
|
"vite": ">=8 <9"
|
|
120
120
|
},
|
|
121
121
|
"optionalDependencies": {
|
|
122
|
-
"@reckona/mreact-router-native": "0.0.
|
|
122
|
+
"@reckona/mreact-router-native": "0.0.105"
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -325,7 +325,7 @@ export function createCloudflareRouteModuleRenderer<Env = unknown>(
|
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
const pageModule = module as CloudflareRouteModule<unknown, Env>;
|
|
328
|
-
const component = pageModule
|
|
328
|
+
const component = selectCloudflarePageComponent(pageModule);
|
|
329
329
|
|
|
330
330
|
if (component === undefined) {
|
|
331
331
|
return new Response(`No Cloudflare page component registered for ${context.route.file}.`, {
|
|
@@ -425,6 +425,51 @@ async function dispatchCloudflareServerRoute<Env>(
|
|
|
425
425
|
: new Response("Invalid route response", { status: 500 });
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
+
const cloudflareReservedPageModuleExportNames = new Set([
|
|
429
|
+
"ALL",
|
|
430
|
+
"DELETE",
|
|
431
|
+
"GET",
|
|
432
|
+
"HEAD",
|
|
433
|
+
"OPTIONS",
|
|
434
|
+
"PATCH",
|
|
435
|
+
"POST",
|
|
436
|
+
"PUT",
|
|
437
|
+
"App",
|
|
438
|
+
"default",
|
|
439
|
+
"generateMetadata",
|
|
440
|
+
"generateStaticParams",
|
|
441
|
+
"loader",
|
|
442
|
+
"metadata",
|
|
443
|
+
"middleware",
|
|
444
|
+
"prerender",
|
|
445
|
+
"revalidate",
|
|
446
|
+
"slots",
|
|
447
|
+
"stream",
|
|
448
|
+
]);
|
|
449
|
+
|
|
450
|
+
function selectCloudflarePageComponent<Data, Env>(
|
|
451
|
+
module: CloudflareRouteModule<Data, Env>,
|
|
452
|
+
): CloudflareRouteModuleComponent<Data, Env> | undefined {
|
|
453
|
+
if (typeof module.default === "function") {
|
|
454
|
+
return module.default;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
if (typeof module.App === "function") {
|
|
458
|
+
return module.App;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
for (const [name, value] of Object.entries(module)) {
|
|
462
|
+
if (
|
|
463
|
+
!cloudflareReservedPageModuleExportNames.has(name) &&
|
|
464
|
+
typeof value === "function"
|
|
465
|
+
) {
|
|
466
|
+
return value as CloudflareRouteModuleComponent<Data, Env>;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
return undefined;
|
|
471
|
+
}
|
|
472
|
+
|
|
428
473
|
async function dispatchCloudflareMetadataRoute(
|
|
429
474
|
module: CloudflareMetadataRouteModule,
|
|
430
475
|
request: Request,
|
package/src/build.ts
CHANGED
|
@@ -4657,6 +4657,7 @@ export async function packageCloudflarePagesArtifact(
|
|
|
4657
4657
|
filename: workerPath,
|
|
4658
4658
|
minify: true,
|
|
4659
4659
|
modulePreload: false,
|
|
4660
|
+
nodeBuiltins: "externalize",
|
|
4660
4661
|
outfile: "_worker.js",
|
|
4661
4662
|
platform: "browser",
|
|
4662
4663
|
plugins: [cloudflareWorkspaceRuntimePlugin()],
|
package/src/bundle-pipeline.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface RouterBundleOptions {
|
|
|
22
22
|
filename: string;
|
|
23
23
|
minify?: boolean | undefined;
|
|
24
24
|
modulePreload?: boolean | undefined;
|
|
25
|
+
nodeBuiltins?: "externalize" | "reject" | undefined;
|
|
25
26
|
outfile?: string | undefined;
|
|
26
27
|
platform: "browser" | "node";
|
|
27
28
|
preserveExports?: boolean | undefined;
|
|
@@ -41,6 +42,7 @@ export interface RouterBundleModulesOptions {
|
|
|
41
42
|
entries: readonly RouterBundleEntryOptions[];
|
|
42
43
|
entryFileNames?: string | undefined;
|
|
43
44
|
minify?: boolean | undefined;
|
|
45
|
+
nodeBuiltins?: "externalize" | "reject" | undefined;
|
|
44
46
|
platform: "browser" | "node";
|
|
45
47
|
plugins?: readonly RouterCompatPlugin[] | undefined;
|
|
46
48
|
root?: string | undefined;
|
|
@@ -257,7 +259,7 @@ async function bundleRouterModuleUncached(
|
|
|
257
259
|
...(options.define === undefined ? {} : { define: options.define }),
|
|
258
260
|
logLevel: "silent",
|
|
259
261
|
plugins: [
|
|
260
|
-
|
|
262
|
+
nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? "reject"),
|
|
261
263
|
mreactJsxRuntimeAliasPlugin(),
|
|
262
264
|
...(options.vitePlugins ?? []),
|
|
263
265
|
virtualEntryPlugin(entryId, options.code),
|
|
@@ -372,7 +374,7 @@ export async function bundleRouterModules(
|
|
|
372
374
|
...(options.define === undefined ? {} : { define: options.define }),
|
|
373
375
|
logLevel: "silent",
|
|
374
376
|
plugins: [
|
|
375
|
-
|
|
377
|
+
nodeBuiltinsForBrowserPlugin(options.platform, options.nodeBuiltins ?? "reject"),
|
|
376
378
|
mreactJsxRuntimeAliasPlugin(),
|
|
377
379
|
...(options.vitePlugins ?? []),
|
|
378
380
|
virtualEntriesPlugin(entries),
|
|
@@ -592,12 +594,19 @@ function moduleTypeForFilename(filename: string): "js" | "jsx" | "ts" | "tsx" {
|
|
|
592
594
|
return "js";
|
|
593
595
|
}
|
|
594
596
|
|
|
595
|
-
function
|
|
597
|
+
function nodeBuiltinsForBrowserPlugin(
|
|
598
|
+
platform: RouterBundleOptions["platform"],
|
|
599
|
+
policy: NonNullable<RouterBundleOptions["nodeBuiltins"]>,
|
|
600
|
+
): VitePlugin {
|
|
596
601
|
return {
|
|
597
602
|
name: "mreact-router-browser-node-builtins",
|
|
598
603
|
enforce: "pre",
|
|
599
604
|
resolveId(id) {
|
|
600
605
|
if (platform === "browser" && nodeBuiltinSpecifiers.has(id)) {
|
|
606
|
+
if (policy === "externalize") {
|
|
607
|
+
return { external: true, id: id.startsWith("node:") ? id : `node:${id}` };
|
|
608
|
+
}
|
|
609
|
+
|
|
601
610
|
this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);
|
|
602
611
|
}
|
|
603
612
|
|