@reckona/mreact-router 0.0.99 → 0.0.101
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/build.d.ts.map +1 -1
- package/dist/build.js +170 -50
- package/dist/build.js.map +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +45 -2
- package/dist/vite.js.map +1 -1
- package/package.json +11 -11
- package/src/build.ts +240 -53
- package/src/vite.ts +65 -2
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/build.js
CHANGED
|
@@ -1577,9 +1577,25 @@ async function writeCloudflareRouteModules(options) {
|
|
|
1577
1577
|
root: options.projectRoot,
|
|
1578
1578
|
vitePlugins: options.vitePlugins,
|
|
1579
1579
|
});
|
|
1580
|
+
const directComponentRoutes = await collectCloudflareDirectComponentRoutes({
|
|
1581
|
+
requiredRoutes,
|
|
1582
|
+
routesDir: options.routesDir,
|
|
1583
|
+
serverModules: options.serverModules,
|
|
1584
|
+
sourceAnalysis: options.sourceAnalysis,
|
|
1585
|
+
});
|
|
1586
|
+
const directComponentRouteIds = new Set(directComponentRoutes.map((route) => route.routeId));
|
|
1587
|
+
const directComponentModules = await buildCloudflareServerComponentModuleBatch({
|
|
1588
|
+
cacheDir: options.cacheDir,
|
|
1589
|
+
projectRoot: options.projectRoot,
|
|
1590
|
+
routes: directComponentRoutes,
|
|
1591
|
+
serverModules: options.serverModules,
|
|
1592
|
+
sourceAnalysis: options.sourceAnalysis,
|
|
1593
|
+
vitePlugins: options.vitePlugins,
|
|
1594
|
+
});
|
|
1580
1595
|
await Promise.all([
|
|
1581
1596
|
writeCloudflareBatchedRouteModuleChunks(options.cloudflareDir, serverRouteModules),
|
|
1582
1597
|
writeCloudflareBatchedRouteModuleChunks(options.cloudflareDir, loaderRouteModules),
|
|
1598
|
+
writeCloudflareBatchedRouteModuleChunks(options.cloudflareDir, directComponentModules),
|
|
1583
1599
|
]);
|
|
1584
1600
|
const registryEntries = await mapWithBuildConcurrency(requiredRoutes, async ({ route, routeFile, routeId }) => {
|
|
1585
1601
|
const routeModuleFile = `routes/${routeId}.mjs`;
|
|
@@ -1610,27 +1626,34 @@ async function writeCloudflareRouteModules(options) {
|
|
|
1610
1626
|
? "stream"
|
|
1611
1627
|
: "string";
|
|
1612
1628
|
try {
|
|
1613
|
-
const
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1629
|
+
const batchedComponent = directComponentRouteIds.has(routeId) ? directComponentModules.entries.get(routeId) : undefined;
|
|
1630
|
+
let componentFile = batchedComponent?.fileName;
|
|
1631
|
+
if (batchedComponent === undefined) {
|
|
1632
|
+
const componentOutput = serverOutput === "stream"
|
|
1633
|
+
? await buildCloudflareStreamRouteComponentModule({
|
|
1634
|
+
cacheDir: options.cacheDir,
|
|
1635
|
+
filename: route.file,
|
|
1636
|
+
projectRoot: options.projectRoot,
|
|
1637
|
+
routesDir: options.routesDir,
|
|
1638
|
+
serverModules: options.serverModules,
|
|
1639
|
+
sourceAnalysis: options.sourceAnalysis,
|
|
1640
|
+
vitePlugins: options.vitePlugins,
|
|
1641
|
+
})
|
|
1642
|
+
: await buildCloudflareStringRouteComponentModule({
|
|
1643
|
+
cacheDir: options.cacheDir,
|
|
1644
|
+
filename: route.file,
|
|
1645
|
+
projectRoot: options.projectRoot,
|
|
1646
|
+
routesDir: options.routesDir,
|
|
1647
|
+
serverModules: options.serverModules,
|
|
1648
|
+
sourceAnalysis: options.sourceAnalysis,
|
|
1649
|
+
vitePlugins: options.vitePlugins,
|
|
1650
|
+
});
|
|
1651
|
+
componentFile = `routes/${routeId}.${hashText(componentOutput).slice(0, 8)}.component.mjs`;
|
|
1652
|
+
await writeFile(join(options.cloudflareDir, componentFile), componentOutput);
|
|
1653
|
+
}
|
|
1654
|
+
if (componentFile === undefined) {
|
|
1655
|
+
throw new Error("Missing bundled Cloudflare component module.");
|
|
1656
|
+
}
|
|
1634
1657
|
const componentImport = `./${componentFile.split("/").pop() ?? componentFile}`;
|
|
1635
1658
|
routeModuleExports = [
|
|
1636
1659
|
`export { default, App, slots } from ${JSON.stringify(componentImport)};`,
|
|
@@ -1666,6 +1689,94 @@ async function writeCloudflareRouteModules(options) {
|
|
|
1666
1689
|
await writeFile(join(options.cloudflareDir, "route-modules.mjs"), registrySource);
|
|
1667
1690
|
return { registryFile: "route-modules.mjs" };
|
|
1668
1691
|
}
|
|
1692
|
+
async function collectCloudflareDirectComponentRoutes(options) {
|
|
1693
|
+
const routes = await Promise.all(options.requiredRoutes.map(async ({ route, routeFile, routeId }) => {
|
|
1694
|
+
if (route.kind !== "page") {
|
|
1695
|
+
return undefined;
|
|
1696
|
+
}
|
|
1697
|
+
const serverOutput = options.serverModules[routeFile]?.analysis?.streamRoute === true ||
|
|
1698
|
+
options.sourceAnalysis.byRouteFile.get(routeFile)?.streamRoute === true
|
|
1699
|
+
? "stream"
|
|
1700
|
+
: "string";
|
|
1701
|
+
if (serverOutput !== "string") {
|
|
1702
|
+
return undefined;
|
|
1703
|
+
}
|
|
1704
|
+
const shellFiles = await cloudflareShellFilesForPage(options.routesDir, route.file);
|
|
1705
|
+
if (shellFiles.length > 0) {
|
|
1706
|
+
return undefined;
|
|
1707
|
+
}
|
|
1708
|
+
return {
|
|
1709
|
+
filename: route.file,
|
|
1710
|
+
routeId,
|
|
1711
|
+
};
|
|
1712
|
+
}));
|
|
1713
|
+
return routes.filter((route) => route !== undefined);
|
|
1714
|
+
}
|
|
1715
|
+
async function buildCloudflareServerComponentModuleBatch(options) {
|
|
1716
|
+
if (options.routes.length === 0) {
|
|
1717
|
+
return { chunks: [], entries: new Map() };
|
|
1718
|
+
}
|
|
1719
|
+
const virtualModules = new Map();
|
|
1720
|
+
const bundleEntries = await Promise.all(options.routes.map(async (route) => {
|
|
1721
|
+
const metadataModule = await buildCloudflareRouteMetadataExportModule({
|
|
1722
|
+
cacheDir: options.cacheDir,
|
|
1723
|
+
filename: route.filename,
|
|
1724
|
+
hasMetadata: buildSourceAnalysisForFile(options.sourceAnalysis, options.projectRoot, route.filename)?.hasMetadata,
|
|
1725
|
+
root: options.projectRoot,
|
|
1726
|
+
vitePlugins: options.vitePlugins,
|
|
1727
|
+
});
|
|
1728
|
+
const metadataId = `mreact:metadata:${route.routeId}`;
|
|
1729
|
+
if (metadataModule !== undefined) {
|
|
1730
|
+
virtualModules.set(metadataId, {
|
|
1731
|
+
contents: metadataModule,
|
|
1732
|
+
resolveDir: dirname(route.filename),
|
|
1733
|
+
});
|
|
1734
|
+
}
|
|
1735
|
+
return {
|
|
1736
|
+
code: cloudflareServerComponentModuleEntry(route.filename, metadataModule === undefined ? undefined : metadataId),
|
|
1737
|
+
filename: `${route.filename}.mreact-cloudflare-component.js`,
|
|
1738
|
+
name: `${route.routeId}.component`,
|
|
1739
|
+
routeId: route.routeId,
|
|
1740
|
+
};
|
|
1741
|
+
}));
|
|
1742
|
+
const output = await bundleRouterModules({
|
|
1743
|
+
cacheDir: options.cacheDir,
|
|
1744
|
+
chunkFileNames: "routes/chunks/[name].[hash].mjs",
|
|
1745
|
+
entries: bundleEntries,
|
|
1746
|
+
entryFileNames: "routes/[name].[hash].mjs",
|
|
1747
|
+
minify: true,
|
|
1748
|
+
platform: "node",
|
|
1749
|
+
plugins: [
|
|
1750
|
+
cloudflareVirtualModulesPlugin(virtualModules),
|
|
1751
|
+
cloudflareServerSourceTransformPlugin({
|
|
1752
|
+
projectRoot: options.projectRoot,
|
|
1753
|
+
serverOutput: "string",
|
|
1754
|
+
serverModules: options.serverModules,
|
|
1755
|
+
vitePlugins: options.vitePlugins,
|
|
1756
|
+
}),
|
|
1757
|
+
cloudflareWorkspaceRuntimePlugin(),
|
|
1758
|
+
],
|
|
1759
|
+
root: options.projectRoot,
|
|
1760
|
+
target: "es2022",
|
|
1761
|
+
vitePlugins: options.vitePlugins,
|
|
1762
|
+
});
|
|
1763
|
+
const entriesByName = new Map(bundleEntries.map((entry) => [entry.name, entry]));
|
|
1764
|
+
const entries = new Map();
|
|
1765
|
+
for (const chunk of output.chunks) {
|
|
1766
|
+
if (!chunk.isEntry) {
|
|
1767
|
+
continue;
|
|
1768
|
+
}
|
|
1769
|
+
const entry = entriesByName.get(chunk.name);
|
|
1770
|
+
if (entry === undefined) {
|
|
1771
|
+
continue;
|
|
1772
|
+
}
|
|
1773
|
+
entries.set(entry.routeId, {
|
|
1774
|
+
code: chunk.code,
|
|
1775
|
+
fileName: chunk.fileName,
|
|
1776
|
+
});
|
|
1777
|
+
}
|
|
1778
|
+
return { chunks: output.chunks, entries };
|
|
1779
|
+
}
|
|
1669
1780
|
async function buildCloudflareServerComponentModule(options) {
|
|
1670
1781
|
const metadataModule = await buildCloudflareRouteMetadataExportModule({
|
|
1671
1782
|
cacheDir: options.cacheDir,
|
|
@@ -1674,15 +1785,7 @@ async function buildCloudflareServerComponentModule(options) {
|
|
|
1674
1785
|
root: options.projectRoot,
|
|
1675
1786
|
vitePlugins: options.vitePlugins,
|
|
1676
1787
|
});
|
|
1677
|
-
const entry =
|
|
1678
|
-
${metadataModule === undefined ? "const metadataModule = {};" : 'import * as metadataModule from "mreact:metadata";'}
|
|
1679
|
-
|
|
1680
|
-
const component = routeModule.default ?? routeModule.App ?? Object.values(routeModule).find((value) => typeof value === "function");
|
|
1681
|
-
export const App = component;
|
|
1682
|
-
export default component;
|
|
1683
|
-
export const generateMetadata = metadataModule.generateMetadata;
|
|
1684
|
-
export const metadata = metadataModule.metadata;
|
|
1685
|
-
export const slots = routeModule.slots;`;
|
|
1788
|
+
const entry = cloudflareServerComponentModuleEntry(options.filename, metadataModule === undefined ? undefined : "mreact:metadata");
|
|
1686
1789
|
return bundleCloudflareVirtualModule({
|
|
1687
1790
|
entry,
|
|
1688
1791
|
filename: `${options.filename}.mreact-cloudflare-component.js`,
|
|
@@ -1704,6 +1807,17 @@ export const slots = routeModule.slots;`;
|
|
|
1704
1807
|
vitePlugins: options.vitePlugins,
|
|
1705
1808
|
});
|
|
1706
1809
|
}
|
|
1810
|
+
function cloudflareServerComponentModuleEntry(filename, metadataModuleId) {
|
|
1811
|
+
return `import * as routeModule from ${JSON.stringify(filename)};
|
|
1812
|
+
${metadataModuleId === undefined ? "const metadataModule = {};" : `import * as metadataModule from ${JSON.stringify(metadataModuleId)};`}
|
|
1813
|
+
|
|
1814
|
+
const component = routeModule.default ?? routeModule.App ?? Object.values(routeModule).find((value) => typeof value === "function");
|
|
1815
|
+
export const App = component;
|
|
1816
|
+
export default component;
|
|
1817
|
+
export const generateMetadata = metadataModule.generateMetadata;
|
|
1818
|
+
export const metadata = metadataModule.metadata;
|
|
1819
|
+
export const slots = routeModule.slots;`;
|
|
1820
|
+
}
|
|
1707
1821
|
async function buildCloudflareStringRouteComponentModule(options) {
|
|
1708
1822
|
const shellFiles = await cloudflareShellFilesForPage(options.routesDir, options.filename);
|
|
1709
1823
|
if (shellFiles.length === 0) {
|
|
@@ -2319,26 +2433,10 @@ async function bundleCloudflareVirtualModule(options) {
|
|
|
2319
2433
|
entry: options.entry,
|
|
2320
2434
|
filename: options.filename,
|
|
2321
2435
|
plugins: [
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
namespace: "mreact-cloudflare-virtual",
|
|
2327
|
-
path: args.path,
|
|
2328
|
-
}));
|
|
2329
|
-
buildApi.onLoad({ filter: /.*/, namespace: "mreact-cloudflare-virtual" }, (args) => {
|
|
2330
|
-
const contents = options.modules.get(args.path);
|
|
2331
|
-
if (contents === undefined) {
|
|
2332
|
-
throw new Error(`Missing virtual Cloudflare module ${args.path}.`);
|
|
2333
|
-
}
|
|
2334
|
-
return {
|
|
2335
|
-
contents,
|
|
2336
|
-
loader: "js",
|
|
2337
|
-
resolveDir: options.resolveDir,
|
|
2338
|
-
};
|
|
2339
|
-
});
|
|
2340
|
-
},
|
|
2341
|
-
},
|
|
2436
|
+
cloudflareVirtualModulesPlugin(new Map(Array.from(options.modules, ([id, contents]) => [
|
|
2437
|
+
id,
|
|
2438
|
+
{ contents, resolveDir: options.resolveDir },
|
|
2439
|
+
]))),
|
|
2342
2440
|
...options.plugins,
|
|
2343
2441
|
],
|
|
2344
2442
|
resolveDir: options.resolveDir,
|
|
@@ -2346,6 +2444,28 @@ async function bundleCloudflareVirtualModule(options) {
|
|
|
2346
2444
|
vitePlugins: options.vitePlugins,
|
|
2347
2445
|
});
|
|
2348
2446
|
}
|
|
2447
|
+
function cloudflareVirtualModulesPlugin(modules) {
|
|
2448
|
+
return {
|
|
2449
|
+
name: "mreact-cloudflare-virtual-modules",
|
|
2450
|
+
setup(buildApi) {
|
|
2451
|
+
buildApi.onResolve({ filter: /^mreact:/ }, (args) => ({
|
|
2452
|
+
namespace: "mreact-cloudflare-virtual",
|
|
2453
|
+
path: args.path,
|
|
2454
|
+
}));
|
|
2455
|
+
buildApi.onLoad({ filter: /.*/, namespace: "mreact-cloudflare-virtual" }, (args) => {
|
|
2456
|
+
const module = modules.get(args.path);
|
|
2457
|
+
if (module === undefined) {
|
|
2458
|
+
throw new Error(`Missing virtual Cloudflare module ${args.path}.`);
|
|
2459
|
+
}
|
|
2460
|
+
return {
|
|
2461
|
+
contents: module.contents,
|
|
2462
|
+
loader: "js",
|
|
2463
|
+
resolveDir: module.resolveDir,
|
|
2464
|
+
};
|
|
2465
|
+
});
|
|
2466
|
+
},
|
|
2467
|
+
};
|
|
2468
|
+
}
|
|
2349
2469
|
async function cloudflareShellFilesForPage(routesDir, pageFile) {
|
|
2350
2470
|
const shells = await existingRouteShellCandidates(routesDir, pageFile, async (file) => {
|
|
2351
2471
|
try {
|