irgen 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/CHANGELOG.md +113 -0
- package/LICENSE +21 -0
- package/README.md +161 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +312 -0
- package/dist/cli.js.map +1 -0
- package/dist/dsl/aggregator.d.ts +8 -0
- package/dist/dsl/aggregator.d.ts.map +1 -0
- package/dist/dsl/aggregator.js +64 -0
- package/dist/dsl/aggregator.js.map +1 -0
- package/dist/dsl/frontend-runtime.d.ts +486 -0
- package/dist/dsl/frontend-runtime.d.ts.map +1 -0
- package/dist/dsl/frontend-runtime.js +232 -0
- package/dist/dsl/frontend-runtime.js.map +1 -0
- package/dist/dsl/runtime.d.ts +33 -0
- package/dist/dsl/runtime.d.ts.map +1 -0
- package/dist/dsl/runtime.js +120 -0
- package/dist/dsl/runtime.js.map +1 -0
- package/dist/emit/backend/adapters.d.ts +11 -0
- package/dist/emit/backend/adapters.d.ts.map +1 -0
- package/dist/emit/backend/adapters.js +374 -0
- package/dist/emit/backend/adapters.js.map +1 -0
- package/dist/emit/backend/backend-tsmorph.d.ts +5 -0
- package/dist/emit/backend/backend-tsmorph.d.ts.map +1 -0
- package/dist/emit/backend/backend-tsmorph.js +858 -0
- package/dist/emit/backend/backend-tsmorph.js.map +1 -0
- package/dist/emit/backend/fake-backend.d.ts +2 -0
- package/dist/emit/backend/fake-backend.d.ts.map +1 -0
- package/dist/emit/backend/fake-backend.js +19 -0
- package/dist/emit/backend/fake-backend.js.map +1 -0
- package/dist/emit/backend/packaging.d.ts +3 -0
- package/dist/emit/backend/packaging.d.ts.map +1 -0
- package/dist/emit/backend/packaging.js +71 -0
- package/dist/emit/backend/packaging.js.map +1 -0
- package/dist/emit/backend/server.d.ts +4 -0
- package/dist/emit/backend/server.d.ts.map +1 -0
- package/dist/emit/backend/server.js +169 -0
- package/dist/emit/backend/server.js.map +1 -0
- package/dist/emit/cli/cli-fake.d.ts +2 -0
- package/dist/emit/cli/cli-fake.d.ts.map +1 -0
- package/dist/emit/cli/cli-fake.js +33 -0
- package/dist/emit/cli/cli-fake.js.map +1 -0
- package/dist/emit/electron/electron-shell.d.ts +3 -0
- package/dist/emit/electron/electron-shell.d.ts.map +1 -0
- package/dist/emit/electron/electron-shell.js +454 -0
- package/dist/emit/electron/electron-shell.js.map +1 -0
- package/dist/emit/engine.d.ts +14 -0
- package/dist/emit/engine.d.ts.map +1 -0
- package/dist/emit/engine.js +25 -0
- package/dist/emit/engine.js.map +1 -0
- package/dist/emit/format.d.ts +2 -0
- package/dist/emit/format.d.ts.map +1 -0
- package/dist/emit/format.js +23 -0
- package/dist/emit/format.js.map +1 -0
- package/dist/emit/frontend/frontend-react.d.ts +4 -0
- package/dist/emit/frontend/frontend-react.d.ts.map +1 -0
- package/dist/emit/frontend/frontend-react.js +2021 -0
- package/dist/emit/frontend/frontend-react.js.map +1 -0
- package/dist/emit/frontend/registry.d.ts +20 -0
- package/dist/emit/frontend/registry.d.ts.map +1 -0
- package/dist/emit/frontend/registry.js +46 -0
- package/dist/emit/frontend/registry.js.map +1 -0
- package/dist/emit/frontend/runtime-emitter.d.ts +4 -0
- package/dist/emit/frontend/runtime-emitter.d.ts.map +1 -0
- package/dist/emit/frontend/runtime-emitter.js +435 -0
- package/dist/emit/frontend/runtime-emitter.js.map +1 -0
- package/dist/emit/frontend/runtime-template.d.ts +28 -0
- package/dist/emit/frontend/runtime-template.d.ts.map +1 -0
- package/dist/emit/frontend/runtime-template.js +218 -0
- package/dist/emit/frontend/runtime-template.js.map +1 -0
- package/dist/emit/frontend/ssg.d.ts +8 -0
- package/dist/emit/frontend/ssg.d.ts.map +1 -0
- package/dist/emit/frontend/ssg.js +219 -0
- package/dist/emit/frontend/ssg.js.map +1 -0
- package/dist/emit/registry.d.ts +17 -0
- package/dist/emit/registry.d.ts.map +1 -0
- package/dist/emit/registry.js +38 -0
- package/dist/emit/registry.js.map +1 -0
- package/dist/emit/static-site/css.d.ts +5 -0
- package/dist/emit/static-site/css.d.ts.map +1 -0
- package/dist/emit/static-site/css.js +872 -0
- package/dist/emit/static-site/css.js.map +1 -0
- package/dist/emit/static-site/enhancements.d.ts +11 -0
- package/dist/emit/static-site/enhancements.d.ts.map +1 -0
- package/dist/emit/static-site/enhancements.js +266 -0
- package/dist/emit/static-site/enhancements.js.map +1 -0
- package/dist/emit/static-site/static-site-html.d.ts +3 -0
- package/dist/emit/static-site/static-site-html.d.ts.map +1 -0
- package/dist/emit/static-site/static-site-html.js +1172 -0
- package/dist/emit/static-site/static-site-html.js.map +1 -0
- package/dist/emit/utils/sdk.d.ts +15 -0
- package/dist/emit/utils/sdk.d.ts.map +1 -0
- package/dist/emit/utils/sdk.js +34 -0
- package/dist/emit/utils/sdk.js.map +1 -0
- package/dist/extensions/context.d.ts +23 -0
- package/dist/extensions/context.d.ts.map +1 -0
- package/dist/extensions/context.js +43 -0
- package/dist/extensions/context.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/decl/backend.raw.schema.d.ts +128 -0
- package/dist/ir/decl/backend.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/backend.raw.schema.js +24 -0
- package/dist/ir/decl/backend.raw.schema.js.map +1 -0
- package/dist/ir/decl/bundle.d.ts +15 -0
- package/dist/ir/decl/bundle.d.ts.map +1 -0
- package/dist/ir/decl/bundle.js +8 -0
- package/dist/ir/decl/bundle.js.map +1 -0
- package/dist/ir/decl/cli.raw.schema.d.ts +133 -0
- package/dist/ir/decl/cli.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/cli.raw.schema.js +20 -0
- package/dist/ir/decl/cli.raw.schema.js.map +1 -0
- package/dist/ir/decl/frontend.raw.schema.d.ts +6631 -0
- package/dist/ir/decl/frontend.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/frontend.raw.schema.js +272 -0
- package/dist/ir/decl/frontend.raw.schema.js.map +1 -0
- package/dist/ir/decl/index.d.ts +6 -0
- package/dist/ir/decl/index.d.ts.map +1 -0
- package/dist/ir/decl/index.js +6 -0
- package/dist/ir/decl/index.js.map +1 -0
- package/dist/ir/decl/normalize.schema.d.ts +9154 -0
- package/dist/ir/decl/normalize.schema.d.ts.map +1 -0
- package/dist/ir/decl/normalize.schema.js +71 -0
- package/dist/ir/decl/normalize.schema.js.map +1 -0
- package/dist/ir/domain/backend.d.ts +19 -0
- package/dist/ir/domain/backend.d.ts.map +1 -0
- package/dist/ir/domain/backend.js +3 -0
- package/dist/ir/domain/backend.js.map +1 -0
- package/dist/ir/domain/cli.d.ts +18 -0
- package/dist/ir/domain/cli.d.ts.map +1 -0
- package/dist/ir/domain/cli.js +2 -0
- package/dist/ir/domain/cli.js.map +1 -0
- package/dist/ir/domain/frontend/index.d.ts +190 -0
- package/dist/ir/domain/frontend/index.d.ts.map +1 -0
- package/dist/ir/domain/frontend/index.js +2 -0
- package/dist/ir/domain/frontend/index.js.map +1 -0
- package/dist/ir/domain/frontend.d.ts +2 -0
- package/dist/ir/domain/frontend.d.ts.map +1 -0
- package/dist/ir/domain/frontend.js +3 -0
- package/dist/ir/domain/frontend.js.map +1 -0
- package/dist/ir/frontend-contract.d.ts +187 -0
- package/dist/ir/frontend-contract.d.ts.map +1 -0
- package/dist/ir/frontend-contract.js +6 -0
- package/dist/ir/frontend-contract.js.map +1 -0
- package/dist/ir/target/backend.d.ts +11 -0
- package/dist/ir/target/backend.d.ts.map +1 -0
- package/dist/ir/target/backend.js +2 -0
- package/dist/ir/target/backend.js.map +1 -0
- package/dist/ir/target/backend.policy.d.ts +896 -0
- package/dist/ir/target/backend.policy.d.ts.map +1 -0
- package/dist/ir/target/backend.policy.js +106 -0
- package/dist/ir/target/backend.policy.js.map +1 -0
- package/dist/ir/target/cli.d.ts +3 -0
- package/dist/ir/target/cli.d.ts.map +1 -0
- package/dist/ir/target/cli.js +2 -0
- package/dist/ir/target/cli.js.map +1 -0
- package/dist/ir/target/electron.d.ts +99 -0
- package/dist/ir/target/electron.d.ts.map +1 -0
- package/dist/ir/target/electron.js +2 -0
- package/dist/ir/target/electron.js.map +1 -0
- package/dist/ir/target/electron.policy.d.ts +7015 -0
- package/dist/ir/target/electron.policy.d.ts.map +1 -0
- package/dist/ir/target/electron.policy.js +119 -0
- package/dist/ir/target/electron.policy.js.map +1 -0
- package/dist/ir/target/frontend.d.ts +12 -0
- package/dist/ir/target/frontend.d.ts.map +1 -0
- package/dist/ir/target/frontend.js +2 -0
- package/dist/ir/target/frontend.js.map +1 -0
- package/dist/ir/target/frontend.policy.d.ts +268 -0
- package/dist/ir/target/frontend.policy.d.ts.map +1 -0
- package/dist/ir/target/frontend.policy.js +33 -0
- package/dist/ir/target/frontend.policy.js.map +1 -0
- package/dist/ir/target/index.d.ts +6 -0
- package/dist/ir/target/index.d.ts.map +1 -0
- package/dist/ir/target/index.js +6 -0
- package/dist/ir/target/index.js.map +1 -0
- package/dist/ir/target/static-site.d.ts +18 -0
- package/dist/ir/target/static-site.d.ts.map +1 -0
- package/dist/ir/target/static-site.js +2 -0
- package/dist/ir/target/static-site.js.map +1 -0
- package/dist/ir/target/static-site.policy.d.ts +2911 -0
- package/dist/ir/target/static-site.policy.d.ts.map +1 -0
- package/dist/ir/target/static-site.policy.js +127 -0
- package/dist/ir/target/static-site.policy.js.map +1 -0
- package/dist/lowering/backend.d.ts +4 -0
- package/dist/lowering/backend.d.ts.map +1 -0
- package/dist/lowering/backend.js +57 -0
- package/dist/lowering/backend.js.map +1 -0
- package/dist/lowering/cli.d.ts +4 -0
- package/dist/lowering/cli.d.ts.map +1 -0
- package/dist/lowering/cli.js +22 -0
- package/dist/lowering/cli.js.map +1 -0
- package/dist/lowering/engine.d.ts +18 -0
- package/dist/lowering/engine.d.ts.map +1 -0
- package/dist/lowering/engine.js +47 -0
- package/dist/lowering/engine.js.map +1 -0
- package/dist/lowering/frontend.d.ts +9 -0
- package/dist/lowering/frontend.d.ts.map +1 -0
- package/dist/lowering/frontend.js +246 -0
- package/dist/lowering/frontend.js.map +1 -0
- package/dist/lowering/targets/to-backend.d.ts +9 -0
- package/dist/lowering/targets/to-backend.d.ts.map +1 -0
- package/dist/lowering/targets/to-backend.js +55 -0
- package/dist/lowering/targets/to-backend.js.map +1 -0
- package/dist/lowering/targets/to-cli.d.ts +4 -0
- package/dist/lowering/targets/to-cli.d.ts.map +1 -0
- package/dist/lowering/targets/to-cli.js +11 -0
- package/dist/lowering/targets/to-cli.js.map +1 -0
- package/dist/lowering/targets/to-electron.d.ts +30 -0
- package/dist/lowering/targets/to-electron.d.ts.map +1 -0
- package/dist/lowering/targets/to-electron.js +87 -0
- package/dist/lowering/targets/to-electron.js.map +1 -0
- package/dist/lowering/targets/to-frontend.d.ts +4 -0
- package/dist/lowering/targets/to-frontend.d.ts.map +1 -0
- package/dist/lowering/targets/to-frontend.js +30 -0
- package/dist/lowering/targets/to-frontend.js.map +1 -0
- package/dist/lowering/targets/to-static-site.d.ts +16 -0
- package/dist/lowering/targets/to-static-site.d.ts.map +1 -0
- package/dist/lowering/targets/to-static-site.js +30 -0
- package/dist/lowering/targets/to-static-site.js.map +1 -0
- package/dist/mappers/index.d.ts +12 -0
- package/dist/mappers/index.d.ts.map +1 -0
- package/dist/mappers/index.js +60 -0
- package/dist/mappers/index.js.map +1 -0
- package/dist/types/extension.d.ts +3 -0
- package/dist/types/extension.d.ts.map +1 -0
- package/dist/types/extension.js +2 -0
- package/dist/types/extension.js.map +1 -0
- package/dist/utils/array.d.ts +2 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +4 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/string.d.ts +13 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +56 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-template.js","sourceRoot":"","sources":["../../../src/emit/frontend/runtime-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import type { FrontendComponent } from "../../ir/domain/frontend.js";
|
|
3
|
+
import type { FrontendTargetIR } from "../../ir/target/frontend.js";
|
|
4
|
+
import type { FrontendPolicy } from "../../ir/target/frontend.policy.js";
|
|
5
|
+
export declare function isInteractiveComponent(component: FrontendComponent): boolean;
|
|
6
|
+
export declare function inferInteractiveRoutes(ir: FrontendTargetIR, policy: FrontendPolicy): string[];
|
|
7
|
+
export declare function emitSsgSupport(project: Project, outDir: string, frontendDir: string, ir: FrontendTargetIR): void;
|
|
8
|
+
//# sourceMappingURL=ssg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssg.d.ts","sourceRoot":"","sources":["../../../src/emit/frontend/ssg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAMzE,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAQ5E;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAoC7F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,QA0KzG"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
function ensureDir(p) {
|
|
4
|
+
fs.mkdirSync(p, { recursive: true });
|
|
5
|
+
}
|
|
6
|
+
export function isInteractiveComponent(component) {
|
|
7
|
+
const hasIpcButton = Boolean(component.props && component.props["ipcChannel"]);
|
|
8
|
+
return Boolean(component.themeToggle ||
|
|
9
|
+
hasIpcButton ||
|
|
10
|
+
(component.form && component.form.fields && component.form.fields.length > 0) ||
|
|
11
|
+
component.layout?.kind === "tabs");
|
|
12
|
+
}
|
|
13
|
+
export function inferInteractiveRoutes(ir, policy) {
|
|
14
|
+
if (policy.framework.rendering.mode !== "hybrid")
|
|
15
|
+
return [];
|
|
16
|
+
// App shell uses interactive theme toggle, so hybrid requires hydration on all routes.
|
|
17
|
+
const appHasInteractivity = true;
|
|
18
|
+
if (appHasInteractivity)
|
|
19
|
+
return ir.pages.map((page) => page.path);
|
|
20
|
+
const componentMap = new Map(ir.components.map((component) => [component.name, component]));
|
|
21
|
+
const collectRefs = (component) => {
|
|
22
|
+
const refs = new Set();
|
|
23
|
+
if (component.layout?.items) {
|
|
24
|
+
component.layout.items.forEach((item) => refs.add(item));
|
|
25
|
+
}
|
|
26
|
+
component.layout?.tabs?.forEach((tab) => {
|
|
27
|
+
tab.items?.forEach((item) => refs.add(item));
|
|
28
|
+
});
|
|
29
|
+
return Array.from(refs);
|
|
30
|
+
};
|
|
31
|
+
const isPageInteractive = (page) => {
|
|
32
|
+
const queue = [...page.components];
|
|
33
|
+
const visited = new Set();
|
|
34
|
+
while (queue.length) {
|
|
35
|
+
const current = queue.shift();
|
|
36
|
+
if (!current)
|
|
37
|
+
continue;
|
|
38
|
+
if (isInteractiveComponent(current))
|
|
39
|
+
return true;
|
|
40
|
+
for (const ref of collectRefs(current)) {
|
|
41
|
+
if (visited.has(ref))
|
|
42
|
+
continue;
|
|
43
|
+
visited.add(ref);
|
|
44
|
+
const child = componentMap.get(ref);
|
|
45
|
+
if (child)
|
|
46
|
+
queue.push(child);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
};
|
|
51
|
+
return ir.pages.filter((page) => isPageInteractive(page)).map((page) => page.path);
|
|
52
|
+
}
|
|
53
|
+
export function emitSsgSupport(project, outDir, frontendDir, ir) {
|
|
54
|
+
const policy = ir.policies.frontend;
|
|
55
|
+
const mode = policy.framework.rendering.mode;
|
|
56
|
+
// Create entry-server.tsx
|
|
57
|
+
const serverEntry = project.createSourceFile(path.join(frontendDir, "entry-server.tsx"), "", { overwrite: true });
|
|
58
|
+
serverEntry.addImportDeclaration({ moduleSpecifier: "react", defaultImport: "React" });
|
|
59
|
+
serverEntry.addImportDeclaration({ moduleSpecifier: "react-dom/server", namedImports: ["renderToString"] });
|
|
60
|
+
serverEntry.addImportDeclaration({ moduleSpecifier: "react-router-dom/server", namedImports: ["StaticRouter"] });
|
|
61
|
+
serverEntry.addImportDeclaration({ moduleSpecifier: "./App", namedImports: ["App"] });
|
|
62
|
+
serverEntry.addStatements(`
|
|
63
|
+
export function render(url: string) {
|
|
64
|
+
const html = renderToString(
|
|
65
|
+
<React.StrictMode>
|
|
66
|
+
<StaticRouter location={url}>
|
|
67
|
+
<App />
|
|
68
|
+
</StaticRouter>
|
|
69
|
+
</React.StrictMode>
|
|
70
|
+
);
|
|
71
|
+
return { html };
|
|
72
|
+
}
|
|
73
|
+
`.trim());
|
|
74
|
+
// Create SSG Template
|
|
75
|
+
const templateHtml = `
|
|
76
|
+
<!DOCTYPE html>
|
|
77
|
+
<html lang="en">
|
|
78
|
+
<head>
|
|
79
|
+
<meta charset="UTF-8" />
|
|
80
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
81
|
+
${ir.pwa?.enabled ? `<link rel="manifest" href="/manifest.webmanifest" />` : ""}
|
|
82
|
+
${ir.pwa?.enabled ? `<meta name="theme-color" content="${ir.pwa.themeColor}" />` : ""}
|
|
83
|
+
<!--app-head-->
|
|
84
|
+
<title>${ir.appName}</title>
|
|
85
|
+
</head>
|
|
86
|
+
<body>
|
|
87
|
+
<div id="root" data-irgen-interactive="false"><!--app-html--></div>
|
|
88
|
+
</body>
|
|
89
|
+
</html>
|
|
90
|
+
`.trim();
|
|
91
|
+
const scriptDir = path.join(outDir, "scripts");
|
|
92
|
+
ensureDir(scriptDir);
|
|
93
|
+
fs.writeFileSync(path.join(outDir, "ssg-template.html"), templateHtml, "utf-8");
|
|
94
|
+
// Create Prerender Script
|
|
95
|
+
const prerenderRoutes = policy.framework.rendering.prerender.routes === "auto"
|
|
96
|
+
? ir.pages.map((p) => p.path)
|
|
97
|
+
: policy.framework.rendering.prerender.routes;
|
|
98
|
+
const interactiveRoutes = inferInteractiveRoutes(ir, policy);
|
|
99
|
+
const prerenderScript = `
|
|
100
|
+
import fs from "node:fs";
|
|
101
|
+
import path from "node:path";
|
|
102
|
+
import { fileURLToPath } from "node:url";
|
|
103
|
+
|
|
104
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
105
|
+
const rootDir = path.resolve(__dirname, "..");
|
|
106
|
+
const outDir = path.resolve(rootDir, "${policy.framework.rendering.prerender.outDir}");
|
|
107
|
+
const routes = ${JSON.stringify(prerenderRoutes)};
|
|
108
|
+
const interactiveRoutes = new Set(${JSON.stringify(interactiveRoutes)});
|
|
109
|
+
const mode = "${mode}";
|
|
110
|
+
const emitSitemap = ${policy.framework.rendering.prerender.emitSitemap};
|
|
111
|
+
const emitRobotsTxt = ${policy.framework.rendering.prerender.emitRobotsTxt};
|
|
112
|
+
const siteUrl = process.env.SITE_URL || "http://localhost";
|
|
113
|
+
|
|
114
|
+
function isDynamicRoute(route) {
|
|
115
|
+
return route.includes(":") || route.includes("*");
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function routeToFilePath(route) {
|
|
119
|
+
if (route === "/") return "index.html";
|
|
120
|
+
const normalized = route.replace(/^\\//, "").replace(/\\/$/, "");
|
|
121
|
+
return path.join(normalized, "index.html");
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function readManifest() {
|
|
125
|
+
const manifestPath = path.join(outDir, ".vite", "manifest.json");
|
|
126
|
+
const fallbackPath = path.join(outDir, "manifest.json");
|
|
127
|
+
const target = fs.existsSync(manifestPath) ? manifestPath : fallbackPath;
|
|
128
|
+
if (!fs.existsSync(target)) return null;
|
|
129
|
+
return JSON.parse(fs.readFileSync(target, "utf-8"));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function resolveEntry(manifest) {
|
|
133
|
+
if (!manifest) return null;
|
|
134
|
+
return manifest["src/entry-client.tsx"]
|
|
135
|
+
|| manifest["index.html"]
|
|
136
|
+
|| Object.values(manifest).find((entry) => entry && entry.isEntry);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function buildHead(entry, manifest, shouldHydrate) {
|
|
140
|
+
if (!entry) return "";
|
|
141
|
+
const tags = [];
|
|
142
|
+
if (entry.css) {
|
|
143
|
+
for (const css of entry.css) {
|
|
144
|
+
tags.push(\`<link rel="stylesheet" href="/\${css}">\`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (shouldHydrate && entry.imports) {
|
|
148
|
+
for (const imp of entry.imports) {
|
|
149
|
+
const file = manifest?.[imp]?.file ?? null;
|
|
150
|
+
if (file) tags.push(\`<link rel="modulepreload" href="/\${file}">\`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (shouldHydrate && entry.file) {
|
|
154
|
+
tags.push(\`<script type="module" src="/\${entry.file}"></script>\`);
|
|
155
|
+
}
|
|
156
|
+
return tags.join("\\n ");
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async function prerender() {
|
|
160
|
+
const templatePath = path.join(rootDir, "ssg-template.html");
|
|
161
|
+
const template = fs.readFileSync(templatePath, "utf-8");
|
|
162
|
+
|
|
163
|
+
const manifest = readManifest();
|
|
164
|
+
const entry = resolveEntry(manifest);
|
|
165
|
+
const { render } = await import(path.join(rootDir, ".ssg", "entry-server.js"));
|
|
166
|
+
|
|
167
|
+
if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
|
|
168
|
+
|
|
169
|
+
const spaFallback = path.join(outDir, "index.html");
|
|
170
|
+
if (fs.existsSync(spaFallback)) {
|
|
171
|
+
fs.copyFileSync(spaFallback, path.join(outDir, "index.spa.html"));
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
for (const route of routes) {
|
|
175
|
+
if (isDynamicRoute(route)) {
|
|
176
|
+
console.warn(\`Skipping dynamic route: \${route}\`);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const interactive = interactiveRoutes.has(route) && mode === "hybrid";
|
|
180
|
+
const { html } = render(route);
|
|
181
|
+
const head = buildHead(entry, manifest, interactive);
|
|
182
|
+
const finalHtml = template
|
|
183
|
+
.replace("<!--app-head-->", head)
|
|
184
|
+
.replace("<!--app-html-->", html)
|
|
185
|
+
.replace('data-irgen-interactive="false"', \`data-irgen-interactive="\${interactive}"\`);
|
|
186
|
+
const outFile = path.join(outDir, routeToFilePath(route));
|
|
187
|
+
fs.mkdirSync(path.dirname(outFile), { recursive: true });
|
|
188
|
+
fs.writeFileSync(outFile, finalHtml, "utf-8");
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (emitSitemap) {
|
|
192
|
+
const urls = routes
|
|
193
|
+
.filter((r) => !isDynamicRoute(r))
|
|
194
|
+
.map((route) => \` <url><loc>\${new URL(route, siteUrl).href}</loc></url>\`)
|
|
195
|
+
.join("\\n");
|
|
196
|
+
const sitemap = \`<?xml version="1.0" encoding="UTF-8"?>
|
|
197
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
198
|
+
\${urls}
|
|
199
|
+
</urlset>\`;
|
|
200
|
+
fs.writeFileSync(path.join(outDir, "sitemap.xml"), sitemap, "utf-8");
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (emitRobotsTxt) {
|
|
204
|
+
const sitemapUrl = emitSitemap ? new URL("/sitemap.xml", siteUrl).href : null;
|
|
205
|
+
const robotsTxt = \`User-agent: *
|
|
206
|
+
Allow: /
|
|
207
|
+
\${sitemapUrl ? "\\nSitemap: " + sitemapUrl : ""}\`;
|
|
208
|
+
fs.writeFileSync(path.join(outDir, "robots.txt"), robotsTxt, "utf-8");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
prerender().catch((err) => {
|
|
213
|
+
console.error("Prerender failed:", err);
|
|
214
|
+
process.exit(1);
|
|
215
|
+
});
|
|
216
|
+
`.trim();
|
|
217
|
+
fs.writeFileSync(path.join(scriptDir, "prerender.mjs"), prerenderScript, "utf-8");
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=ssg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssg.js","sourceRoot":"","sources":["../../../src/emit/frontend/ssg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function registerTargetEmitter(target: string, emitterName: string, options?: {
|
|
2
|
+
force?: boolean;
|
|
3
|
+
}): void;
|
|
4
|
+
export declare function getEmitterForTarget(target: string): string | undefined;
|
|
5
|
+
export declare function listTargetMappings(): {
|
|
6
|
+
target: string;
|
|
7
|
+
emitter: string;
|
|
8
|
+
}[];
|
|
9
|
+
export declare function setMappings(obj: Record<string, string>): void;
|
|
10
|
+
declare const _default: {
|
|
11
|
+
registerTargetEmitter: typeof registerTargetEmitter;
|
|
12
|
+
getEmitterForTarget: typeof getEmitterForTarget;
|
|
13
|
+
listTargetMappings: typeof listTargetMappings;
|
|
14
|
+
setMappings: typeof setMappings;
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
17
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/emit/registry.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,QAGvG;AAqBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,sBAEjD;AAED,wBAAgB,kBAAkB;;;IAEjC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAItD;;;;;;;AAED,wBAA+F"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const mapping = new Map();
|
|
2
|
+
export function registerTargetEmitter(target, emitterName, options) {
|
|
3
|
+
if (mapping.has(target) && !options?.force)
|
|
4
|
+
throw new Error(`target already has emitter: ${target}`);
|
|
5
|
+
mapping.set(target, emitterName);
|
|
6
|
+
}
|
|
7
|
+
// register noop defaults to keep registry populated for known targets
|
|
8
|
+
try {
|
|
9
|
+
registerTargetEmitter("cli", "cli-fake", { force: false });
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
// ignore if already set
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
registerTargetEmitter("electron", "electron-shell", { force: false });
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
// ignore if already set
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
registerTargetEmitter("static-site", "static-site-html", { force: false });
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
// ignore if already set
|
|
25
|
+
}
|
|
26
|
+
export function getEmitterForTarget(target) {
|
|
27
|
+
return mapping.get(target);
|
|
28
|
+
}
|
|
29
|
+
export function listTargetMappings() {
|
|
30
|
+
return Array.from(mapping.entries()).map(([t, e]) => ({ target: t, emitter: e }));
|
|
31
|
+
}
|
|
32
|
+
export function setMappings(obj) {
|
|
33
|
+
for (const k of Object.keys(obj)) {
|
|
34
|
+
mapping.set(k, obj[k]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default { registerTargetEmitter, getEmitterForTarget, listTargetMappings, setMappings };
|
|
38
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/emit/registry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,WAAmB,EAAE,OAA6B;IACtG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,sEAAsE;AACtE,IAAI,CAAC;IACH,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,IAAI,CAAC;IACH,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,IAAI,CAAC;IACH,qBAAqB,CAAC,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,wBAAwB;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAA2B;IACrD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../src/emit/static-site/css.ts"],"names":[],"mappings":"AAk1BA,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1F"}
|