olova-router 1.0.16 → 1.0.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/vite.js +3 -0
- package/dist/vite.js.map +1 -1
- package/package.json +1 -1
package/dist/vite.js
CHANGED
|
@@ -237,6 +237,9 @@ function createOlovaAppRouterPlugin() {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
},
|
|
240
|
+
optimizeDeps: {
|
|
241
|
+
exclude: ["olova-router", "olova/runtime", "olova/core", "olova/global"]
|
|
242
|
+
},
|
|
240
243
|
resolve: {
|
|
241
244
|
dedupe: ["olova", "olova/core", "olova/runtime", "olova/global"]
|
|
242
245
|
}
|
package/dist/vite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vite.ts"],"names":[],"mappings":"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","file":"vite.js","sourcesContent":["import { mkdirSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport { normalizePath } from \"vite\";\n\nconst playgroundEntry = normalizePath(\"/playground/main.ts\");\nconst routerPackageEntry = normalizePath(\"/packages/olova-router/\");\nconst virtualRoutesId = \"virtual:router-demo-routes\";\nconst resolvedVirtualRoutesId = \"\\0virtual:router-demo-routes\";\nconst virtualAppEntryId = \"virtual:olova-app-entry\";\nconst resolvedVirtualAppEntryId = \"\\0virtual:olova-app-entry\";\nconst olovaPluginName = \"vite-plugin-olova\";\n\nexport const generatedDirName = \".olova\";\nexport const generatedHtmlName = \"index.html\";\nexport const generatedMainName = \"main.ts\";\n\nfunction toRouteSegment(segment: string): string {\n if (segment === \"index\") {\n return \"\";\n }\n\n if (segment === \"+not-found\") {\n return \"*\";\n }\n\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(4, -1)}*`;\n }\n\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(1, -1)}`;\n }\n\n return segment;\n}\n\nfunction collectOlovaFiles(dir: string): string[] {\n const entries = readdirSync(dir);\n const files: string[] = [];\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry);\n const stats = statSync(fullPath);\n\n if (stats.isDirectory()) {\n files.push(...collectOlovaFiles(fullPath));\n continue;\n }\n\n if (entry.endsWith(\".olova\")) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nfunction createRoutePath(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt).split(\"/\").map(toRouteSegment);\n\n if (segments.includes(\"*\")) {\n return \"*\";\n }\n\n const filtered = segments.filter(Boolean);\n return filtered.length === 0 ? \"/\" : `/${filtered.join(\"/\")}`;\n}\n\nfunction createRouteName(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt)\n .split(\"/\")\n .filter((segment) => segment !== \"index\" && segment !== \"+not-found\")\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return segments.length === 0 ? \"home\" : segments.join(\".\");\n}\n\nfunction createAppRoutePath(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"*\";\n }\n\n const fileSegment = fileName === \"app\" ? \"\" : toRouteSegment(fileName);\n const routeSegments = [...dirSegments.map(toRouteSegment), fileSegment].filter(Boolean);\n\n return routeSegments.length === 0 ? \"/\" : `/${routeSegments.join(\"/\")}`;\n}\n\nfunction createAppRouteName(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"not-found\";\n }\n\n const nameParts = [...dirSegments, fileName === \"app\" ? \"home\" : fileName]\n .filter(Boolean)\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return nameParts.join(\".\");\n}\n\nfunction writeGeneratedBootstrap(root: string): void {\n const generatedDir = path.join(root, generatedDirName);\n const generatedHtmlPath = path.join(generatedDir, generatedHtmlName);\n const generatedMainPath = path.join(generatedDir, generatedMainName);\n const relativeStyleImport = normalizePath(path.relative(generatedDir, path.join(root, \"src\", \"style.css\")));\n\n mkdirSync(generatedDir, { recursive: true });\n writeFileSync(\n generatedHtmlPath,\n [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"./${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\"),\n );\n writeFileSync(\n generatedMainPath,\n [\n `import ${JSON.stringify(relativeStyleImport)};`,\n 'import { createApp } from \"olova/runtime\";',\n `import App from ${JSON.stringify(virtualAppEntryId)};`,\n \"\",\n 'createApp(App).mount(\"#app\");',\n \"\",\n ].join(\"\\n\"),\n );\n}\n\nfunction patchOlovaTransform(plugins: unknown[] | undefined): void {\n if (!plugins) {\n return;\n }\n\n const queue = [...plugins];\n\n while (queue.length > 0) {\n const candidate = queue.shift();\n\n if (Array.isArray(candidate)) {\n queue.push(...candidate);\n continue;\n }\n\n if (!candidate || typeof candidate !== \"object\") {\n continue;\n }\n\n const plugin = candidate as Plugin & { __olovaRouterPatched?: boolean };\n if (plugin.name !== olovaPluginName) {\n continue;\n }\n\n const transformHook = plugin.transform;\n const originalTransform =\n typeof transformHook === \"function\"\n ? transformHook\n : typeof transformHook?.handler === \"function\"\n ? transformHook.handler\n : null;\n\n if (!originalTransform || plugin.__olovaRouterPatched) {\n return;\n }\n\n plugin.transform = function transform(code, id, ...rest): any {\n const normalizedId = normalizePath(id.split(\"?\", 1)[0]);\n\n if (\n normalizedId.endsWith(playgroundEntry) ||\n (normalizedId.includes(routerPackageEntry) &&\n (normalizedId.endsWith(\".ts\") || normalizedId.endsWith(\".js\")))\n ) {\n return null;\n }\n\n return (originalTransform as typeof transform).call(this, code, id, ...rest);\n };\n\n plugin.__olovaRouterPatched = true;\n return;\n }\n}\n\nfunction createOlovaCompatPlugin(): Plugin {\n return {\n name: \"olova-router-compat\",\n config(config) {\n patchOlovaTransform((config.plugins ?? []) as unknown[]);\n },\n configResolved(config) {\n patchOlovaTransform(config.plugins as unknown[]);\n },\n };\n}\n\nfunction createRouterDemoRoutesPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"router-demo-file-routes\",\n configResolved(config) {\n root = config.root;\n },\n resolveId(id) {\n if (id === virtualRoutesId) {\n return resolvedVirtualRoutesId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualRoutesId) {\n return null;\n }\n\n const routesDir = path.join(root, \"src\", \"router-demo\", \"routes\");\n const files = collectOlovaFiles(routesDir)\n .map((file) => {\n const relative = normalizePath(path.relative(routesDir, file));\n return {\n file,\n routePath: createRoutePath(relative),\n routeName: createRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = files\n .map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))}`)\n .join(\"\\n\");\n\n const definitions = files\n .map((route, index) => {\n if (route.routePath === \"*\") {\n return `{ path: \"*\", component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n }\n\n return `{ path: ${JSON.stringify(route.routePath)}, component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n })\n .join(\",\\n\");\n\n return `${imports}\\n\\nconst routes = [\\n${definitions}\\n]\\n\\nexport default routes\\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/router-demo/routes/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualRoutesId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n };\n}\n\nfunction createOlovaAppRouterPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"olova-app-router\",\n config() {\n return {\n build: {\n rollupOptions: {\n input: {\n main: path.join(process.cwd(), generatedDirName, generatedHtmlName),\n },\n },\n },\n resolve: {\n dedupe: [\"olova\", \"olova/core\", \"olova/runtime\", \"olova/global\"],\n },\n };\n },\n configResolved(config) {\n root = config.root;\n writeGeneratedBootstrap(root);\n },\n configureServer(server) {\n server.middlewares.use(async (req, res, next) => {\n const requestUrl = req.url?.split(\"?\", 1)[0] ?? \"/\";\n const isAppRequest =\n (req.method === \"GET\" || req.method === \"HEAD\" || !req.method) &&\n !requestUrl.startsWith(\"/@\") &&\n !requestUrl.startsWith(`/${generatedDirName}/`) &&\n !requestUrl.startsWith(\"/src/\") &&\n !requestUrl.startsWith(\"/node_modules/\") &&\n path.extname(requestUrl) === \"\";\n\n if (!isAppRequest) {\n next();\n return;\n }\n\n const html = [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"/${generatedDirName}/${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\");\n\n res.setHeader(\"Content-Type\", \"text/html\");\n res.end(await server.transformIndexHtml(\"/\", html));\n });\n },\n resolveId(id) {\n if (id === virtualAppEntryId) {\n return resolvedVirtualAppEntryId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualAppEntryId) {\n return null;\n }\n\n const appDir = path.join(root, \"src\", \"app\");\n const layoutPath = path.join(appDir, \"layout.olova\");\n const hasLayout = statSync(layoutPath, { throwIfNoEntry: false })?.isFile?.() ?? false;\n const files = collectOlovaFiles(appDir)\n .filter((file) => path.basename(file) !== \"layout.olova\")\n .map((file) => {\n const relative = normalizePath(path.relative(appDir, file));\n return {\n file,\n routePath: createAppRoutePath(relative),\n routeName: createAppRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = [\n 'import { defineComponent } from \"olova/runtime\";',\n 'import { BrowserRouter } from \"olova-router\";',\n hasLayout ? `import RootLayout from ${JSON.stringify(normalizePath(layoutPath))};` : \"\",\n ...files.map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))};`),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const routeObjects = files\n .map((route, index) => `{ path: ${JSON.stringify(route.routePath)}, name: ${JSON.stringify(route.routeName)}, component: Route${index} }`)\n .join(\",\\n\");\n\n const routesCode = hasLayout\n ? `[\n {\n path: \"/\",\n component: RootLayout,\n children: [\n${routeObjects}\n ]\n }\n]`\n : `[\n${routeObjects}\n]`;\n\n return `${imports}\n\nconst routes = ${routesCode};\n\nconst AppEntry = defineComponent(() => ({\n template: \"__O_COMP_app_entry__\",\n textBindings: [],\n htmlBindings: [],\n attrBindings: [],\n eventBindings: [],\n slotBindings: [],\n componentBindings: [\n {\n id: \"app_entry\",\n getComponent: () => BrowserRouter,\n getProps: () => ({ routes })\n }\n ]\n}));\n\nexport default AppEntry;\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/app/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualAppEntryId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n closeBundle() {\n const distDir = path.join(root, \"dist\");\n const generatedDistDir = path.join(distDir, generatedDirName);\n const generatedDistHtmlPath = path.join(generatedDistDir, generatedHtmlName);\n const distIndexPath = path.join(distDir, generatedHtmlName);\n\n if (!statSync(generatedDistHtmlPath, { throwIfNoEntry: false })?.isFile?.()) {\n return;\n }\n\n rmSync(distIndexPath, { force: true });\n renameSync(generatedDistHtmlPath, distIndexPath);\n rmSync(generatedDistDir, { recursive: true, force: true });\n },\n };\n}\n\nexport function olovaRouter(): PluginOption[] {\n return [createOlovaAppRouterPlugin(), createRouterDemoRoutesPlugin(), createOlovaCompatPlugin()];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/vite.ts"],"names":[],"mappings":"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","file":"vite.js","sourcesContent":["import { mkdirSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport { normalizePath } from \"vite\";\n\nconst playgroundEntry = normalizePath(\"/playground/main.ts\");\nconst routerPackageEntry = normalizePath(\"/packages/olova-router/\");\nconst virtualRoutesId = \"virtual:router-demo-routes\";\nconst resolvedVirtualRoutesId = \"\\0virtual:router-demo-routes\";\nconst virtualAppEntryId = \"virtual:olova-app-entry\";\nconst resolvedVirtualAppEntryId = \"\\0virtual:olova-app-entry\";\nconst olovaPluginName = \"vite-plugin-olova\";\n\nexport const generatedDirName = \".olova\";\nexport const generatedHtmlName = \"index.html\";\nexport const generatedMainName = \"main.ts\";\n\nfunction toRouteSegment(segment: string): string {\n if (segment === \"index\") {\n return \"\";\n }\n\n if (segment === \"+not-found\") {\n return \"*\";\n }\n\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(4, -1)}*`;\n }\n\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(1, -1)}`;\n }\n\n return segment;\n}\n\nfunction collectOlovaFiles(dir: string): string[] {\n const entries = readdirSync(dir);\n const files: string[] = [];\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry);\n const stats = statSync(fullPath);\n\n if (stats.isDirectory()) {\n files.push(...collectOlovaFiles(fullPath));\n continue;\n }\n\n if (entry.endsWith(\".olova\")) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nfunction createRoutePath(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt).split(\"/\").map(toRouteSegment);\n\n if (segments.includes(\"*\")) {\n return \"*\";\n }\n\n const filtered = segments.filter(Boolean);\n return filtered.length === 0 ? \"/\" : `/${filtered.join(\"/\")}`;\n}\n\nfunction createRouteName(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt)\n .split(\"/\")\n .filter((segment) => segment !== \"index\" && segment !== \"+not-found\")\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return segments.length === 0 ? \"home\" : segments.join(\".\");\n}\n\nfunction createAppRoutePath(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"*\";\n }\n\n const fileSegment = fileName === \"app\" ? \"\" : toRouteSegment(fileName);\n const routeSegments = [...dirSegments.map(toRouteSegment), fileSegment].filter(Boolean);\n\n return routeSegments.length === 0 ? \"/\" : `/${routeSegments.join(\"/\")}`;\n}\n\nfunction createAppRouteName(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"not-found\";\n }\n\n const nameParts = [...dirSegments, fileName === \"app\" ? \"home\" : fileName]\n .filter(Boolean)\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return nameParts.join(\".\");\n}\n\nfunction writeGeneratedBootstrap(root: string): void {\n const generatedDir = path.join(root, generatedDirName);\n const generatedHtmlPath = path.join(generatedDir, generatedHtmlName);\n const generatedMainPath = path.join(generatedDir, generatedMainName);\n const relativeStyleImport = normalizePath(path.relative(generatedDir, path.join(root, \"src\", \"style.css\")));\n\n mkdirSync(generatedDir, { recursive: true });\n writeFileSync(\n generatedHtmlPath,\n [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"./${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\"),\n );\n writeFileSync(\n generatedMainPath,\n [\n `import ${JSON.stringify(relativeStyleImport)};`,\n 'import { createApp } from \"olova/runtime\";',\n `import App from ${JSON.stringify(virtualAppEntryId)};`,\n \"\",\n 'createApp(App).mount(\"#app\");',\n \"\",\n ].join(\"\\n\"),\n );\n}\n\nfunction patchOlovaTransform(plugins: unknown[] | undefined): void {\n if (!plugins) {\n return;\n }\n\n const queue = [...plugins];\n\n while (queue.length > 0) {\n const candidate = queue.shift();\n\n if (Array.isArray(candidate)) {\n queue.push(...candidate);\n continue;\n }\n\n if (!candidate || typeof candidate !== \"object\") {\n continue;\n }\n\n const plugin = candidate as Plugin & { __olovaRouterPatched?: boolean };\n if (plugin.name !== olovaPluginName) {\n continue;\n }\n\n const transformHook = plugin.transform;\n const originalTransform =\n typeof transformHook === \"function\"\n ? transformHook\n : typeof transformHook?.handler === \"function\"\n ? transformHook.handler\n : null;\n\n if (!originalTransform || plugin.__olovaRouterPatched) {\n return;\n }\n\n plugin.transform = function transform(code, id, ...rest): any {\n const normalizedId = normalizePath(id.split(\"?\", 1)[0]);\n\n if (\n normalizedId.endsWith(playgroundEntry) ||\n (normalizedId.includes(routerPackageEntry) &&\n (normalizedId.endsWith(\".ts\") || normalizedId.endsWith(\".js\")))\n ) {\n return null;\n }\n\n return (originalTransform as typeof transform).call(this, code, id, ...rest);\n };\n\n plugin.__olovaRouterPatched = true;\n return;\n }\n}\n\nfunction createOlovaCompatPlugin(): Plugin {\n return {\n name: \"olova-router-compat\",\n config(config) {\n patchOlovaTransform((config.plugins ?? []) as unknown[]);\n },\n configResolved(config) {\n patchOlovaTransform(config.plugins as unknown[]);\n },\n };\n}\n\nfunction createRouterDemoRoutesPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"router-demo-file-routes\",\n configResolved(config) {\n root = config.root;\n },\n resolveId(id) {\n if (id === virtualRoutesId) {\n return resolvedVirtualRoutesId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualRoutesId) {\n return null;\n }\n\n const routesDir = path.join(root, \"src\", \"router-demo\", \"routes\");\n const files = collectOlovaFiles(routesDir)\n .map((file) => {\n const relative = normalizePath(path.relative(routesDir, file));\n return {\n file,\n routePath: createRoutePath(relative),\n routeName: createRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = files\n .map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))}`)\n .join(\"\\n\");\n\n const definitions = files\n .map((route, index) => {\n if (route.routePath === \"*\") {\n return `{ path: \"*\", component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n }\n\n return `{ path: ${JSON.stringify(route.routePath)}, component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n })\n .join(\",\\n\");\n\n return `${imports}\\n\\nconst routes = [\\n${definitions}\\n]\\n\\nexport default routes\\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/router-demo/routes/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualRoutesId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n };\n}\n\nfunction createOlovaAppRouterPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"olova-app-router\",\n config() {\n return {\n build: {\n rollupOptions: {\n input: {\n main: path.join(process.cwd(), generatedDirName, generatedHtmlName),\n },\n },\n },\n optimizeDeps: {\n exclude: [\"olova-router\", \"olova/runtime\", \"olova/core\", \"olova/global\"],\n },\n resolve: {\n dedupe: [\"olova\", \"olova/core\", \"olova/runtime\", \"olova/global\"],\n },\n };\n },\n configResolved(config) {\n root = config.root;\n writeGeneratedBootstrap(root);\n },\n configureServer(server) {\n server.middlewares.use(async (req, res, next) => {\n const requestUrl = req.url?.split(\"?\", 1)[0] ?? \"/\";\n const isAppRequest =\n (req.method === \"GET\" || req.method === \"HEAD\" || !req.method) &&\n !requestUrl.startsWith(\"/@\") &&\n !requestUrl.startsWith(`/${generatedDirName}/`) &&\n !requestUrl.startsWith(\"/src/\") &&\n !requestUrl.startsWith(\"/node_modules/\") &&\n path.extname(requestUrl) === \"\";\n\n if (!isAppRequest) {\n next();\n return;\n }\n\n const html = [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"/${generatedDirName}/${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\");\n\n res.setHeader(\"Content-Type\", \"text/html\");\n res.end(await server.transformIndexHtml(\"/\", html));\n });\n },\n resolveId(id) {\n if (id === virtualAppEntryId) {\n return resolvedVirtualAppEntryId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualAppEntryId) {\n return null;\n }\n\n const appDir = path.join(root, \"src\", \"app\");\n const layoutPath = path.join(appDir, \"layout.olova\");\n const hasLayout = statSync(layoutPath, { throwIfNoEntry: false })?.isFile?.() ?? false;\n const files = collectOlovaFiles(appDir)\n .filter((file) => path.basename(file) !== \"layout.olova\")\n .map((file) => {\n const relative = normalizePath(path.relative(appDir, file));\n return {\n file,\n routePath: createAppRoutePath(relative),\n routeName: createAppRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = [\n 'import { defineComponent } from \"olova/runtime\";',\n 'import { BrowserRouter } from \"olova-router\";',\n hasLayout ? `import RootLayout from ${JSON.stringify(normalizePath(layoutPath))};` : \"\",\n ...files.map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))};`),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const routeObjects = files\n .map((route, index) => `{ path: ${JSON.stringify(route.routePath)}, name: ${JSON.stringify(route.routeName)}, component: Route${index} }`)\n .join(\",\\n\");\n\n const routesCode = hasLayout\n ? `[\n {\n path: \"/\",\n component: RootLayout,\n children: [\n${routeObjects}\n ]\n }\n]`\n : `[\n${routeObjects}\n]`;\n\n return `${imports}\n\nconst routes = ${routesCode};\n\nconst AppEntry = defineComponent(() => ({\n template: \"__O_COMP_app_entry__\",\n textBindings: [],\n htmlBindings: [],\n attrBindings: [],\n eventBindings: [],\n slotBindings: [],\n componentBindings: [\n {\n id: \"app_entry\",\n getComponent: () => BrowserRouter,\n getProps: () => ({ routes })\n }\n ]\n}));\n\nexport default AppEntry;\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/app/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualAppEntryId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n closeBundle() {\n const distDir = path.join(root, \"dist\");\n const generatedDistDir = path.join(distDir, generatedDirName);\n const generatedDistHtmlPath = path.join(generatedDistDir, generatedHtmlName);\n const distIndexPath = path.join(distDir, generatedHtmlName);\n\n if (!statSync(generatedDistHtmlPath, { throwIfNoEntry: false })?.isFile?.()) {\n return;\n }\n\n rmSync(distIndexPath, { force: true });\n renameSync(generatedDistHtmlPath, distIndexPath);\n rmSync(generatedDistDir, { recursive: true, force: true });\n },\n };\n}\n\nexport function olovaRouter(): PluginOption[] {\n return [createOlovaAppRouterPlugin(), createRouterDemoRoutesPlugin(), createOlovaCompatPlugin()];\n}\n"]}
|