@jasonshimmy/vite-plugin-cer-app 0.1.5 → 0.2.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/.github/workflows/publish.yml +56 -5
- package/CHANGELOG.md +8 -0
- package/README.md +5 -2
- package/commits.txt +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +19 -5
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.js +1 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/preview.d.ts.map +1 -1
- package/dist/cli/commands/preview.js +0 -1
- package/dist/cli/commands/preview.js.map +1 -1
- package/dist/cli/create/templates/spa/app/app.ts.tpl +93 -0
- package/dist/cli/create/templates/spa/app/layouts/default.ts.tpl +15 -0
- package/dist/cli/create/templates/spa/app/pages/index.ts.tpl +8 -0
- package/dist/cli/create/templates/spa/cer.config.ts.tpl +6 -0
- package/{e2e/kitchen-sink/index.html → dist/cli/create/templates/spa/index.html.tpl} +3 -3
- package/dist/cli/create/templates/spa/package.json.tpl +18 -0
- package/dist/cli/create/templates/ssg/app/app.ts.tpl +97 -0
- package/dist/cli/create/templates/ssg/app/layouts/default.ts.tpl +15 -0
- package/dist/cli/create/templates/ssg/app/pages/index.ts.tpl +8 -0
- package/dist/cli/create/templates/ssg/cer.config.ts.tpl +13 -0
- package/dist/cli/create/templates/ssg/index.html.tpl +12 -0
- package/dist/cli/create/templates/ssg/package.json.tpl +19 -0
- package/dist/cli/create/templates/ssr/app/app.ts.tpl +97 -0
- package/dist/cli/create/templates/ssr/app/layouts/default.ts.tpl +15 -0
- package/dist/cli/create/templates/ssr/app/pages/index.ts.tpl +8 -0
- package/dist/cli/create/templates/ssr/cer.config.ts.tpl +10 -0
- package/dist/cli/create/templates/ssr/index.html.tpl +12 -0
- package/dist/cli/create/templates/ssr/package.json.tpl +18 -0
- package/dist/plugin/build-ssg.d.ts.map +1 -1
- package/dist/plugin/build-ssg.js.map +1 -1
- package/dist/plugin/build-ssr.d.ts +10 -0
- package/dist/plugin/build-ssr.d.ts.map +1 -1
- package/dist/plugin/build-ssr.js +21 -8
- package/dist/plugin/build-ssr.js.map +1 -1
- package/dist/plugin/dev-server.d.ts.map +1 -1
- package/dist/plugin/dev-server.js +0 -2
- package/dist/plugin/dev-server.js.map +1 -1
- package/dist/plugin/dts-generator.d.ts +4 -4
- package/dist/plugin/dts-generator.d.ts.map +1 -1
- package/dist/plugin/dts-generator.js +39 -19
- package/dist/plugin/dts-generator.js.map +1 -1
- package/dist/plugin/generated-dir.d.ts +34 -0
- package/dist/plugin/generated-dir.d.ts.map +1 -0
- package/dist/plugin/generated-dir.js +94 -0
- package/dist/plugin/generated-dir.js.map +1 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +27 -0
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/path-utils.js.map +1 -1
- package/dist/plugin/virtual/loading.d.ts.map +1 -1
- package/dist/plugin/virtual/loading.js.map +1 -1
- package/dist/runtime/app-template.d.ts +8 -0
- package/dist/runtime/app-template.d.ts.map +1 -0
- package/dist/runtime/app-template.js +158 -0
- package/dist/runtime/app-template.js.map +1 -0
- package/docs/cli.md +10 -8
- package/docs/configuration.md +6 -4
- package/docs/getting-started.md +2 -2
- package/docs/rendering-modes.md +2 -2
- package/docs/routing.md +1 -1
- package/e2e/kitchen-sink/tsconfig.json +3 -0
- package/eslint.config.ts +22 -0
- package/package.json +7 -2
- package/src/__tests__/plugin/build-ssr.test.ts +24 -10
- package/src/__tests__/plugin/cer-app-plugin.test.ts +35 -0
- package/src/__tests__/plugin/dts-generator.test.ts +15 -6
- package/src/__tests__/plugin/generated-dir.test.ts +168 -0
- package/src/cli/commands/build.ts +19 -5
- package/src/cli/commands/dev.ts +2 -2
- package/src/cli/commands/preview.ts +7 -5
- package/src/plugin/build-ssg.ts +2 -2
- package/src/plugin/build-ssr.ts +22 -8
- package/src/plugin/dev-server.ts +4 -3
- package/src/plugin/dts-generator.ts +43 -19
- package/src/plugin/generated-dir.ts +102 -0
- package/src/plugin/index.ts +32 -1
- package/src/plugin/path-utils.ts +1 -1
- package/src/plugin/virtual/loading.ts +0 -1
- package/{e2e/kitchen-sink/app/app.ts → src/runtime/app-template.ts} +23 -7
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import '@jasonshimmy/custom-elements-runtime/css'
|
|
2
|
+
import 'virtual:cer-jit-css'
|
|
3
|
+
import 'virtual:cer-components'
|
|
4
|
+
import routes from 'virtual:cer-routes'
|
|
5
|
+
import layouts from 'virtual:cer-layouts'
|
|
6
|
+
import plugins from 'virtual:cer-plugins'
|
|
7
|
+
import { hasLoading, loadingTag } from 'virtual:cer-loading'
|
|
8
|
+
import { hasError, errorTag } from 'virtual:cer-error'
|
|
9
|
+
import {
|
|
10
|
+
component,
|
|
11
|
+
ref,
|
|
12
|
+
provide,
|
|
13
|
+
useOnConnected,
|
|
14
|
+
useOnDisconnected,
|
|
15
|
+
registerBuiltinComponents,
|
|
16
|
+
} from '@jasonshimmy/custom-elements-runtime'
|
|
17
|
+
import { initRouter } from '@jasonshimmy/custom-elements-runtime/router'
|
|
18
|
+
import { enableJITCSS } from '@jasonshimmy/custom-elements-runtime/jit-css'
|
|
19
|
+
|
|
20
|
+
registerBuiltinComponents()
|
|
21
|
+
enableJITCSS()
|
|
22
|
+
|
|
23
|
+
const router = initRouter({ routes })
|
|
24
|
+
|
|
25
|
+
const isNavigating = ref(false)
|
|
26
|
+
const currentError = ref(null)
|
|
27
|
+
;(globalThis as any).resetError = () => {
|
|
28
|
+
currentError.value = null
|
|
29
|
+
router.replace(router.getCurrent().path)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const _push = router.push.bind(router)
|
|
33
|
+
const _replace = router.replace.bind(router)
|
|
34
|
+
router.push = async (path) => {
|
|
35
|
+
isNavigating.value = true
|
|
36
|
+
currentError.value = null
|
|
37
|
+
try { await _push(path) } catch (err) { currentError.value = err instanceof Error ? err.message : String(err) } finally { isNavigating.value = false }
|
|
38
|
+
}
|
|
39
|
+
router.replace = async (path) => {
|
|
40
|
+
isNavigating.value = true
|
|
41
|
+
currentError.value = null
|
|
42
|
+
try { await _replace(path) } catch (err) { currentError.value = err instanceof Error ? err.message : String(err) } finally { isNavigating.value = false }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const _pluginProvides = new Map<string, unknown>()
|
|
46
|
+
;(globalThis as any).__cerPluginProvides = _pluginProvides
|
|
47
|
+
|
|
48
|
+
component('cer-layout-view', () => {
|
|
49
|
+
for (const [key, value] of _pluginProvides) {
|
|
50
|
+
provide(key, value)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const current = ref(router.getCurrent())
|
|
54
|
+
let unsub: (() => void) | undefined
|
|
55
|
+
useOnConnected(() => { unsub = router.subscribe((s: typeof current.value) => { current.value = s }) })
|
|
56
|
+
useOnDisconnected(() => { unsub?.(); unsub = undefined })
|
|
57
|
+
|
|
58
|
+
if (currentError.value !== null) {
|
|
59
|
+
if (hasError && errorTag) return { tag: errorTag, props: { attrs: { error: String(currentError.value) } }, children: [] }
|
|
60
|
+
return { tag: 'div', props: { attrs: { style: 'padding:2rem;font-family:monospace' } }, children: String(currentError.value) }
|
|
61
|
+
}
|
|
62
|
+
if (isNavigating.value && hasLoading && loadingTag) return { tag: loadingTag, props: {}, children: [] }
|
|
63
|
+
|
|
64
|
+
const matched = router.matchRoute(current.value.path)
|
|
65
|
+
const layoutName = (matched?.route as any)?.meta?.layout ?? 'default'
|
|
66
|
+
const layoutTag = (layouts as Record<string, string>)[layoutName]
|
|
67
|
+
const routerView = { tag: 'router-view', props: {}, children: [] }
|
|
68
|
+
return layoutTag ? { tag: layoutTag, props: {}, children: [routerView] } : routerView
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
for (const plugin of plugins) {
|
|
72
|
+
if (plugin && typeof plugin.setup === 'function') {
|
|
73
|
+
await plugin.setup({ router, provide: (key: string, value: unknown) => { _pluginProvides.set(key, value) }, config: {} })
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Pre-load the current page's route chunk AFTER plugins run so that
|
|
78
|
+
// cer-layout-view's first render (which calls provide()) completes before
|
|
79
|
+
// page components are defined. This ensures inject() in child components
|
|
80
|
+
// can find values stored by provide().
|
|
81
|
+
if (typeof window !== 'undefined') {
|
|
82
|
+
const _initMatch = router.matchRoute(window.location.pathname)
|
|
83
|
+
if (_initMatch?.route?.load) {
|
|
84
|
+
try { await _initMatch.route.load() } catch { /* non-fatal */ }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (typeof window !== 'undefined') {
|
|
89
|
+
// Use the original (unwrapped) replace so isNavigating stays false on first
|
|
90
|
+
// paint — the loading component must not flash over pre-rendered SSR content.
|
|
91
|
+
await _replace(window.location.pathname + window.location.search + window.location.hash)
|
|
92
|
+
// Clear SSR hydration data after initial navigation so subsequent navigations
|
|
93
|
+
// don't accidentally reuse it.
|
|
94
|
+
delete (globalThis as any).__CER_DATA__
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { router }
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>{{projectName}}</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<cer-layout-view></cer-layout-view>
|
|
10
|
+
<script type="module" src="/app/app.ts"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{projectName}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "cer-app dev",
|
|
7
|
+
"build": "cer-app build",
|
|
8
|
+
"preview": "cer-app preview --ssr"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@jasonshimmy/custom-elements-runtime": "^3.1.1"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"vite": "^5.0.0",
|
|
15
|
+
"@jasonshimmy/vite-plugin-cer-app": "^0.1.0",
|
|
16
|
+
"typescript": "^5.4.0"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-ssg.d.ts","sourceRoot":"","sources":["../../src/plugin/build-ssg.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"build-ssg.d.ts","sourceRoot":"","sources":["../../src/plugin/build-ssg.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AA4IxD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,iBAAiB,EACzB,cAAc,GAAE,UAAe,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-ssg.js","sourceRoot":"","sources":["../../src/plugin/build-ssg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"build-ssg.js","sourceRoot":"","sources":["../../src/plugin/build-ssg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAmB,MAAM,MAAM,CAAA;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,MAAM,WAAW,CAAA;AAS1B;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAyB,EACzB,cAA0B;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;IAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,sBAAsB;IACtB,MAAM,KAAK,GAAa,CAAC,GAAG,CAAC,CAAA;IAE7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAE9C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC,QAAQ;QACpB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,MAAM,YAAY,GAAuE,EAAE,CAAA;IAE3F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QAEpD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,IAAI,KAAK,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAChD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;YACpC,GAAG,cAAc;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;YAChC,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;oBACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAA;oBAEjD,IAAI,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;wBACzB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;wBAC9C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;4BAC9B,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,CAAA;4BAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAiC,CAAC,EAAE,CAAC;gCACjF,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;4BAC/D,CAAC;4BACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,cAAc;AAC3C,CAAC;AAED,4EAA4E;AAC5E,IAAI,UAAU,GAAmC,IAAI,CAAA;AAErD;;;;;;GAMG;AACH,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,gBAAwB;IAExB,0BAA0B;IAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAA4B,CAAA;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GACb,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,CAAC,OAAQ,UAAU,CAAC,SAAS,CAAyC,EAAE,CAAC,SAAS,CAAC,KAAK,UAAU;YAChG,CAAC,CAAE,UAAU,CAAC,SAAS,CAA6B,CAAC,SAAS,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,CAAA;IAEX,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,kEAAkE,IAAI,EAAE,CAAC,CAAA;QACtF,OAAO,EAAE,CAAA;IACX,CAAC;IAED,8CAA8C;IAC9C,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAC1C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;YACnB,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACrC,CACA;QAAC,SAA2D,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,IAAY,EACZ,OAAe;IAEf,IAAI,UAAkB,CAAA;IACtB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAC5D,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAyB,EACzB,iBAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAEzD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE9C,+DAA+D;IAC/D,MAAM,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAEtC,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,MAAM,uBAAuB,EAAE,KAAK,CAAC,CAAA;IAE1E,6DAA6D;IAC7D,8EAA8E;IAC9E,mFAAmF;IACnF,gFAAgF;IAChF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,MAAM,6BAA6B,WAAW,KAAK,CAAC,CAAA;IAE7F,MAAM,cAAc,GAAa,EAAE,CAAA;IACnC,MAAM,MAAM,GAA2C,EAAE,CAAA;IAEzD,6EAA6E;IAC7E,6DAA6D;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;YACrD,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CACH,CAAA;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACtC,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAA;gBACtE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GAAgB;QAC5B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,KAAK,EAAE,cAAc;QACrB,MAAM;KACP,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IACvD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAEzE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,MAAM,WAAW,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,mBAAmB,YAAY,eAAe,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { type UserConfig } from 'vite';
|
|
2
2
|
import type { ResolvedCerConfig } from './dev-server.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the client build entry point for an SSR/SSG build.
|
|
5
|
+
*
|
|
6
|
+
* Priority order:
|
|
7
|
+
* 1. `index.html` at the project root — consumer-provided HTML shell.
|
|
8
|
+
* 2. `.cer/index.html` — auto-generated HTML shell (Nuxt-style magic).
|
|
9
|
+
* 3. `app/entry-client.ts` — fallback for projects that manage HTML externally.
|
|
10
|
+
* 4. `app/app.ts` — last resort (same bundle, no DSD hydration preamble).
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveClientEntry(config: ResolvedCerConfig): string;
|
|
3
13
|
/**
|
|
4
14
|
* Runs the dual (client + server) SSR build using Vite's programmatic API.
|
|
5
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-ssr.d.ts","sourceRoot":"","sources":["../../src/plugin/build-ssr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"build-ssr.d.ts","sourceRoot":"","sources":["../../src/plugin/build-ssr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGxD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAQpE;AAgMD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,iBAAiB,EACzB,cAAc,GAAE,UAAe,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Ef"}
|
package/dist/plugin/build-ssr.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { build } from 'vite';
|
|
2
2
|
import { join, resolve } from 'pathe';
|
|
3
|
-
import { existsSync } from 'node:fs';
|
|
3
|
+
import { existsSync, renameSync } from 'node:fs';
|
|
4
|
+
import { getGeneratedDir, writeGeneratedDir } from './generated-dir.js';
|
|
4
5
|
/**
|
|
5
6
|
* Resolves the client build entry point for an SSR/SSG build.
|
|
6
7
|
*
|
|
7
8
|
* Priority order:
|
|
8
|
-
* 1. `index.html` at the project root —
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* themselves (e.g. a custom Express server).
|
|
13
|
-
* 3. `app/app.ts` — last resort (same bundle, no DSD hydration preamble).
|
|
9
|
+
* 1. `index.html` at the project root — consumer-provided HTML shell.
|
|
10
|
+
* 2. `.cer/index.html` — auto-generated HTML shell (Nuxt-style magic).
|
|
11
|
+
* 3. `app/entry-client.ts` — fallback for projects that manage HTML externally.
|
|
12
|
+
* 4. `app/app.ts` — last resort (same bundle, no DSD hydration preamble).
|
|
14
13
|
*/
|
|
15
|
-
function resolveClientEntry(config) {
|
|
14
|
+
export function resolveClientEntry(config) {
|
|
16
15
|
const indexHtml = resolve(config.root, 'index.html');
|
|
17
16
|
if (existsSync(indexHtml))
|
|
18
17
|
return indexHtml;
|
|
18
|
+
const cerIndexHtml = join(getGeneratedDir(config.root), 'index.html');
|
|
19
|
+
if (existsSync(cerIndexHtml))
|
|
20
|
+
return cerIndexHtml;
|
|
19
21
|
const entryClient = resolve(config.srcDir, 'entry-client.ts');
|
|
20
22
|
if (existsSync(entryClient))
|
|
21
23
|
return entryClient;
|
|
@@ -219,6 +221,9 @@ export default handler
|
|
|
219
221
|
export async function buildSSR(config, viteUserConfig = {}) {
|
|
220
222
|
const clientOutDir = join(config.root, 'dist/client');
|
|
221
223
|
const serverOutDir = join(config.root, 'dist/server');
|
|
224
|
+
// Write .cer/ generated files BEFORE resolving the client entry so that
|
|
225
|
+
// .cer/index.html is on disk when resolveClientEntry checks for it.
|
|
226
|
+
writeGeneratedDir(config);
|
|
222
227
|
// Resolve the client entry — index.html is preferred so Vite writes a
|
|
223
228
|
// processed index.html to dist/client/ for use as the SSG shell template.
|
|
224
229
|
const clientEntry = resolveClientEntry(config);
|
|
@@ -236,6 +241,14 @@ export async function buildSSR(config, viteUserConfig = {}) {
|
|
|
236
241
|
},
|
|
237
242
|
},
|
|
238
243
|
});
|
|
244
|
+
// If the client entry was .cer/index.html, Vite outputs it as
|
|
245
|
+
// dist/client/.cer/index.html (preserving relative path). The SSR server
|
|
246
|
+
// template expects dist/client/index.html, so rename it into place.
|
|
247
|
+
const generatedHtmlOut = join(clientOutDir, '.cer/index.html');
|
|
248
|
+
const rootHtmlOut = join(clientOutDir, 'index.html');
|
|
249
|
+
if (existsSync(generatedHtmlOut) && !existsSync(rootHtmlOut)) {
|
|
250
|
+
renameSync(generatedHtmlOut, rootHtmlOut);
|
|
251
|
+
}
|
|
239
252
|
// Generate server entry source inline via a virtual plugin
|
|
240
253
|
const serverEntryCode = generateServerEntryCode();
|
|
241
254
|
const VIRTUAL_SERVER_ENTRY = 'virtual:cer-server-entry';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-ssr.js","sourceRoot":"","sources":["../../src/plugin/build-ssr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,MAAM,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"build-ssr.js","sourceRoot":"","sources":["../../src/plugin/build-ssr.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,GAAG,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;IACzC,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;CAClG;AAwFD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,GACxB,IAAI,
|
|
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,GAAG,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;IACzC,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;CAClG;AAwFD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAmJN"}
|
|
@@ -129,8 +129,6 @@ export function configureCerDevServer(server, config) {
|
|
|
129
129
|
this.statusCode = code;
|
|
130
130
|
return this;
|
|
131
131
|
};
|
|
132
|
-
// Try to find a handler for the HTTP method. Exports may be GET/POST (uppercase)
|
|
133
|
-
// or get/post (lowercase); try both plus a 'default' fallback.
|
|
134
132
|
const handlerKey = method.toLowerCase();
|
|
135
133
|
const handler = route.handlers[handlerKey] ??
|
|
136
134
|
route.handlers[method.toUpperCase()] ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/plugin/dev-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/plugin/dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Writes
|
|
3
|
-
*
|
|
4
|
-
* { "extends": "
|
|
2
|
+
* Writes `.cer/tsconfig.json` containing path aliases for the `~/` prefix
|
|
3
|
+
* plus include/exclude entries so the consumer's `tsconfig.json` only needs:
|
|
4
|
+
* { "extends": "./.cer/tsconfig.json" }
|
|
5
5
|
*/
|
|
6
6
|
export declare function writeTsconfigPaths(root: string, srcDir: string): void;
|
|
7
7
|
/**
|
|
@@ -21,7 +21,7 @@ export declare function generateAutoImportDts(root: string, composablesDir: stri
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function generateVirtualModuleDts(root: string, composablesDir: string, composableExports?: Map<string, string>): Promise<string>;
|
|
23
23
|
/**
|
|
24
|
-
* Writes
|
|
24
|
+
* Writes `auto-imports.d.ts` and `env.d.ts` to `.cer/` inside the project root.
|
|
25
25
|
*/
|
|
26
26
|
export declare function writeAutoImportDts(root: string, composablesDir: string, composableExports?: Map<string, string>): Promise<void>;
|
|
27
27
|
//# sourceMappingURL=dts-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgCrE;AAqCD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiBhG;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAiDjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -1,26 +1,42 @@
|
|
|
1
|
-
import { writeFileSync } from 'node:fs';
|
|
2
|
-
import { readFileSync
|
|
1
|
+
import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
3
|
import { join, relative } from 'pathe';
|
|
4
4
|
import { scanDirectory } from './scanner.js';
|
|
5
|
+
import { GENERATED_DIR_NAME } from './generated-dir.js';
|
|
5
6
|
/**
|
|
6
|
-
* Writes
|
|
7
|
-
*
|
|
8
|
-
* { "extends": "
|
|
7
|
+
* Writes `.cer/tsconfig.json` containing path aliases for the `~/` prefix
|
|
8
|
+
* plus include/exclude entries so the consumer's `tsconfig.json` only needs:
|
|
9
|
+
* { "extends": "./.cer/tsconfig.json" }
|
|
9
10
|
*/
|
|
10
11
|
export function writeTsconfigPaths(root, srcDir) {
|
|
11
|
-
const
|
|
12
|
+
const cerDir = join(root, GENERATED_DIR_NAME);
|
|
13
|
+
if (!existsSync(cerDir)) {
|
|
14
|
+
mkdirSync(cerDir, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
// Paths are relative to .cer/ inside the project root, so prefix with ../
|
|
17
|
+
const srcRel = '../' + relative(root, srcDir).replace(/\\/g, '/');
|
|
12
18
|
const paths = {
|
|
13
|
-
'~/*': [`${
|
|
14
|
-
'~/pages/*': [`${
|
|
15
|
-
'~/layouts/*': [`${
|
|
16
|
-
'~/components/*': [`${
|
|
17
|
-
'~/composables/*': [`${
|
|
18
|
-
'~/plugins/*': [`${
|
|
19
|
-
'~/middleware/*': [`${
|
|
20
|
-
'~/assets/*': [`${
|
|
19
|
+
'~/*': [`${srcRel}/*`],
|
|
20
|
+
'~/pages/*': [`${srcRel}/pages/*`],
|
|
21
|
+
'~/layouts/*': [`${srcRel}/layouts/*`],
|
|
22
|
+
'~/components/*': [`${srcRel}/components/*`],
|
|
23
|
+
'~/composables/*': [`${srcRel}/composables/*`],
|
|
24
|
+
'~/plugins/*': [`${srcRel}/plugins/*`],
|
|
25
|
+
'~/middleware/*': [`${srcRel}/middleware/*`],
|
|
26
|
+
'~/assets/*': [`${srcRel}/assets/*`],
|
|
27
|
+
};
|
|
28
|
+
const tsconfig = {
|
|
29
|
+
compilerOptions: { paths },
|
|
30
|
+
include: [
|
|
31
|
+
'../app/**/*.ts',
|
|
32
|
+
'../server/**/*.ts',
|
|
33
|
+
'./**/*.ts',
|
|
34
|
+
'./**/*.d.ts',
|
|
35
|
+
],
|
|
36
|
+
exclude: ['../node_modules', '../dist'],
|
|
21
37
|
};
|
|
22
|
-
const content = JSON.stringify(
|
|
23
|
-
writeFileSync(join(
|
|
38
|
+
const content = JSON.stringify(tsconfig, null, 2) + '\n';
|
|
39
|
+
writeFileSync(join(cerDir, 'tsconfig.json'), content, 'utf-8');
|
|
24
40
|
}
|
|
25
41
|
const RUNTIME_GLOBALS = [
|
|
26
42
|
'component',
|
|
@@ -168,13 +184,17 @@ export async function generateVirtualModuleDts(root, composablesDir, composableE
|
|
|
168
184
|
return lines.join('\n');
|
|
169
185
|
}
|
|
170
186
|
/**
|
|
171
|
-
* Writes
|
|
187
|
+
* Writes `auto-imports.d.ts` and `env.d.ts` to `.cer/` inside the project root.
|
|
172
188
|
*/
|
|
173
189
|
export async function writeAutoImportDts(root, composablesDir, composableExports) {
|
|
190
|
+
const cerDir = join(root, GENERATED_DIR_NAME);
|
|
191
|
+
if (!existsSync(cerDir)) {
|
|
192
|
+
mkdirSync(cerDir, { recursive: true });
|
|
193
|
+
}
|
|
174
194
|
const scanned = composableExports ?? await scanComposableExports(composablesDir);
|
|
175
195
|
const autoImportsContent = await generateAutoImportDts(root, composablesDir, scanned);
|
|
176
196
|
const envContent = await generateVirtualModuleDts(root, composablesDir, scanned);
|
|
177
|
-
writeFileSync(join(
|
|
178
|
-
writeFileSync(join(
|
|
197
|
+
writeFileSync(join(cerDir, 'auto-imports.d.ts'), autoImportsContent, 'utf-8');
|
|
198
|
+
writeFileSync(join(cerDir, 'env.d.ts'), envContent, 'utf-8');
|
|
179
199
|
}
|
|
180
200
|
//# sourceMappingURL=dts-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ResolvedCerConfig } from './dev-server.js';
|
|
2
|
+
/** The name of the generated directory relative to the project root. */
|
|
3
|
+
export declare const GENERATED_DIR_NAME = ".cer";
|
|
4
|
+
/**
|
|
5
|
+
* Returns the absolute path to the .cer/ generated directory.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getGeneratedDir(root: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the app entry file path to use for builds and the dev server.
|
|
10
|
+
* Prefers the consumer's `app/app.ts` when it exists; falls back to `.cer/app.ts`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveAppEntry(config: ResolvedCerConfig): string;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the HTML entry path to use for builds.
|
|
15
|
+
* Prefers the consumer's root-level `index.html` when it exists;
|
|
16
|
+
* falls back to `.cer/index.html`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveHtmlEntry(config: ResolvedCerConfig): string;
|
|
19
|
+
/**
|
|
20
|
+
* Generates the content for a default `index.html`.
|
|
21
|
+
* The script src points to the consumer's `app/app.ts` if it exists,
|
|
22
|
+
* otherwise to the generated `.cer/app.ts`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateDefaultHtml(config: ResolvedCerConfig): string;
|
|
25
|
+
/**
|
|
26
|
+
* Writes all generated files to `.cer/`:
|
|
27
|
+
* - `.cer/app.ts` — default entry (only when `app/app.ts` does not exist)
|
|
28
|
+
* - `.cer/index.html` — default HTML shell
|
|
29
|
+
* - `.cer/tsconfig.json` — written by dts-generator via writeTsconfigPaths
|
|
30
|
+
*
|
|
31
|
+
* Also ensures `.cer/` is listed in `.gitignore`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function writeGeneratedDir(config: ResolvedCerConfig): void;
|
|
34
|
+
//# sourceMappingURL=generated-dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-dir.d.ts","sourceRoot":"","sources":["../../src/plugin/generated-dir.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,SAAS,CAAA;AAExC;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAIjE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgBrE;AAoBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAgBjE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { writeFileSync, existsSync, mkdirSync, readFileSync, appendFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'pathe';
|
|
3
|
+
import { APP_ENTRY_TEMPLATE } from '../runtime/app-template.js';
|
|
4
|
+
/** The name of the generated directory relative to the project root. */
|
|
5
|
+
export const GENERATED_DIR_NAME = '.cer';
|
|
6
|
+
/**
|
|
7
|
+
* Returns the absolute path to the .cer/ generated directory.
|
|
8
|
+
*/
|
|
9
|
+
export function getGeneratedDir(root) {
|
|
10
|
+
return join(root, GENERATED_DIR_NAME);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Returns the app entry file path to use for builds and the dev server.
|
|
14
|
+
* Prefers the consumer's `app/app.ts` when it exists; falls back to `.cer/app.ts`.
|
|
15
|
+
*/
|
|
16
|
+
export function resolveAppEntry(config) {
|
|
17
|
+
const userEntry = join(config.srcDir, 'app.ts');
|
|
18
|
+
if (existsSync(userEntry))
|
|
19
|
+
return userEntry;
|
|
20
|
+
return join(getGeneratedDir(config.root), 'app.ts');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns the HTML entry path to use for builds.
|
|
24
|
+
* Prefers the consumer's root-level `index.html` when it exists;
|
|
25
|
+
* falls back to `.cer/index.html`.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveHtmlEntry(config) {
|
|
28
|
+
const userHtml = join(config.root, 'index.html');
|
|
29
|
+
if (existsSync(userHtml))
|
|
30
|
+
return userHtml;
|
|
31
|
+
return join(getGeneratedDir(config.root), 'index.html');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Generates the content for a default `index.html`.
|
|
35
|
+
* The script src points to the consumer's `app/app.ts` if it exists,
|
|
36
|
+
* otherwise to the generated `.cer/app.ts`.
|
|
37
|
+
*/
|
|
38
|
+
export function generateDefaultHtml(config) {
|
|
39
|
+
const userEntry = join(config.srcDir, 'app.ts');
|
|
40
|
+
const scriptSrc = existsSync(userEntry) ? '/app/app.ts' : '/.cer/app.ts';
|
|
41
|
+
return `<!DOCTYPE html>
|
|
42
|
+
<html lang="en">
|
|
43
|
+
<head>
|
|
44
|
+
<meta charset="UTF-8" />
|
|
45
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
46
|
+
<title>CER App</title>
|
|
47
|
+
</head>
|
|
48
|
+
<body>
|
|
49
|
+
<cer-layout-view></cer-layout-view>
|
|
50
|
+
<script type="module" src="${scriptSrc}"></script>
|
|
51
|
+
</body>
|
|
52
|
+
</html>
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Ensures `.cer/` is listed in the project's `.gitignore`.
|
|
57
|
+
* Creates `.gitignore` if it does not exist.
|
|
58
|
+
*/
|
|
59
|
+
function ensureGitignore(root) {
|
|
60
|
+
const gitignorePath = join(root, '.gitignore');
|
|
61
|
+
const entry = `${GENERATED_DIR_NAME}/`;
|
|
62
|
+
if (existsSync(gitignorePath)) {
|
|
63
|
+
const content = readFileSync(gitignorePath, 'utf-8');
|
|
64
|
+
if (!content.includes(entry) && !content.includes(`${GENERATED_DIR_NAME}\n`)) {
|
|
65
|
+
appendFileSync(gitignorePath, `\n# CER App generated directory\n${entry}\n`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
writeFileSync(gitignorePath, `# CER App generated directory\n${entry}\n`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Writes all generated files to `.cer/`:
|
|
74
|
+
* - `.cer/app.ts` — default entry (only when `app/app.ts` does not exist)
|
|
75
|
+
* - `.cer/index.html` — default HTML shell
|
|
76
|
+
* - `.cer/tsconfig.json` — written by dts-generator via writeTsconfigPaths
|
|
77
|
+
*
|
|
78
|
+
* Also ensures `.cer/` is listed in `.gitignore`.
|
|
79
|
+
*/
|
|
80
|
+
export function writeGeneratedDir(config) {
|
|
81
|
+
const dir = getGeneratedDir(config.root);
|
|
82
|
+
if (!existsSync(dir)) {
|
|
83
|
+
mkdirSync(dir, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
// Write default app.ts only when the consumer has not provided one.
|
|
86
|
+
const userEntry = join(config.srcDir, 'app.ts');
|
|
87
|
+
if (!existsSync(userEntry)) {
|
|
88
|
+
writeFileSync(join(dir, 'app.ts'), APP_ENTRY_TEMPLATE, 'utf-8');
|
|
89
|
+
}
|
|
90
|
+
// Always write the default index.html so builds and the dev server can use it.
|
|
91
|
+
writeFileSync(join(dir, 'index.html'), generateDefaultHtml(config), 'utf-8');
|
|
92
|
+
ensureGitignore(config.root);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=generated-dir.js.map
|