@jasonshimmy/vite-plugin-cer-app 0.17.1 → 0.18.0
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/CHANGELOG.md +5 -0
- package/commits.txt +2 -1
- package/dist/cli/adapters/cloudflare.js +17 -1
- package/dist/cli/adapters/cloudflare.js.map +1 -1
- package/dist/plugin/dev-server.d.ts +1 -1
- package/dist/plugin/dev-server.d.ts.map +1 -1
- package/dist/plugin/transforms/auto-import.d.ts.map +1 -1
- package/dist/plugin/transforms/auto-import.js +101 -95
- package/dist/plugin/transforms/auto-import.js.map +1 -1
- package/dist/plugin/virtual/routes.d.ts.map +1 -1
- package/dist/plugin/virtual/routes.js +127 -18
- package/dist/plugin/virtual/routes.js.map +1 -1
- package/dist/runtime/app-template.d.ts +1 -1
- package/dist/runtime/app-template.d.ts.map +1 -1
- package/dist/runtime/app-template.js +7 -5
- package/dist/runtime/app-template.js.map +1 -1
- package/dist/runtime/composables/use-fetch.d.ts.map +1 -1
- package/dist/runtime/composables/use-fetch.js +30 -10
- package/dist/runtime/composables/use-fetch.js.map +1 -1
- package/dist/runtime/composables/use-runtime-config.d.ts +5 -2
- package/dist/runtime/composables/use-runtime-config.d.ts.map +1 -1
- package/dist/runtime/composables/use-runtime-config.js +7 -0
- package/dist/runtime/composables/use-runtime-config.js.map +1 -1
- package/dist/runtime/composables/use-session.d.ts.map +1 -1
- package/dist/runtime/composables/use-session.js +29 -16
- package/dist/runtime/composables/use-session.js.map +1 -1
- package/dist/runtime/entry-server-template.d.ts +1 -1
- package/dist/runtime/entry-server-template.d.ts.map +1 -1
- package/dist/runtime/entry-server-template.js +30 -9
- package/dist/runtime/entry-server-template.js.map +1 -1
- package/dist/types/config.d.ts +23 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/docs/components.md +49 -0
- package/docs/composables.md +23 -0
- package/docs/layouts.md +31 -1
- package/docs/middleware.md +21 -2
- package/docs/plan-production-hardening.md +27 -10
- package/docs/routing.md +45 -0
- package/e2e/cypress/e2e/async-component.cy.ts +27 -0
- package/e2e/cypress/e2e/group-meta.cy.ts +33 -0
- package/e2e/cypress/e2e/middleware-status.cy.ts +30 -0
- package/e2e/cypress/e2e/per-route-error.cy.ts +42 -0
- package/e2e/cypress/e2e/session-rotation.cy.ts +25 -0
- package/e2e/cypress/e2e/synthetic-404.cy.ts +45 -0
- package/e2e/kitchen-sink/app/layouts/group.ts +9 -0
- package/e2e/kitchen-sink/app/middleware/custom-log.ts +4 -0
- package/e2e/kitchen-sink/app/middleware/group-auth.ts +7 -0
- package/e2e/kitchen-sink/app/pages/async-component-error-test.ts +18 -0
- package/e2e/kitchen-sink/app/pages/async-component-test.ts +18 -0
- package/e2e/kitchen-sink/app/pages/group-auth-blocked.ts +9 -0
- package/e2e/kitchen-sink/app/pages/group-meta-test/_layout.ts +6 -0
- package/e2e/kitchen-sink/app/pages/group-meta-test/custom-mw.ts +14 -0
- package/e2e/kitchen-sink/app/pages/group-meta-test/page.ts +9 -0
- package/e2e/kitchen-sink/app/pages/group-meta-test/protected.ts +8 -0
- package/e2e/kitchen-sink/app/pages/middleware-status-test.ts +9 -0
- package/e2e/kitchen-sink/app/pages/per-route-error-test.error.ts +13 -0
- package/e2e/kitchen-sink/app/pages/per-route-error-test.ts +15 -0
- package/e2e/kitchen-sink/app/pages/session-rotation-test.ts +25 -0
- package/e2e/kitchen-sink/server/middleware/02-status-test.ts +10 -0
- package/package.json +2 -2
- package/src/__tests__/cli/adapters/cloudflare.test.ts +41 -1
- package/src/__tests__/plugin/entry-server-template.test.ts +57 -9
- package/src/__tests__/plugin/transforms/auto-import.test.ts +49 -0
- package/src/__tests__/plugin/virtual/routes.test.ts +165 -1
- package/src/__tests__/runtime/app-template.test.ts +11 -0
- package/src/__tests__/runtime/use-fetch.test.ts +69 -0
- package/src/__tests__/runtime/use-session.test.ts +83 -0
- package/src/cli/adapters/cloudflare.ts +21 -1
- package/src/plugin/dev-server.ts +1 -1
- package/src/plugin/transforms/auto-import.ts +113 -109
- package/src/plugin/virtual/routes.ts +142 -16
- package/src/runtime/app-template.ts +7 -5
- package/src/runtime/composables/use-fetch.ts +31 -8
- package/src/runtime/composables/use-runtime-config.ts +10 -3
- package/src/runtime/composables/use-session.ts +27 -15
- package/src/runtime/entry-server-template.ts +30 -9
- package/src/types/config.ts +23 -1
- package/docs/plan-component-code-splitting.md +0 -667
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
|
+
## [v0.18.0] - 2026-03-28
|
|
5
|
+
|
|
6
|
+
- chore: remove dead file (e01aab3)
|
|
7
|
+
- feat: production readiness hardening (5f64c49)
|
|
8
|
+
|
|
4
9
|
## [v0.17.1] - 2026-03-28
|
|
5
10
|
|
|
6
11
|
- fix: update dependencies and improve error handling in server templates (0f12ef5)
|
package/commits.txt
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
-
|
|
1
|
+
- chore: remove dead file (e01aab3)
|
|
2
|
+
- feat: production readiness hardening (5f64c49)
|
|
@@ -225,7 +225,23 @@ function _buildSSR(root, distDir) {
|
|
|
225
225
|
? readFileSync(clientHtmlPath, 'utf-8')
|
|
226
226
|
: '';
|
|
227
227
|
// Write the worker bridge with inlined client HTML.
|
|
228
|
-
|
|
228
|
+
const workerPath = join(distDir, '_worker.js');
|
|
229
|
+
writeFileSync(workerPath, generateWorkerBridge(clientHtml));
|
|
230
|
+
// P1-4: Warn when the worker file approaches or exceeds Cloudflare's size limits.
|
|
231
|
+
// Free plan: 1 MB compressed; Paid plan: 10 MB compressed. Check uncompressed as
|
|
232
|
+
// a conservative proxy — the compressed size will always be smaller.
|
|
233
|
+
const workerSizeBytes = statSync(workerPath).size;
|
|
234
|
+
const WARN_LIMIT = 900_000; // 900 KB — approaching Free plan limit
|
|
235
|
+
const ERROR_LIMIT = 9_000_000; // 9 MB — approaching Paid plan limit
|
|
236
|
+
if (workerSizeBytes > ERROR_LIMIT) {
|
|
237
|
+
console.error(`[cer-app] Cloudflare _worker.js is ${(workerSizeBytes / 1e6).toFixed(1)} MB — ` +
|
|
238
|
+
`exceeds the ${(ERROR_LIMIT / 1e6).toFixed(0)} MB limit. Deployment will likely fail.`);
|
|
239
|
+
process.exit(1);
|
|
240
|
+
}
|
|
241
|
+
else if (workerSizeBytes > WARN_LIMIT) {
|
|
242
|
+
console.warn(`[cer-app] Cloudflare _worker.js is ${(workerSizeBytes / 1e3).toFixed(0)} KB — ` +
|
|
243
|
+
`approaching the Cloudflare Free plan 1 MB limit. Consider the Paid plan or reducing bundle size.`);
|
|
244
|
+
}
|
|
229
245
|
// Copy assets from dist/client/ into dist/ (at the same URL paths).
|
|
230
246
|
// Cloudflare Pages CDN serves files in the deploy directory as static first;
|
|
231
247
|
// requests that don't match a static file fall through to _worker.js.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/cli/adapters/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAA;AAEhB,iFAAiF;AAEjF;;;;;;;;;;;;;;GAcG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,0DAA0D;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAE/F,OAAO;;;;;;;;yCAQgC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2I/C,CAAA;AACD,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,8BAA8B,CAC/E,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAElE,IAAI,KAAK,EAAE,CAAC;QACV,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACrD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS,CAAC,IAAY,EAAE,OAAe;IAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;QACvC,CAAC,CAAC,EAAE,CAAA;IAEN,oDAAoD;IACpD,
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/cli/adapters/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface ResolvedCerConfig {
|
|
|
33
33
|
};
|
|
34
34
|
runtimeConfig: {
|
|
35
35
|
public: Record<string, unknown>;
|
|
36
|
-
private:
|
|
36
|
+
private: import('../types/config.js').RuntimePrivateConfig;
|
|
37
37
|
};
|
|
38
38
|
auth: import('../types/config.js').AuthConfig | null;
|
|
39
39
|
i18n: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/plugin/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAIzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAA;IAC1E,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAA;IAC9D,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAA;IACtD,WAAW,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACjG,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/plugin/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAIzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAA;IAC1E,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAA;IAC9D,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAA;IACtD,WAAW,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACjG,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,oBAAoB,EAAE,oBAAoB,CAAA;KAAE,CAAA;IAC9G,IAAI,EAAE,OAAO,oBAAoB,EAAE,UAAU,GAAG,IAAI,CAAA;IACpD,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,GAAG,uBAAuB,GAAG,WAAW,CAAA;KAAE,GAAG,IAAI,CAAA;CACtH;AA0GD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAyKN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-import.d.ts","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;
|
|
1
|
+
{"version":3,"file":"auto-import.d.ts","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;AA+GD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,iBAAiB,GACtB,MAAM,GAAG,IAAI,CA8Cf"}
|
|
@@ -1,40 +1,102 @@
|
|
|
1
1
|
import MagicString from 'magic-string';
|
|
2
2
|
import { normalize } from 'pathe';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
'
|
|
10
|
-
'
|
|
11
|
-
'
|
|
12
|
-
'
|
|
13
|
-
'
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
-
|
|
37
|
-
|
|
3
|
+
// P1-5: Per-identifier import maps. Only the identifiers actually referenced in
|
|
4
|
+
// a file are injected — this eliminates the full-group injection that prevented
|
|
5
|
+
// tree-shaking when a page used only one framework composable.
|
|
6
|
+
/** Maps each runtime identifier to its source module. All from the main runtime package. */
|
|
7
|
+
const RUNTIME_MAP = {
|
|
8
|
+
component: '@jasonshimmy/custom-elements-runtime',
|
|
9
|
+
defineAsyncComponent: '@jasonshimmy/custom-elements-runtime',
|
|
10
|
+
html: '@jasonshimmy/custom-elements-runtime',
|
|
11
|
+
css: '@jasonshimmy/custom-elements-runtime',
|
|
12
|
+
ref: '@jasonshimmy/custom-elements-runtime',
|
|
13
|
+
computed: '@jasonshimmy/custom-elements-runtime',
|
|
14
|
+
watch: '@jasonshimmy/custom-elements-runtime',
|
|
15
|
+
watchEffect: '@jasonshimmy/custom-elements-runtime',
|
|
16
|
+
useProps: '@jasonshimmy/custom-elements-runtime',
|
|
17
|
+
useEmit: '@jasonshimmy/custom-elements-runtime',
|
|
18
|
+
useOnConnected: '@jasonshimmy/custom-elements-runtime',
|
|
19
|
+
useOnDisconnected: '@jasonshimmy/custom-elements-runtime',
|
|
20
|
+
useOnAttributeChanged: '@jasonshimmy/custom-elements-runtime',
|
|
21
|
+
useOnError: '@jasonshimmy/custom-elements-runtime',
|
|
22
|
+
useStyle: '@jasonshimmy/custom-elements-runtime',
|
|
23
|
+
useDesignTokens: '@jasonshimmy/custom-elements-runtime',
|
|
24
|
+
useGlobalStyle: '@jasonshimmy/custom-elements-runtime',
|
|
25
|
+
useExpose: '@jasonshimmy/custom-elements-runtime',
|
|
26
|
+
useSlots: '@jasonshimmy/custom-elements-runtime',
|
|
27
|
+
provide: '@jasonshimmy/custom-elements-runtime',
|
|
28
|
+
inject: '@jasonshimmy/custom-elements-runtime',
|
|
29
|
+
createComposable: '@jasonshimmy/custom-elements-runtime',
|
|
30
|
+
nextTick: '@jasonshimmy/custom-elements-runtime',
|
|
31
|
+
defineModel: '@jasonshimmy/custom-elements-runtime',
|
|
32
|
+
getCurrentComponentContext: '@jasonshimmy/custom-elements-runtime',
|
|
33
|
+
isReactiveState: '@jasonshimmy/custom-elements-runtime',
|
|
34
|
+
unsafeHTML: '@jasonshimmy/custom-elements-runtime',
|
|
35
|
+
decodeEntities: '@jasonshimmy/custom-elements-runtime',
|
|
36
|
+
useTeleport: '@jasonshimmy/custom-elements-runtime',
|
|
37
|
+
};
|
|
38
|
+
/** Maps each directive identifier to its source module (directives sub-path). */
|
|
39
|
+
const DIRECTIVE_MAP = {
|
|
40
|
+
when: '@jasonshimmy/custom-elements-runtime/directives',
|
|
41
|
+
each: '@jasonshimmy/custom-elements-runtime/directives',
|
|
42
|
+
match: '@jasonshimmy/custom-elements-runtime/directives',
|
|
43
|
+
anchorBlock: '@jasonshimmy/custom-elements-runtime/directives',
|
|
44
|
+
};
|
|
45
|
+
/** Maps each framework composable to its source module. */
|
|
46
|
+
const FRAMEWORK_MAP = {
|
|
47
|
+
useHead: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
48
|
+
usePageData: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
49
|
+
useInject: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
50
|
+
useRuntimeConfig: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
51
|
+
defineMiddleware: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
52
|
+
defineServerMiddleware: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
53
|
+
useSeoMeta: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
54
|
+
useCookie: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
55
|
+
useSession: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
56
|
+
useAuth: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
57
|
+
useFetch: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
58
|
+
useRoute: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
59
|
+
navigateTo: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
60
|
+
useState: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
61
|
+
useLocale: '@jasonshimmy/vite-plugin-cer-app/composables',
|
|
62
|
+
};
|
|
63
|
+
// All identifier maps — processed in order. Earlier maps take precedence for
|
|
64
|
+
// the "already imported from this module" duplicate check.
|
|
65
|
+
const ALL_MAPS = [RUNTIME_MAP, DIRECTIVE_MAP, FRAMEWORK_MAP];
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if the file already manually imports from the given source module.
|
|
68
|
+
* When true, we skip auto-injecting identifiers from that module to avoid duplicates.
|
|
69
|
+
*/
|
|
70
|
+
function isAlreadyImported(code, sourceModule) {
|
|
71
|
+
return (code.includes(`from '${sourceModule}'`) ||
|
|
72
|
+
code.includes(`from "${sourceModule}"`));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Builds minimal import statements containing only the identifiers actually
|
|
76
|
+
* referenced in the file. Groups identifiers by source module. Skips modules
|
|
77
|
+
* that the file already imports from manually.
|
|
78
|
+
*
|
|
79
|
+
* Returns an array of import statement strings (one per source module used).
|
|
80
|
+
*/
|
|
81
|
+
function buildMinimalImportStatements(code, maps) {
|
|
82
|
+
// Group identifier → source module, collecting only used ones.
|
|
83
|
+
const grouped = new Map();
|
|
84
|
+
for (const map of maps) {
|
|
85
|
+
for (const [identifier, sourceModule] of Object.entries(map)) {
|
|
86
|
+
// Skip if the file already imports from this module.
|
|
87
|
+
if (isAlreadyImported(code, sourceModule))
|
|
88
|
+
continue;
|
|
89
|
+
// Skip if identifier not referenced in the file.
|
|
90
|
+
const pattern = new RegExp(`\\b${identifier}\\b`);
|
|
91
|
+
if (!pattern.test(code))
|
|
92
|
+
continue;
|
|
93
|
+
const existing = grouped.get(sourceModule) ?? [];
|
|
94
|
+
existing.push(identifier);
|
|
95
|
+
grouped.set(sourceModule, existing);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return Array.from(grouped.entries()).map(([mod, ids]) => `import { ${ids.join(', ')} } from '${mod}';`);
|
|
99
|
+
}
|
|
38
100
|
/**
|
|
39
101
|
* Auto-import transform: injects runtime and directive imports at the top of
|
|
40
102
|
* files inside app/pages/, app/layouts/, or app/components/ if those
|
|
@@ -64,48 +126,22 @@ export function autoImportTransform(code, id, opts) {
|
|
|
64
126
|
// Skip virtual modules and non-ts files
|
|
65
127
|
if (id.startsWith('\0') || (!id.endsWith('.ts') && !id.endsWith('.js')))
|
|
66
128
|
return null;
|
|
67
|
-
const needsRuntime = isRuntimeImportNeeded(code);
|
|
68
|
-
const needsDirectives = isDirectiveImportNeeded(code);
|
|
69
|
-
const needsFramework = isFrameworkImportNeeded(code);
|
|
70
129
|
// Skip virtual:cer-composables injection for files inside app/composables/ to
|
|
71
130
|
// avoid circular imports (the virtual module re-exports from all composable files).
|
|
72
131
|
const isComposablesDir = normalizedId.startsWith(srcDir + '/composables/');
|
|
73
132
|
const composableImport = isComposablesDir ? null : buildComposableImport(code, opts.composableExports);
|
|
74
|
-
|
|
133
|
+
// Build per-identifier import statements from all maps.
|
|
134
|
+
const importLines = buildMinimalImportStatements(code, ALL_MAPS);
|
|
135
|
+
if (importLines.length === 0 && !composableImport)
|
|
75
136
|
return null;
|
|
76
137
|
const ms = new MagicString(code);
|
|
77
|
-
const injectLines = [];
|
|
78
|
-
if (needsRuntime) {
|
|
79
|
-
injectLines.push(RUNTIME_IMPORTS);
|
|
80
|
-
}
|
|
81
|
-
if (needsDirectives) {
|
|
82
|
-
injectLines.push(DIRECTIVE_IMPORTS);
|
|
83
|
-
}
|
|
84
|
-
if (needsFramework) {
|
|
85
|
-
injectLines.push(FRAMEWORK_IMPORTS);
|
|
86
|
-
}
|
|
138
|
+
const injectLines = [...importLines];
|
|
87
139
|
if (composableImport) {
|
|
88
140
|
injectLines.push(composableImport);
|
|
89
141
|
}
|
|
90
142
|
ms.prepend(injectLines.join('\n') + '\n');
|
|
91
143
|
return ms.toString();
|
|
92
144
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Checks if the file already imports runtime identifiers.
|
|
95
|
-
* Returns true if injection is needed (not already imported).
|
|
96
|
-
*/
|
|
97
|
-
function isRuntimeImportNeeded(code) {
|
|
98
|
-
// If already importing from @jasonshimmy/custom-elements-runtime (not a sub-path), skip
|
|
99
|
-
if (code.includes("from '@jasonshimmy/custom-elements-runtime'") ||
|
|
100
|
-
code.includes('from "@jasonshimmy/custom-elements-runtime"')) {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
// Check if any runtime identifiers are used in the file
|
|
104
|
-
return RUNTIME_IDENTIFIERS.some((id) => {
|
|
105
|
-
const pattern = new RegExp(`\\b${id}\\b`);
|
|
106
|
-
return pattern.test(code);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
145
|
/**
|
|
110
146
|
* Builds an import statement for any composable names used in the file
|
|
111
147
|
* that are not already imported.
|
|
@@ -129,34 +165,4 @@ function buildComposableImport(code, composableExports) {
|
|
|
129
165
|
return null;
|
|
130
166
|
return `import { ${needed.join(', ')} } from 'virtual:cer-composables';`;
|
|
131
167
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Checks if the file already imports framework composables (useHead, etc.).
|
|
134
|
-
* Returns true if injection is needed (not already imported).
|
|
135
|
-
*/
|
|
136
|
-
function isFrameworkImportNeeded(code) {
|
|
137
|
-
if (code.includes("from '@jasonshimmy/vite-plugin-cer-app/composables'") ||
|
|
138
|
-
code.includes('from "@jasonshimmy/vite-plugin-cer-app/composables"')) {
|
|
139
|
-
return false;
|
|
140
|
-
}
|
|
141
|
-
return FRAMEWORK_IDENTIFIERS.some((id) => {
|
|
142
|
-
const pattern = new RegExp(`\\b${id}\\b`);
|
|
143
|
-
return pattern.test(code);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Checks if the file already imports directive identifiers.
|
|
148
|
-
* Returns true if injection is needed (not already imported).
|
|
149
|
-
*/
|
|
150
|
-
function isDirectiveImportNeeded(code) {
|
|
151
|
-
// If already importing from directives sub-path, skip
|
|
152
|
-
if (code.includes("from '@jasonshimmy/custom-elements-runtime/directives'") ||
|
|
153
|
-
code.includes('from "@jasonshimmy/custom-elements-runtime/directives"')) {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
// Check if any directive identifiers are used in the file
|
|
157
|
-
return DIRECTIVE_IDENTIFIERS.some((id) => {
|
|
158
|
-
const pattern = new RegExp(`\\b${id}\\b`);
|
|
159
|
-
return pattern.test(code);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
168
|
//# sourceMappingURL=auto-import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-import.js","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAUjC,MAAM,
|
|
1
|
+
{"version":3,"file":"auto-import.js","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/plugin/virtual/routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/plugin/virtual/routes.ts"],"names":[],"mappings":"AAmPA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,QAAQ,GAAG,uBAAuB,GAAG,WAAW,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAsOzG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { basename, join, relative } from 'node:path';
|
|
2
|
+
import { basename, dirname, join, relative } from 'node:path';
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
import { scanDirectory } from '../scanner.js';
|
|
5
5
|
import { buildRouteEntry, sortRoutes } from '../path-utils.js';
|
|
@@ -112,6 +112,40 @@ function extractTitle(source) {
|
|
|
112
112
|
const match = source.match(/title\s*:\s*['"]([^'"]+)['"]/);
|
|
113
113
|
return match ? match[1] : null;
|
|
114
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Reads a `_layout.ts` file and returns the group-level meta it exports.
|
|
117
|
+
* Group meta applies to all pages in the same directory and subdirectories.
|
|
118
|
+
*
|
|
119
|
+
* Reads:
|
|
120
|
+
* - `export const meta = { middleware: ['auth', 'admin'] }` → group middleware
|
|
121
|
+
* - `export const meta = { layout: 'minimal' }` → group layout override
|
|
122
|
+
* - `export default 'minimal'` → group layout (legacy form, still supported)
|
|
123
|
+
*
|
|
124
|
+
* Page-level meta takes precedence over group meta (group provides defaults only).
|
|
125
|
+
*/
|
|
126
|
+
async function readGroupMeta(layoutFile) {
|
|
127
|
+
try {
|
|
128
|
+
const src = await readFile(layoutFile, 'utf-8');
|
|
129
|
+
// Legacy: export default 'layoutName'
|
|
130
|
+
const defaultMatch = src.match(/export\s+default\s+['"]([^'"]+)['"]/);
|
|
131
|
+
const layoutChainExtra = defaultMatch ? defaultMatch[1] : null;
|
|
132
|
+
// meta.middleware
|
|
133
|
+
const mwMatch = src.match(/middleware\s*:\s*\[([^\]]*)\]/);
|
|
134
|
+
let middleware = [];
|
|
135
|
+
if (mwMatch) {
|
|
136
|
+
const names = mwMatch[1].match(/['"]([^'"]+)['"]/g);
|
|
137
|
+
if (names)
|
|
138
|
+
middleware = names.map((s) => s.replace(/['"]/g, ''));
|
|
139
|
+
}
|
|
140
|
+
// meta.layout (explicit override in meta object)
|
|
141
|
+
const layoutMatch = src.match(/layout\s*:\s*['"]([^'"]+)['"]/);
|
|
142
|
+
const layout = layoutMatch ? layoutMatch[1] : null;
|
|
143
|
+
return { middleware, layout, layoutChainExtra };
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return { middleware: [], layout: null, layoutChainExtra: null };
|
|
147
|
+
}
|
|
148
|
+
}
|
|
115
149
|
/**
|
|
116
150
|
* Resolves the layout chain for a page by walking its ancestor directories
|
|
117
151
|
* inside pagesDir looking for `_layout.ts` files. Each `_layout.ts` must
|
|
@@ -135,21 +169,64 @@ async function resolveLayoutChain(filePath, pagesDir, outerLayout) {
|
|
|
135
169
|
currentDir = join(currentDir, part);
|
|
136
170
|
const layoutFile = join(currentDir, '_layout.ts');
|
|
137
171
|
if (existsSync(layoutFile)) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (match)
|
|
142
|
-
extras.push(match[1]);
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
console.warn(`[cer-app] Could not read layout file "${layoutFile}":`, err);
|
|
146
|
-
}
|
|
172
|
+
const { layoutChainExtra } = await readGroupMeta(layoutFile);
|
|
173
|
+
if (layoutChainExtra)
|
|
174
|
+
extras.push(layoutChainExtra);
|
|
147
175
|
}
|
|
148
176
|
}
|
|
149
177
|
if (extras.length === 0)
|
|
150
178
|
return null;
|
|
151
179
|
return [outerLayout ?? 'default', ...extras];
|
|
152
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Resolves group-level meta (middleware + layout) from ancestor `_layout.ts` files.
|
|
183
|
+
* The deepest (most-specific) `_layout.ts` wins when multiple levels define the same field.
|
|
184
|
+
* Page-level meta always takes precedence over group meta.
|
|
185
|
+
*/
|
|
186
|
+
async function resolveGroupMeta(filePath, pagesDir) {
|
|
187
|
+
const rel = relative(pagesDir, filePath);
|
|
188
|
+
const parts = rel.split('/').slice(0, -1);
|
|
189
|
+
let groupMiddleware = [];
|
|
190
|
+
let groupLayout = null;
|
|
191
|
+
let currentDir = pagesDir;
|
|
192
|
+
for (const part of parts) {
|
|
193
|
+
currentDir = join(currentDir, part);
|
|
194
|
+
const layoutFile = join(currentDir, '_layout.ts');
|
|
195
|
+
if (existsSync(layoutFile)) {
|
|
196
|
+
const { middleware, layout } = await readGroupMeta(layoutFile);
|
|
197
|
+
// Deeper _layout.ts wins: overwrite (more-specific takes precedence)
|
|
198
|
+
if (middleware.length > 0)
|
|
199
|
+
groupMiddleware = middleware;
|
|
200
|
+
if (layout !== null)
|
|
201
|
+
groupLayout = layout;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return { middleware: groupMiddleware, layout: groupLayout };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Resolves the per-route error tag by checking for:
|
|
208
|
+
* 1. Co-located `<page>.error.ts` alongside the page file
|
|
209
|
+
* 2. Directory-level `_error.ts` in the same directory as the page
|
|
210
|
+
*
|
|
211
|
+
* Returns { errorTag, errorFilePath } when found, null otherwise.
|
|
212
|
+
*/
|
|
213
|
+
function resolveRouteErrorTag(filePath, pagesDir, pageTagName) {
|
|
214
|
+
// 1. Co-located: foo.ts → foo.error.ts
|
|
215
|
+
const colocated = filePath.replace(/\.ts$/, '.error.ts');
|
|
216
|
+
if (existsSync(colocated)) {
|
|
217
|
+
return { errorTag: pageTagName + '-error', errorFilePath: colocated };
|
|
218
|
+
}
|
|
219
|
+
// 2. Directory-level: _error.ts in the same dir
|
|
220
|
+
const dirError = join(dirname(filePath), '_error.ts');
|
|
221
|
+
if (existsSync(dirError)) {
|
|
222
|
+
// Tag: based on directory relative to pagesDir
|
|
223
|
+
const relDir = relative(pagesDir, dirname(filePath));
|
|
224
|
+
const dirParts = relDir.split('/').filter(Boolean);
|
|
225
|
+
const tag = dirParts.length > 0 ? `page-${dirParts.join('-')}-error` : 'page-error';
|
|
226
|
+
return { errorTag: tag.toLowerCase().replace(/-+/g, '-').replace(/^-|-$/g, ''), errorFilePath: dirError };
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
153
230
|
/**
|
|
154
231
|
* Generates the virtual:cer-routes module code.
|
|
155
232
|
*
|
|
@@ -174,8 +251,8 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
174
251
|
return `// AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app\nconst routes = []\nexport default routes\n`;
|
|
175
252
|
}
|
|
176
253
|
const allFiles = await scanDirectory('**/*.ts', pagesDir);
|
|
177
|
-
// Exclude _layout.ts files — they are directory-level
|
|
178
|
-
const files = allFiles.filter((f) => basename(f) !== '_layout.ts');
|
|
254
|
+
// Exclude _layout.ts and _error.ts files — they are directory-level config, not pages.
|
|
255
|
+
const files = allFiles.filter((f) => basename(f) !== '_layout.ts' && basename(f) !== '_error.ts' && !basename(f).endsWith('.error.ts'));
|
|
179
256
|
if (files.length === 0) {
|
|
180
257
|
return `// AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app\nconst routes = []\nexport default routes\n`;
|
|
181
258
|
}
|
|
@@ -203,10 +280,18 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
203
280
|
const metaPerEntry = await Promise.all(sorted.map(async (entry) => {
|
|
204
281
|
try {
|
|
205
282
|
const src = await readFile(entry.filePath, 'utf-8');
|
|
206
|
-
const
|
|
283
|
+
const pageLayout = extractLayout(src);
|
|
284
|
+
const pageMiddleware = extractMiddleware(src);
|
|
285
|
+
// P2-1: Resolve group meta from ancestor _layout.ts files.
|
|
286
|
+
// Page-level declarations take precedence over group-level defaults.
|
|
287
|
+
const groupMeta = await resolveGroupMeta(entry.filePath, pagesDir);
|
|
288
|
+
const layout = pageLayout ?? groupMeta.layout;
|
|
289
|
+
const middleware = pageMiddleware.length > 0 ? pageMiddleware : groupMeta.middleware;
|
|
207
290
|
const layoutChain = await resolveLayoutChain(entry.filePath, pagesDir, layout);
|
|
291
|
+
// P2-2: Resolve per-route error tag from co-located or directory _error.ts.
|
|
292
|
+
const routeError = resolveRouteErrorTag(entry.filePath, pagesDir, entry.tagName);
|
|
208
293
|
return {
|
|
209
|
-
middleware
|
|
294
|
+
middleware,
|
|
210
295
|
layout,
|
|
211
296
|
layoutChain,
|
|
212
297
|
revalidate: extractRevalidate(src),
|
|
@@ -214,10 +299,12 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
214
299
|
render: extractRender(src),
|
|
215
300
|
hydrate: extractHydrate(src),
|
|
216
301
|
title: extractTitle(src),
|
|
302
|
+
routeErrorTag: routeError?.errorTag ?? null,
|
|
303
|
+
routeErrorFilePath: routeError?.errorFilePath ?? null,
|
|
217
304
|
};
|
|
218
305
|
}
|
|
219
306
|
catch {
|
|
220
|
-
return { middleware: [], layout: null, layoutChain: null, revalidate: null, transition: null, render: null, hydrate: null, title: null };
|
|
307
|
+
return { middleware: [], layout: null, layoutChain: null, revalidate: null, transition: null, render: null, hydrate: null, title: null, routeErrorTag: null, routeErrorFilePath: null };
|
|
221
308
|
}
|
|
222
309
|
}));
|
|
223
310
|
const lines = ['// AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app', ''];
|
|
@@ -252,9 +339,11 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
252
339
|
mwChainBody +
|
|
253
340
|
` }`);
|
|
254
341
|
}
|
|
342
|
+
// Track whether any user-defined catch-all route exists.
|
|
343
|
+
const hasCatchAll = sorted.some((e) => e.isCatchAll);
|
|
255
344
|
// Build routes array with lazy load() functions for code splitting.
|
|
256
345
|
const routeItems = sorted.map((entry, i) => {
|
|
257
|
-
const { middleware: mw, layout, layoutChain, revalidate, transition, render, hydrate, title } = metaPerEntry[i];
|
|
346
|
+
const { middleware: mw, layout, layoutChain, revalidate, transition, render, hydrate, title, routeErrorTag, routeErrorFilePath } = metaPerEntry[i];
|
|
258
347
|
const filePath = JSON.stringify(entry.filePath);
|
|
259
348
|
const tagName = JSON.stringify(entry.tagName);
|
|
260
349
|
const routePath = JSON.stringify(entry.routePath);
|
|
@@ -262,7 +351,17 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
262
351
|
// 1. Runs component() as a side effect, registering the custom element
|
|
263
352
|
// 2. Returns the tag name string as `default` so the router knows what to render
|
|
264
353
|
// 3. Forwards the optional `loader` export for SSR data hydration
|
|
265
|
-
|
|
354
|
+
// 4. (P2-2) If a co-located or directory _error.ts exists, imports it as a side-effect
|
|
355
|
+
// and returns its tag name as `errorTag` for per-route error boundaries.
|
|
356
|
+
let loadFn;
|
|
357
|
+
if (routeErrorFilePath) {
|
|
358
|
+
const errorPath = JSON.stringify(routeErrorFilePath);
|
|
359
|
+
const errorTagLiteral = JSON.stringify(routeErrorTag);
|
|
360
|
+
loadFn = `() => Promise.all([import(${filePath}), import(${errorPath})]).then(([mod]) => ({ default: ${tagName}, loader: mod.loader ?? null, errorTag: ${errorTagLiteral} }))`;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
loadFn = `() => import(${filePath}).then(mod => ({ default: ${tagName}, loader: mod.loader ?? null }))`;
|
|
364
|
+
}
|
|
266
365
|
// Build meta object — only emit fields that are set
|
|
267
366
|
const metaFields = [];
|
|
268
367
|
if (layoutChain !== null) {
|
|
@@ -287,6 +386,10 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
287
386
|
if (title !== null) {
|
|
288
387
|
metaFields.push(`title: ${JSON.stringify(title)}`);
|
|
289
388
|
}
|
|
389
|
+
// P2-2: Per-route error tag stored in meta for SSR error boundary resolution.
|
|
390
|
+
if (routeErrorTag !== null) {
|
|
391
|
+
metaFields.push(`errorTag: ${JSON.stringify(routeErrorTag)}`);
|
|
392
|
+
}
|
|
290
393
|
const metaStr = metaFields.length > 0 ? ` meta: { ${metaFields.join(', ')} },\n` : '';
|
|
291
394
|
let mwChainBody = '';
|
|
292
395
|
if (mw.length > 0) {
|
|
@@ -323,8 +426,14 @@ export async function generateRoutesCode(pagesDir, i18n) {
|
|
|
323
426
|
}
|
|
324
427
|
return buildLocaleRouteItems(routePath, loadFn, metaStr, mwChainBody, entry.isCatchAll);
|
|
325
428
|
});
|
|
429
|
+
// P1-1: If no user-defined catch-all exists, synthesize a 404 fallback route.
|
|
430
|
+
// The null default tag causes _prepareRequest to return status 404.
|
|
431
|
+
const allRouteItems = routeItems.flat();
|
|
432
|
+
if (!hasCatchAll) {
|
|
433
|
+
allRouteItems.push(` {\n path: '/:all*',\n load: () => Promise.resolve({ default: null, loader: null }),\n }`);
|
|
434
|
+
}
|
|
326
435
|
lines.push('const routes = [');
|
|
327
|
-
lines.push(
|
|
436
|
+
lines.push(allRouteItems.join(',\n'));
|
|
328
437
|
lines.push(']');
|
|
329
438
|
lines.push('');
|
|
330
439
|
lines.push('export default routes');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/plugin/virtual/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/plugin/virtual/routes.ts"],"names":[],"mappings":"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"}
|