@cmj/juice 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +6 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/templates.d.ts +2 -0
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +30 -7
- package/dist/cli/templates.js.map +1 -1
- package/dist/compiler/discover.d.ts +14 -9
- package/dist/compiler/discover.d.ts.map +1 -1
- package/dist/compiler/discover.js +83 -17
- package/dist/compiler/discover.js.map +1 -1
- package/dist/compiler/types.d.ts +7 -2
- package/dist/compiler/types.d.ts.map +1 -1
- package/dist/runtime/render.d.ts.map +1 -1
- package/dist/runtime/render.js +17 -1
- package/dist/runtime/render.js.map +1 -1
- package/dist/runtime/types.d.ts +5 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUlF,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAkBD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CA0C1D;AAID,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CA0CjB"}
|
package/dist/cli/create.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { mkdirSync, writeFileSync, existsSync } from 'node:fs';
|
|
7
7
|
import { join, resolve } from 'node:path';
|
|
8
8
|
import { createInterface } from 'node:readline';
|
|
9
|
-
import { packageJson, tsconfig, viteConfig, serverEntry, homeRoute, flightManifest, DEPLOY_TARGETS, TARGET_LABELS, } from './templates.js';
|
|
9
|
+
import { packageJson, tsconfig, viteConfig, serverEntry, homeRoute, rootLayout, flightManifest, wranglerToml, DEPLOY_TARGETS, TARGET_LABELS, } from './templates.js';
|
|
10
10
|
export { DEPLOY_TARGETS, TARGET_LABELS } from './templates.js';
|
|
11
11
|
// ── Validation ──────────────────────────────────────────────────
|
|
12
12
|
/**
|
|
@@ -95,8 +95,13 @@ export function createApp(name, options) {
|
|
|
95
95
|
['vite.config.ts', viteConfig()],
|
|
96
96
|
['flight-manifest.json', flightManifest()],
|
|
97
97
|
['server.ts', serverEntry(target)],
|
|
98
|
+
['app/routes/layout.tsx', rootLayout()],
|
|
98
99
|
['app/routes/home.tsx', homeRoute()],
|
|
99
100
|
];
|
|
101
|
+
// Cloudflare Workers requires wrangler.toml
|
|
102
|
+
if (target === 'cloudflare') {
|
|
103
|
+
files.push(['wrangler.toml', wranglerToml(name)]);
|
|
104
|
+
}
|
|
100
105
|
for (const [path, content] of files) {
|
|
101
106
|
writeFileSync(join(dir, path), content, 'utf-8');
|
|
102
107
|
}
|
package/dist/cli/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/templates.d.ts
CHANGED
|
@@ -11,5 +11,7 @@ export declare function viteConfig(): string;
|
|
|
11
11
|
export declare function flightManifest(): string;
|
|
12
12
|
export declare function serverEntry(target: DeployTarget): string;
|
|
13
13
|
export declare function homeRoute(): string;
|
|
14
|
+
export declare function rootLayout(): string;
|
|
15
|
+
export declare function wranglerToml(name: string): string;
|
|
14
16
|
export {};
|
|
15
17
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AAElE,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAmD,CAAC;AAEtG,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAKtD,CAAC;AAEF,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,MAAM,CAqCrE;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAiBjC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC;AAED,wBAAgB,cAAc,IAAI,MAAM,CASvC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AAElE,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAmD,CAAC;AAEtG,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAKtD,CAAC;AAEF,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,MAAM,CAqCrE;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAiBjC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC;AAED,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAwDD,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAgBnC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD"}
|
package/dist/cli/templates.js
CHANGED
|
@@ -98,6 +98,7 @@ console.log('🧃 Listening on http://localhost:3000');
|
|
|
98
98
|
`,
|
|
99
99
|
node: `
|
|
100
100
|
import { createServer } from 'node:http';
|
|
101
|
+
import { Readable } from 'node:stream';
|
|
101
102
|
|
|
102
103
|
createServer(async (req, res) => {
|
|
103
104
|
const url = new URL(req.url ?? '/', \`http://\${req.headers.host}\`);
|
|
@@ -113,8 +114,11 @@ createServer(async (req, res) => {
|
|
|
113
114
|
});
|
|
114
115
|
const response = await handler(request);
|
|
115
116
|
res.writeHead(response.status, Object.fromEntries(response.headers));
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
if (response.body) {
|
|
118
|
+
Readable.fromWeb(response.body as any).pipe(res);
|
|
119
|
+
} else {
|
|
120
|
+
res.end();
|
|
121
|
+
}
|
|
118
122
|
}).listen(3000, () => {
|
|
119
123
|
console.log('🧃 Listening on http://localhost:3000');
|
|
120
124
|
});
|
|
@@ -138,17 +142,36 @@ export default function HomePage() {
|
|
|
138
142
|
const timestamp = new Date().toISOString();
|
|
139
143
|
|
|
140
144
|
return (
|
|
141
|
-
|
|
145
|
+
<>
|
|
146
|
+
<h1>🧃 Juice</h1>
|
|
147
|
+
<p>Server-rendered at {timestamp}</p>
|
|
148
|
+
</>
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
153
|
+
export function rootLayout() {
|
|
154
|
+
return `import React from 'react';
|
|
155
|
+
|
|
156
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
157
|
+
return (
|
|
158
|
+
<html lang="en">
|
|
142
159
|
<head>
|
|
160
|
+
<meta charSet="utf-8" />
|
|
161
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
143
162
|
<title>Juice App</title>
|
|
144
163
|
</head>
|
|
145
|
-
<body>
|
|
146
|
-
<h1>🧃 Juice</h1>
|
|
147
|
-
<p>Server-rendered at {timestamp}</p>
|
|
148
|
-
</body>
|
|
164
|
+
<body>{children}</body>
|
|
149
165
|
</html>
|
|
150
166
|
);
|
|
151
167
|
}
|
|
152
168
|
`;
|
|
153
169
|
}
|
|
170
|
+
export function wranglerToml(name) {
|
|
171
|
+
return `name = "${name}"
|
|
172
|
+
main = "server.ts"
|
|
173
|
+
compatibility_date = "2024-12-01"
|
|
174
|
+
compatibility_flags = ["nodejs_compat"]
|
|
175
|
+
`;
|
|
176
|
+
}
|
|
154
177
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,kCAAkC;AAClC,mEAAmE;AACnE,oEAAoE;AAIpE,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAEtG,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,oBAAoB;IAChC,IAAI,EAAE,MAAM;CACb,CAAC;AAOF,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC3D,MAAM,WAAW,GAAiC;QAChD,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,cAAc;QAC1B,IAAI,EAAE,6CAA6C;KACpD,CAAC;IAEF,MAAM,GAAG,GAA4B;QACnC,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;YAC1B,SAAS,EAAE,cAAc;SAC1B;QACD,YAAY,EAAE;YACZ,YAAY,EAAE,QAAQ;YACtB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;SACvB;QACD,eAAe,EAAE;YACf,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,QAAQ;SACf;KACF,CAAC;IAEF,2DAA2D;IAC3D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,eAA0C,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC7E,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,MAAM,GAAG;QACb,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KACjC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE;YACN,GAAG,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE;SAC3C;QACD,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,mEAAmE;AAEnE,MAAM,eAAe,GAAG;;;;CAIvB,CAAC;AAEF,MAAM,eAAe,GAAiC;IACpD,GAAG,EAAE;;;;;;;CAON;IACC,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,kCAAkC;AAClC,mEAAmE;AACnE,oEAAoE;AAIpE,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAEtG,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,oBAAoB;IAChC,IAAI,EAAE,MAAM;CACb,CAAC;AAOF,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC3D,MAAM,WAAW,GAAiC;QAChD,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,cAAc;QAC1B,IAAI,EAAE,6CAA6C;KACpD,CAAC;IAEF,MAAM,GAAG,GAA4B;QACnC,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;YAC1B,SAAS,EAAE,cAAc;SAC1B;QACD,YAAY,EAAE;YACZ,YAAY,EAAE,QAAQ;YACtB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;SACvB;QACD,eAAe,EAAE;YACf,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,QAAQ;SACf;KACF,CAAC;IAEF,2DAA2D;IAC3D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,eAA0C,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC7E,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,MAAM,GAAG;QACb,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KACjC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE;YACN,GAAG,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE;SAC3C;QACD,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,mEAAmE;AAEnE,MAAM,eAAe,GAAG;;;;CAIvB,CAAC;AAEF,MAAM,eAAe,GAAiC;IACpD,GAAG,EAAE;;;;;;;CAON;IACC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BP;IACC,UAAU,EAAE;;CAEb;IACC,IAAI,EAAE;;;;CAIP;CACA,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;CAYR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;;;;;;;;;CAcR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,WAAW,IAAI;;;;CAIvB,CAAC;AACF,CAAC"}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovered route entry with optional layout chain.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export interface DiscoveredRoute {
|
|
6
|
+
moduleId: string;
|
|
7
|
+
layouts?: string[];
|
|
8
|
+
}
|
|
1
9
|
/**
|
|
2
10
|
* Recursively discover routes from the `app/routes/` directory.
|
|
3
11
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
12
|
+
* Detects `layout.tsx` files and builds a layout chain for each route.
|
|
13
|
+
* Layout chains are ordered root → leaf (outermost first).
|
|
6
14
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
15
|
+
* @param projectRoot - Absolute path to the project root (Vite's `config.root`).
|
|
16
|
+
* @returns A route map with layout chains, or `null` if `app/routes/` doesn't exist.
|
|
9
17
|
*
|
|
10
18
|
* @example
|
|
11
19
|
* ```ts
|
|
12
20
|
* const routes = _discoverRoutes('/Users/me/my-app');
|
|
13
|
-
* // → { '/': { moduleId: './app/routes/home.tsx' }
|
|
14
|
-
* // '/about': { moduleId: './app/routes/about.tsx' } }
|
|
21
|
+
* // → { '/': { moduleId: './app/routes/home.tsx', layouts: ['./app/routes/layout.tsx'] } }
|
|
15
22
|
* ```
|
|
16
23
|
*
|
|
17
24
|
* @internal
|
|
18
25
|
*/
|
|
19
|
-
export declare function _discoverRoutes(projectRoot: string): Record<string,
|
|
20
|
-
moduleId: string;
|
|
21
|
-
}> | null;
|
|
26
|
+
export declare function _discoverRoutes(projectRoot: string): Record<string, DiscoveredRoute> | null;
|
|
22
27
|
/**
|
|
23
28
|
* Convert a file path (relative to routes/) into a URL pattern.
|
|
24
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/compiler/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/compiler/discover.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAkBxC;AA8GD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAetD"}
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
// product.[id].tsx → /product/:id
|
|
8
8
|
// blog/index.tsx → /blog
|
|
9
9
|
// blog/[slug].tsx → /blog/:slug
|
|
10
|
-
//
|
|
10
|
+
// layout.tsx → wraps sibling routes (not a route)
|
|
11
11
|
//
|
|
12
12
|
// This module is pure — no side effects, deterministic output.
|
|
13
13
|
// ─────────────────────────────────────────────────────────────────
|
|
14
|
-
import { readdirSync, statSync } from 'node:fs';
|
|
15
|
-
import { join, relative, extname } from 'node:path';
|
|
14
|
+
import { readdirSync, statSync, existsSync } from 'node:fs';
|
|
15
|
+
import { join, relative, extname, dirname } from 'node:path';
|
|
16
16
|
/**
|
|
17
17
|
* Route extensions we recognize as valid route modules.
|
|
18
18
|
* @internal
|
|
@@ -23,20 +23,24 @@ const ROUTE_EXTENSIONS = new Set(['.tsx', '.ts', '.jsx', '.js']);
|
|
|
23
23
|
* @internal
|
|
24
24
|
*/
|
|
25
25
|
const IGNORED = new Set(['__tests__', '__test__', '_', '.']);
|
|
26
|
+
/**
|
|
27
|
+
* Basename (without extension) that signals a layout wrapper.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
const LAYOUT_BASENAME = 'layout';
|
|
26
31
|
/**
|
|
27
32
|
* Recursively discover routes from the `app/routes/` directory.
|
|
28
33
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
34
|
+
* Detects `layout.tsx` files and builds a layout chain for each route.
|
|
35
|
+
* Layout chains are ordered root → leaf (outermost first).
|
|
31
36
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
37
|
+
* @param projectRoot - Absolute path to the project root (Vite's `config.root`).
|
|
38
|
+
* @returns A route map with layout chains, or `null` if `app/routes/` doesn't exist.
|
|
34
39
|
*
|
|
35
40
|
* @example
|
|
36
41
|
* ```ts
|
|
37
42
|
* const routes = _discoverRoutes('/Users/me/my-app');
|
|
38
|
-
* // → { '/': { moduleId: './app/routes/home.tsx' }
|
|
39
|
-
* // '/about': { moduleId: './app/routes/about.tsx' } }
|
|
43
|
+
* // → { '/': { moduleId: './app/routes/home.tsx', layouts: ['./app/routes/layout.tsx'] } }
|
|
40
44
|
* ```
|
|
41
45
|
*
|
|
42
46
|
* @internal
|
|
@@ -49,21 +53,22 @@ export function _discoverRoutes(projectRoot) {
|
|
|
49
53
|
return null;
|
|
50
54
|
}
|
|
51
55
|
catch {
|
|
52
|
-
// Directory doesn't exist — that's fine, routes may be manual
|
|
53
56
|
return null;
|
|
54
57
|
}
|
|
55
58
|
const routes = {};
|
|
56
59
|
_scanDir(routesDir, routesDir, routes);
|
|
60
|
+
// Now resolve layout chains for each route
|
|
61
|
+
_resolveLayouts(routesDir, routes);
|
|
57
62
|
return Object.keys(routes).length > 0 ? routes : null;
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Recursively scan a directory for route files.
|
|
66
|
+
* Layout files are skipped as routes — they're detected separately.
|
|
61
67
|
* @internal
|
|
62
68
|
*/
|
|
63
69
|
function _scanDir(dir, routesRoot, routes) {
|
|
64
70
|
const entries = readdirSync(dir, { withFileTypes: true });
|
|
65
71
|
for (const entry of entries) {
|
|
66
|
-
// Skip hidden files, test dirs, and underscore-prefixed (private) files
|
|
67
72
|
if (IGNORED.has(entry.name[0]))
|
|
68
73
|
continue;
|
|
69
74
|
if (entry.name.startsWith('__'))
|
|
@@ -76,6 +81,10 @@ function _scanDir(dir, routesRoot, routes) {
|
|
|
76
81
|
const ext = extname(entry.name);
|
|
77
82
|
if (!ROUTE_EXTENSIONS.has(ext))
|
|
78
83
|
continue;
|
|
84
|
+
// Skip layout files — they're not routes
|
|
85
|
+
const basename = entry.name.replace(/\.[jt]sx?$/, '');
|
|
86
|
+
if (basename === LAYOUT_BASENAME)
|
|
87
|
+
continue;
|
|
79
88
|
const relPath = relative(routesRoot, fullPath);
|
|
80
89
|
const urlPattern = _fileToPattern(relPath);
|
|
81
90
|
const moduleId = './' + join('app', 'routes', relPath).replace(/\\/g, '/');
|
|
@@ -83,6 +92,69 @@ function _scanDir(dir, routesRoot, routes) {
|
|
|
83
92
|
}
|
|
84
93
|
}
|
|
85
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Resolve layout chains for all discovered routes.
|
|
97
|
+
*
|
|
98
|
+
* For each route, walks from its directory up to routesRoot,
|
|
99
|
+
* collecting any `layout.tsx` files found. The result is ordered
|
|
100
|
+
* root → leaf (outermost layout first).
|
|
101
|
+
*
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
function _resolveLayouts(routesRoot, routes) {
|
|
105
|
+
for (const [, entry] of Object.entries(routes)) {
|
|
106
|
+
// Resolve moduleId to absolute path to find its directory
|
|
107
|
+
// moduleId is like './app/routes/blog/[slug].tsx'
|
|
108
|
+
// We need the directory relative to routesRoot
|
|
109
|
+
const moduleRelative = entry.moduleId.replace(/^\.\/app\/routes\//, '');
|
|
110
|
+
const moduleDir = dirname(moduleRelative);
|
|
111
|
+
const absModuleDir = moduleDir === '.'
|
|
112
|
+
? routesRoot
|
|
113
|
+
: join(routesRoot, moduleDir);
|
|
114
|
+
const layouts = _collectLayouts(routesRoot, absModuleDir);
|
|
115
|
+
if (layouts.length > 0) {
|
|
116
|
+
entry.layouts = layouts;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Collect layout files from a directory up to routesRoot.
|
|
122
|
+
* Returns moduleIds ordered root → leaf.
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
function _collectLayouts(routesRoot, dir) {
|
|
126
|
+
const layouts = [];
|
|
127
|
+
let current = dir;
|
|
128
|
+
for (;;) {
|
|
129
|
+
// Check for layout file in this directory
|
|
130
|
+
const layoutFile = _findLayoutFile(current);
|
|
131
|
+
if (layoutFile) {
|
|
132
|
+
const relPath = relative(join(routesRoot, '..', '..'), layoutFile);
|
|
133
|
+
layouts.unshift('./' + relPath.replace(/\\/g, '/'));
|
|
134
|
+
}
|
|
135
|
+
// Stop at routesRoot
|
|
136
|
+
if (current === routesRoot)
|
|
137
|
+
break;
|
|
138
|
+
// Move up one directory
|
|
139
|
+
const parent = dirname(current);
|
|
140
|
+
if (parent === current)
|
|
141
|
+
break; // filesystem root
|
|
142
|
+
current = parent;
|
|
143
|
+
}
|
|
144
|
+
return layouts;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Find a layout file in a directory (checks all valid extensions).
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
function _findLayoutFile(dir) {
|
|
151
|
+
for (const ext of ROUTE_EXTENSIONS) {
|
|
152
|
+
const candidate = join(dir, `layout${ext}`);
|
|
153
|
+
if (existsSync(candidate))
|
|
154
|
+
return candidate;
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
86
158
|
/**
|
|
87
159
|
* Convert a file path (relative to routes/) into a URL pattern.
|
|
88
160
|
*
|
|
@@ -99,19 +171,13 @@ function _scanDir(dir, routesRoot, routes) {
|
|
|
99
171
|
* @internal
|
|
100
172
|
*/
|
|
101
173
|
export function _fileToPattern(relPath) {
|
|
102
|
-
// Remove extension
|
|
103
174
|
let route = relPath.replace(/\.[jt]sx?$/, '');
|
|
104
|
-
// Normalize path separators
|
|
105
175
|
route = route.replace(/\\/g, '/');
|
|
106
|
-
// Convert bracket params: [id] → :id, product.[id] → product/:id
|
|
107
176
|
route = route.replace(/\[([^\]]+)\]/g, ':$1');
|
|
108
|
-
// The dot before a bracket param becomes a slash: product.:id → product/:id
|
|
109
177
|
route = route.replace(/\.:/g, '/:');
|
|
110
|
-
// Handle index/home as directory root
|
|
111
178
|
if (route === 'index' || route === 'home') {
|
|
112
179
|
return '/';
|
|
113
180
|
}
|
|
114
|
-
// Handle nested index files: blog/index → /blog
|
|
115
181
|
if (route.endsWith('/index') || route.endsWith('/home')) {
|
|
116
182
|
route = route.replace(/\/(index|home)$/, '');
|
|
117
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/compiler/discover.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2CAA2C;AAC3C,EAAE;AACF,yEAAyE;AACzE,kCAAkC;AAClC,uCAAuC;AACvC,6CAA6C;AAC7C,sCAAsC;AACtC,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/compiler/discover.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2CAA2C;AAC3C,EAAE;AACF,yEAAyE;AACzE,kCAAkC;AAClC,uCAAuC;AACvC,6CAA6C;AAC7C,sCAAsC;AACtC,4CAA4C;AAC5C,mEAAmE;AACnE,EAAE;AACF,+DAA+D;AAC/D,oEAAoE;AAEpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAW7D;;;GAGG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB;IAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAoC,EAAE,CAAC;IAEnD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CACf,GAAW,EACX,UAAkB,EAClB,MAAuC;IAEvC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;YAAE,SAAS;QAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEzC,yCAAyC;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,eAAe;gBAAE,SAAS;YAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE3E,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,UAAkB,EAClB,MAAuC;IAEvC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,0DAA0D;QAC1D,kDAAkD;QAClD,+CAA+C;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,KAAK,GAAG;YACpC,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,UAAkB,EAAE,GAAW;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,GAAG,CAAC;IAElB,SAAS,CAAC;QACR,0CAA0C;QAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,KAAK,UAAU;YAAE,MAAM;QAElC,wBAAwB;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,kBAAkB;QACjD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC9C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,GAAG,GAAG,KAAK,CAAC;AACrB,CAAC"}
|
package/dist/compiler/types.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export interface JuicePluginOptions {
|
|
|
31
31
|
* Route map: URL patterns → server component modules.
|
|
32
32
|
*
|
|
33
33
|
* @remarks
|
|
34
|
-
*
|
|
35
|
-
*
|
|
34
|
+
* Routes are auto-discovered from `app/routes/` by default.
|
|
35
|
+
* Explicit routes override auto-discovery entirely.
|
|
36
36
|
*
|
|
37
37
|
* @example
|
|
38
38
|
* ```ts
|
|
@@ -47,6 +47,7 @@ export interface JuicePluginOptions {
|
|
|
47
47
|
readonly routes?: Readonly<Record<string, {
|
|
48
48
|
moduleId: string;
|
|
49
49
|
exportName?: string;
|
|
50
|
+
layouts?: string[];
|
|
50
51
|
}>>;
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
@@ -144,6 +145,10 @@ export interface ManifestRouteEntry {
|
|
|
144
145
|
* @default 'default'
|
|
145
146
|
*/
|
|
146
147
|
readonly exportName?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Layout module IDs to wrap this route, ordered root → leaf.
|
|
150
|
+
*/
|
|
151
|
+
readonly layouts?: readonly string[];
|
|
147
152
|
}
|
|
148
153
|
/**
|
|
149
154
|
* The complete Flight manifest schema emitted as `flight-manifest.json`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compiler/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compiler/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/runtime/render.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AA2BpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,GAAG,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnJ,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/runtime/render.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AA2BpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,GAAG,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnJ,OAAO,CAAC,QAAQ,CAAC,CAmJnB"}
|
package/dist/runtime/render.js
CHANGED
|
@@ -73,7 +73,23 @@ export async function _renderPipeline(req, match, manifest, options) {
|
|
|
73
73
|
const url = new URL(req.url);
|
|
74
74
|
const searchParams = Object.fromEntries(url.searchParams.entries());
|
|
75
75
|
// ── 3. Create the React element ──────────────────────────────
|
|
76
|
-
|
|
76
|
+
let element = createElement(Component, { params, searchParams });
|
|
77
|
+
// ── 3b. Wrap in layout chain (root → leaf) ───────────────────
|
|
78
|
+
if (entry.layouts && entry.layouts.length > 0) {
|
|
79
|
+
// Layouts are ordered root → leaf. We wrap innermost-first,
|
|
80
|
+
// so iterate in reverse: leaf wraps page, then parent wraps that, etc.
|
|
81
|
+
for (let i = entry.layouts.length - 1; i >= 0; i--) {
|
|
82
|
+
let layoutPath = _resolveModulePath(entry.layouts[i], options.root);
|
|
83
|
+
if (options.isDev) {
|
|
84
|
+
layoutPath = _bustModuleCache(layoutPath);
|
|
85
|
+
}
|
|
86
|
+
const layoutMod = await import(layoutPath);
|
|
87
|
+
const Layout = layoutMod.default;
|
|
88
|
+
if (typeof Layout === 'function') {
|
|
89
|
+
element = createElement(Layout, { request: req }, element);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
77
93
|
// ── 4. Stream with AbortController ───────────────────────────
|
|
78
94
|
const abortController = new AbortController();
|
|
79
95
|
// Track thrown Response objects from React's onError callback.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/runtime/render.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6DAA6D;AAC7D,+DAA+D;AAC/D,uEAAuE;AAEvE,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEhG;;;;;;GAMG;AACH,SAAS,mBAAmB,CAC1B,QAAwB,EACxB,cAAsB,GAAG;IAEzB,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,wDAAwD;YACxD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAY,EACZ,KAAkB,EAClB,QAAwB,EACxB,OAAoJ;IAEpJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEhC,gEAAgE;IAChE,IAAI,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,QAAQ,EACd,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG;YACpC,CAAC,OAAO,CAAC,IAAI;gBACX,CAAC,CAAC,kBAAkB,UAAU,gBAAgB,OAAO,CAAC,IAAI,IAAI;gBAC9D,CAAC,CAAC,wEAAwE,CAAC,EAC/E,KAAK,CACN,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACjD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAElC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,CAAC,QAAQ,oBAAoB;YACjE,yBAAyB,UAAU,KAAK;YACxC,8DAA8D;YAC9D,2EAA2E,CAC9E,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpE,gEAAgE;IAChE,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/runtime/render.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -9,6 +9,11 @@ export interface RouteEntry {
|
|
|
9
9
|
* @default 'default'
|
|
10
10
|
*/
|
|
11
11
|
readonly exportName?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Layout module IDs to wrap this route, ordered root → leaf.
|
|
14
|
+
* Each layout receives `{ children, request }` props.
|
|
15
|
+
*/
|
|
16
|
+
readonly layouts?: readonly string[];
|
|
12
17
|
}
|
|
13
18
|
/**
|
|
14
19
|
* Resolution info for a client component chunk, used by React Flight
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAElE,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAElE;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;QAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,gEAAgE;QAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,sDAAsD;QACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,GAAG,EAAE,OAAO,KACT,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErE;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CACjB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,OAAO,KACT,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAID;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD"}
|