@react-router/dev 7.13.0-pre.0 → 7.13.1-pre.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 +13 -4
- package/dist/cli/index.js +68 -56
- package/dist/config.d.ts +4 -0
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.js +2 -1
- package/dist/vite.js +760 -216
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
-
## 7.13.
|
|
3
|
+
## 7.13.1-pre.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies:
|
|
8
|
+
- `react-router@7.13.1-pre.0`
|
|
9
|
+
- `@react-router/node@7.13.1-pre.0`
|
|
10
|
+
- `@react-router/serve@7.13.1-pre.0`
|
|
11
|
+
|
|
12
|
+
## 7.13.0
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
6
15
|
|
|
7
16
|
- Bump @remix-run/node-fetch-server dep ([#14704](https://github.com/remix-run/react-router/pull/14704))
|
|
8
17
|
- Updated dependencies:
|
|
9
|
-
- `react-router@7.13.0
|
|
10
|
-
- `@react-router/node@7.13.0
|
|
11
|
-
- `@react-router/serve@7.13.0
|
|
18
|
+
- `react-router@7.13.0`
|
|
19
|
+
- `@react-router/node@7.13.0`
|
|
20
|
+
- `@react-router/serve@7.13.0`
|
|
12
21
|
|
|
13
22
|
## 7.12.0
|
|
14
23
|
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @react-router/dev v7.13.
|
|
3
|
+
* @react-router/dev v7.13.1-pre.0
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -217,7 +217,7 @@ function validateRouteConfig({
|
|
|
217
217
|
`Route config in "${routeConfigFile}" is invalid.`,
|
|
218
218
|
root ? `${root}` : [],
|
|
219
219
|
nested ? Object.entries(nested).map(
|
|
220
|
-
([
|
|
220
|
+
([path10, message]) => `Path: routes.${path10}
|
|
221
221
|
${message}`
|
|
222
222
|
) : []
|
|
223
223
|
].flat().join("\n\n")
|
|
@@ -376,7 +376,7 @@ async function resolveConfig({
|
|
|
376
376
|
basename: basename3,
|
|
377
377
|
buildDirectory: userBuildDirectory,
|
|
378
378
|
buildEnd,
|
|
379
|
-
prerender,
|
|
379
|
+
prerender: prerender2,
|
|
380
380
|
routeDiscovery: userRouteDiscovery,
|
|
381
381
|
serverBuildFile,
|
|
382
382
|
serverBundles,
|
|
@@ -390,15 +390,15 @@ async function resolveConfig({
|
|
|
390
390
|
if (!ssr && serverBundles) {
|
|
391
391
|
serverBundles = void 0;
|
|
392
392
|
}
|
|
393
|
-
if (
|
|
393
|
+
if (prerender2) {
|
|
394
394
|
let isValidPrerenderPathsConfig = (p) => typeof p === "boolean" || typeof p === "function" || Array.isArray(p);
|
|
395
|
-
let isValidPrerenderConfig = isValidPrerenderPathsConfig(
|
|
395
|
+
let isValidPrerenderConfig = isValidPrerenderPathsConfig(prerender2) || typeof prerender2 === "object" && "paths" in prerender2 && isValidPrerenderPathsConfig(prerender2.paths);
|
|
396
396
|
if (!isValidPrerenderConfig) {
|
|
397
397
|
return err(
|
|
398
398
|
"The `prerender`/`prerender.paths` config must be a boolean, an array of string paths, or a function returning a boolean or array of string paths."
|
|
399
399
|
);
|
|
400
400
|
}
|
|
401
|
-
let isValidConcurrencyConfig = typeof
|
|
401
|
+
let isValidConcurrencyConfig = typeof prerender2 != "object" || !("unstable_concurrency" in prerender2) || typeof prerender2.unstable_concurrency === "number" && Number.isInteger(prerender2.unstable_concurrency) && prerender2.unstable_concurrency > 0;
|
|
402
402
|
if (!isValidConcurrencyConfig) {
|
|
403
403
|
return err(
|
|
404
404
|
"The `prerender.unstable_concurrency` config must be a positive integer if specified."
|
|
@@ -507,6 +507,7 @@ async function resolveConfig({
|
|
|
507
507
|
unstable_optimizeDeps: userAndPresetConfigs.future?.unstable_optimizeDeps ?? false,
|
|
508
508
|
unstable_subResourceIntegrity: userAndPresetConfigs.future?.unstable_subResourceIntegrity ?? false,
|
|
509
509
|
unstable_trailingSlashAwareDataRequests: userAndPresetConfigs.future?.unstable_trailingSlashAwareDataRequests ?? false,
|
|
510
|
+
unstable_previewServerPrerendering: userAndPresetConfigs.future?.unstable_previewServerPrerendering ?? false,
|
|
510
511
|
v8_middleware: userAndPresetConfigs.future?.v8_middleware ?? false,
|
|
511
512
|
v8_splitRouteModules: userAndPresetConfigs.future?.v8_splitRouteModules ?? false,
|
|
512
513
|
v8_viteEnvironmentApi: userAndPresetConfigs.future?.v8_viteEnvironmentApi ?? false
|
|
@@ -518,7 +519,7 @@ async function resolveConfig({
|
|
|
518
519
|
buildDirectory,
|
|
519
520
|
buildEnd,
|
|
520
521
|
future,
|
|
521
|
-
prerender,
|
|
522
|
+
prerender: prerender2,
|
|
522
523
|
routes: routes2,
|
|
523
524
|
routeDiscovery,
|
|
524
525
|
serverBuildFile,
|
|
@@ -585,11 +586,11 @@ async function createConfigLoader({
|
|
|
585
586
|
if (!fsWatcher) {
|
|
586
587
|
fsWatcher = import_chokidar.default.watch([root, appDirectory], {
|
|
587
588
|
ignoreInitial: true,
|
|
588
|
-
ignored: (
|
|
589
|
-
let dirname5 = import_pathe3.default.dirname(
|
|
589
|
+
ignored: (path10) => {
|
|
590
|
+
let dirname5 = import_pathe3.default.dirname(path10);
|
|
590
591
|
return !dirname5.startsWith(appDirectory) && // Ensure we're only watching files outside of the app directory
|
|
591
592
|
// that are at the root level, not nested in subdirectories
|
|
592
|
-
|
|
593
|
+
path10 !== root && // Watch the root directory itself
|
|
593
594
|
dirname5 !== root;
|
|
594
595
|
}
|
|
595
596
|
});
|
|
@@ -914,7 +915,7 @@ function fullpath(lineage2) {
|
|
|
914
915
|
if (lineage2.length === 1 && route?.id === "root") return "/";
|
|
915
916
|
const isLayout = route && route.index !== true && route.path === void 0;
|
|
916
917
|
if (isLayout) return void 0;
|
|
917
|
-
return "/" + lineage2.map((route2) => route2.path?.replace(/^\//, "")?.replace(/\/$/, "")).filter((
|
|
918
|
+
return "/" + lineage2.map((route2) => route2.path?.replace(/^\//, "")?.replace(/\/$/, "")).filter((path10) => path10 !== void 0 && path10 !== "").join("/");
|
|
918
919
|
}
|
|
919
920
|
var init_route = __esm({
|
|
920
921
|
"typegen/route.ts"() {
|
|
@@ -1098,8 +1099,8 @@ function routeModulesType(ctx) {
|
|
|
1098
1099
|
);
|
|
1099
1100
|
}
|
|
1100
1101
|
function isInAppDirectory(ctx, routeFile) {
|
|
1101
|
-
const
|
|
1102
|
-
return
|
|
1102
|
+
const path10 = Path3.resolve(ctx.config.appDirectory, routeFile);
|
|
1103
|
+
return path10.startsWith(ctx.config.appDirectory);
|
|
1103
1104
|
}
|
|
1104
1105
|
function getRouteAnnotations({
|
|
1105
1106
|
ctx,
|
|
@@ -1211,21 +1212,21 @@ function getRouteAnnotations({
|
|
|
1211
1212
|
return { filename: filename2, content };
|
|
1212
1213
|
}
|
|
1213
1214
|
function relativeImportSource(from, to) {
|
|
1214
|
-
let
|
|
1215
|
-
let extension = Path3.extname(
|
|
1216
|
-
|
|
1217
|
-
if (!
|
|
1215
|
+
let path10 = Path3.relative(Path3.dirname(from), to);
|
|
1216
|
+
let extension = Path3.extname(path10);
|
|
1217
|
+
path10 = Path3.join(Path3.dirname(path10), Pathe.filename(path10));
|
|
1218
|
+
if (!path10.startsWith("../")) path10 = "./" + path10;
|
|
1218
1219
|
if (!extension || /\.(js|ts)x?$/.test(extension)) {
|
|
1219
1220
|
extension = ".js";
|
|
1220
1221
|
}
|
|
1221
|
-
return
|
|
1222
|
+
return path10 + extension;
|
|
1222
1223
|
}
|
|
1223
1224
|
function rootDirsPath(ctx, typesPath) {
|
|
1224
1225
|
const rel = Path3.relative(typesDirectory(ctx), typesPath);
|
|
1225
1226
|
return Path3.join(ctx.rootDirectory, rel);
|
|
1226
1227
|
}
|
|
1227
|
-
function paramsType(
|
|
1228
|
-
const params = parse2(
|
|
1228
|
+
function paramsType(path10) {
|
|
1229
|
+
const params = parse2(path10);
|
|
1229
1230
|
return t2.tsTypeLiteral(
|
|
1230
1231
|
Object.entries(params).map(([param, isRequired]) => {
|
|
1231
1232
|
const property = t2.tsPropertySignature(
|
|
@@ -1555,6 +1556,16 @@ var init_warn_on_client_source_maps = __esm({
|
|
|
1555
1556
|
}
|
|
1556
1557
|
});
|
|
1557
1558
|
|
|
1559
|
+
// vite/plugins/prerender.ts
|
|
1560
|
+
var import_promises2, import_node_path2;
|
|
1561
|
+
var init_prerender = __esm({
|
|
1562
|
+
"vite/plugins/prerender.ts"() {
|
|
1563
|
+
"use strict";
|
|
1564
|
+
import_promises2 = require("fs/promises");
|
|
1565
|
+
import_node_path2 = __toESM(require("path"));
|
|
1566
|
+
}
|
|
1567
|
+
});
|
|
1568
|
+
|
|
1558
1569
|
// vite/plugin.ts
|
|
1559
1570
|
async function resolveViteConfig({
|
|
1560
1571
|
configFile,
|
|
@@ -1597,11 +1608,11 @@ function getServerBundleIds(ctx) {
|
|
|
1597
1608
|
async function cleanBuildDirectory(viteConfig, ctx) {
|
|
1598
1609
|
let buildDirectory = ctx.reactRouterConfig.buildDirectory;
|
|
1599
1610
|
let isWithinRoot = () => {
|
|
1600
|
-
let relativePath =
|
|
1601
|
-
return !relativePath.startsWith("..") && !
|
|
1611
|
+
let relativePath = path8.relative(ctx.rootDirectory, buildDirectory);
|
|
1612
|
+
return !relativePath.startsWith("..") && !path8.isAbsolute(relativePath);
|
|
1602
1613
|
};
|
|
1603
1614
|
if (viteConfig.build.emptyOutDir ?? isWithinRoot()) {
|
|
1604
|
-
await (0,
|
|
1615
|
+
await (0, import_promises3.rm)(buildDirectory, { force: true, recursive: true });
|
|
1605
1616
|
}
|
|
1606
1617
|
}
|
|
1607
1618
|
async function cleanViteManifests(environmentsOptions, ctx) {
|
|
@@ -1609,7 +1620,7 @@ async function cleanViteManifests(environmentsOptions, ctx) {
|
|
|
1609
1620
|
([environmentName, options]) => {
|
|
1610
1621
|
let outDir = options.build?.outDir;
|
|
1611
1622
|
invariant(outDir, `Expected build.outDir for ${environmentName}`);
|
|
1612
|
-
return
|
|
1623
|
+
return path8.join(outDir, ".vite/manifest.json");
|
|
1613
1624
|
}
|
|
1614
1625
|
);
|
|
1615
1626
|
await Promise.all(
|
|
@@ -1617,12 +1628,12 @@ async function cleanViteManifests(environmentsOptions, ctx) {
|
|
|
1617
1628
|
let manifestExists = (0, import_node_fs3.existsSync)(viteManifestPath);
|
|
1618
1629
|
if (!manifestExists) return;
|
|
1619
1630
|
if (!ctx.viteManifestEnabled) {
|
|
1620
|
-
await (0,
|
|
1631
|
+
await (0, import_promises3.rm)(viteManifestPath, { force: true, recursive: true });
|
|
1621
1632
|
}
|
|
1622
|
-
let viteDir =
|
|
1623
|
-
let viteDirFiles = await (0,
|
|
1633
|
+
let viteDir = path8.dirname(viteManifestPath);
|
|
1634
|
+
let viteDirFiles = await (0, import_promises3.readdir)(viteDir, { recursive: true });
|
|
1624
1635
|
if (viteDirFiles.length === 0) {
|
|
1625
|
-
await (0,
|
|
1636
|
+
await (0, import_promises3.rm)(viteDir, { force: true, recursive: true });
|
|
1626
1637
|
}
|
|
1627
1638
|
})
|
|
1628
1639
|
);
|
|
@@ -1636,10 +1647,10 @@ function mergeEnvironmentOptions(base, ...overrides) {
|
|
|
1636
1647
|
}
|
|
1637
1648
|
async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
|
|
1638
1649
|
let { serverBuildFile, serverModuleFormat } = ctx.reactRouterConfig;
|
|
1639
|
-
let packageRoot =
|
|
1650
|
+
let packageRoot = path8.dirname(
|
|
1640
1651
|
require.resolve("@react-router/dev/package.json")
|
|
1641
1652
|
);
|
|
1642
|
-
let { moduleSyncEnabled } = await import(`file:///${
|
|
1653
|
+
let { moduleSyncEnabled } = await import(`file:///${path8.join(packageRoot, "module-sync-enabled/index.mjs")}`);
|
|
1643
1654
|
let vite2 = getVite();
|
|
1644
1655
|
function getBaseOptions({
|
|
1645
1656
|
viteUserConfig
|
|
@@ -1718,7 +1729,7 @@ async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
|
|
|
1718
1729
|
ctx.entryClientFilePath,
|
|
1719
1730
|
...Object.values(ctx.reactRouterConfig.routes).flatMap(
|
|
1720
1731
|
(route) => {
|
|
1721
|
-
let routeFilePath =
|
|
1732
|
+
let routeFilePath = path8.resolve(
|
|
1722
1733
|
ctx.reactRouterConfig.appDirectory,
|
|
1723
1734
|
route.file
|
|
1724
1735
|
);
|
|
@@ -1742,7 +1753,7 @@ async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
|
|
|
1742
1753
|
) : null;
|
|
1743
1754
|
let routeChunkSuffix = routeChunkName ? `-${(0, import_kebabCase.default)(routeChunkName)}` : "";
|
|
1744
1755
|
let assetsDir = (ctx.reactRouterConfig.future.v8_viteEnvironmentApi ? viteUserConfig?.environments?.client?.build?.assetsDir : null) ?? viteUserConfig?.build?.assetsDir ?? "assets";
|
|
1745
|
-
return
|
|
1756
|
+
return path8.posix.join(
|
|
1746
1757
|
assetsDir,
|
|
1747
1758
|
`[name]${routeChunkSuffix}-[hash].js`
|
|
1748
1759
|
);
|
|
@@ -1792,14 +1803,14 @@ function resolveEnvironmentsOptions(environmentResolvers, resolverOptions) {
|
|
|
1792
1803
|
function isNonNullable(x) {
|
|
1793
1804
|
return x != null;
|
|
1794
1805
|
}
|
|
1795
|
-
var import_node_crypto, import_node_fs3,
|
|
1806
|
+
var import_node_crypto, import_node_fs3, import_promises3, path8, url, babel2, import_react_router2, import_es_module_lexer, import_pick3, import_jsesc, import_picocolors5, import_kebabCase, CLIENT_NON_COMPONENT_EXPORTS, CLIENT_ROUTE_EXPORTS, BUILD_CLIENT_ROUTE_QUERY_STRING, SSR_BUNDLE_PREFIX, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, getClientBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
|
|
1796
1807
|
var init_plugin = __esm({
|
|
1797
1808
|
"vite/plugin.ts"() {
|
|
1798
1809
|
"use strict";
|
|
1799
1810
|
import_node_crypto = require("crypto");
|
|
1800
1811
|
import_node_fs3 = require("fs");
|
|
1801
|
-
|
|
1802
|
-
|
|
1812
|
+
import_promises3 = require("fs/promises");
|
|
1813
|
+
path8 = __toESM(require("path"));
|
|
1803
1814
|
url = __toESM(require("url"));
|
|
1804
1815
|
babel2 = __toESM(require("@babel/core"));
|
|
1805
1816
|
import_react_router2 = require("react-router");
|
|
@@ -1828,6 +1839,7 @@ var init_plugin = __esm({
|
|
|
1828
1839
|
init_load_dotenv();
|
|
1829
1840
|
init_validate_plugin_order();
|
|
1830
1841
|
init_warn_on_client_source_maps();
|
|
1842
|
+
init_prerender();
|
|
1831
1843
|
CLIENT_NON_COMPONENT_EXPORTS = [
|
|
1832
1844
|
"clientAction",
|
|
1833
1845
|
"clientLoader",
|
|
@@ -1853,20 +1865,20 @@ var init_plugin = __esm({
|
|
|
1853
1865
|
serverManifest: create("server-manifest"),
|
|
1854
1866
|
browserManifest: create("browser-manifest")
|
|
1855
1867
|
};
|
|
1856
|
-
getServerBuildDirectory = (reactRouterConfig, { serverBundleId } = {}) =>
|
|
1868
|
+
getServerBuildDirectory = (reactRouterConfig, { serverBundleId } = {}) => path8.join(
|
|
1857
1869
|
reactRouterConfig.buildDirectory,
|
|
1858
1870
|
"server",
|
|
1859
1871
|
...serverBundleId ? [serverBundleId] : []
|
|
1860
1872
|
);
|
|
1861
|
-
getClientBuildDirectory = (reactRouterConfig) =>
|
|
1862
|
-
defaultEntriesDir =
|
|
1863
|
-
|
|
1873
|
+
getClientBuildDirectory = (reactRouterConfig) => path8.join(reactRouterConfig.buildDirectory, "client");
|
|
1874
|
+
defaultEntriesDir = path8.resolve(
|
|
1875
|
+
path8.dirname(require.resolve("@react-router/dev/package.json")),
|
|
1864
1876
|
"dist",
|
|
1865
1877
|
"config",
|
|
1866
1878
|
"defaults"
|
|
1867
1879
|
);
|
|
1868
1880
|
defaultEntries = (0, import_node_fs3.readdirSync)(defaultEntriesDir).map(
|
|
1869
|
-
(filename2) =>
|
|
1881
|
+
(filename2) => path8.join(defaultEntriesDir, filename2)
|
|
1870
1882
|
);
|
|
1871
1883
|
invariant(defaultEntries.length > 0, "No default entries found");
|
|
1872
1884
|
REACT_REFRESH_HEADER = `
|
|
@@ -2151,8 +2163,8 @@ var import_picocolors9 = __toESM(require("picocolors"));
|
|
|
2151
2163
|
|
|
2152
2164
|
// cli/commands.ts
|
|
2153
2165
|
var import_node_fs4 = require("fs");
|
|
2154
|
-
var
|
|
2155
|
-
var
|
|
2166
|
+
var import_promises4 = require("fs/promises");
|
|
2167
|
+
var path9 = __toESM(require("path"));
|
|
2156
2168
|
var import_exit_hook = __toESM(require("exit-hook"));
|
|
2157
2169
|
var import_picocolors8 = __toESM(require("picocolors"));
|
|
2158
2170
|
var import_react_router3 = require("react-router");
|
|
@@ -2325,14 +2337,14 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
|
|
|
2325
2337
|
console.error(import_picocolors8.default.red(`No default server entry detected.`));
|
|
2326
2338
|
return;
|
|
2327
2339
|
}
|
|
2328
|
-
let defaultsDirectory =
|
|
2329
|
-
|
|
2340
|
+
let defaultsDirectory = path9.resolve(
|
|
2341
|
+
path9.dirname(require.resolve("@react-router/dev/package.json")),
|
|
2330
2342
|
"dist",
|
|
2331
2343
|
"config",
|
|
2332
2344
|
"defaults"
|
|
2333
2345
|
);
|
|
2334
|
-
let defaultEntryClient =
|
|
2335
|
-
let defaultEntryServer =
|
|
2346
|
+
let defaultEntryClient = path9.resolve(defaultsDirectory, "entry.client.tsx");
|
|
2347
|
+
let defaultEntryServer = path9.resolve(
|
|
2336
2348
|
defaultsDirectory,
|
|
2337
2349
|
`entry.server.node.tsx`
|
|
2338
2350
|
);
|
|
@@ -2341,19 +2353,19 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
|
|
|
2341
2353
|
let useTypeScript = flags.typescript ?? true;
|
|
2342
2354
|
let outputExtension = useTypeScript ? "tsx" : "jsx";
|
|
2343
2355
|
let outputEntry = `${entry}.${outputExtension}`;
|
|
2344
|
-
let outputFile =
|
|
2356
|
+
let outputFile = path9.resolve(appDirectory, outputEntry);
|
|
2345
2357
|
if (!useTypeScript) {
|
|
2346
2358
|
let javascript = await transpile(contents, {
|
|
2347
2359
|
cwd: rootDirectory,
|
|
2348
2360
|
filename: isServerEntry ? defaultEntryServer : defaultEntryClient
|
|
2349
2361
|
});
|
|
2350
|
-
await (0,
|
|
2362
|
+
await (0, import_promises4.writeFile)(outputFile, javascript, "utf-8");
|
|
2351
2363
|
} else {
|
|
2352
|
-
await (0,
|
|
2364
|
+
await (0, import_promises4.writeFile)(outputFile, contents, "utf-8");
|
|
2353
2365
|
}
|
|
2354
2366
|
console.log(
|
|
2355
2367
|
import_picocolors8.default.blue(
|
|
2356
|
-
`Entry file ${entry} created at ${
|
|
2368
|
+
`Entry file ${entry} created at ${path9.relative(
|
|
2357
2369
|
rootDirectory,
|
|
2358
2370
|
outputFile
|
|
2359
2371
|
)}.`
|
|
@@ -2362,16 +2374,16 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
|
|
|
2362
2374
|
}
|
|
2363
2375
|
function resolveRootDirectory(root, flags) {
|
|
2364
2376
|
if (root) {
|
|
2365
|
-
return
|
|
2377
|
+
return path9.resolve(root);
|
|
2366
2378
|
}
|
|
2367
|
-
return process.env.REACT_ROUTER_ROOT || (flags?.config ?
|
|
2379
|
+
return process.env.REACT_ROUTER_ROOT || (flags?.config ? path9.dirname(path9.resolve(flags.config)) : process.cwd());
|
|
2368
2380
|
}
|
|
2369
2381
|
async function checkForEntry(rootDirectory, appDirectory, entries2) {
|
|
2370
2382
|
for (let entry of entries2) {
|
|
2371
|
-
let entryPath =
|
|
2383
|
+
let entryPath = path9.resolve(appDirectory, entry);
|
|
2372
2384
|
let exists = (0, import_node_fs4.existsSync)(entryPath);
|
|
2373
2385
|
if (exists) {
|
|
2374
|
-
let relative7 =
|
|
2386
|
+
let relative7 = path9.relative(rootDirectory, entryPath);
|
|
2375
2387
|
console.error(import_picocolors8.default.red(`Entry file ${relative7} already exists.`));
|
|
2376
2388
|
return process.exit(1);
|
|
2377
2389
|
}
|
|
@@ -2379,12 +2391,12 @@ async function checkForEntry(rootDirectory, appDirectory, entries2) {
|
|
|
2379
2391
|
}
|
|
2380
2392
|
async function createServerEntry(rootDirectory, appDirectory, inputFile) {
|
|
2381
2393
|
await checkForEntry(rootDirectory, appDirectory, serverEntries);
|
|
2382
|
-
let contents = await (0,
|
|
2394
|
+
let contents = await (0, import_promises4.readFile)(inputFile, "utf-8");
|
|
2383
2395
|
return contents;
|
|
2384
2396
|
}
|
|
2385
2397
|
async function createClientEntry(rootDirectory, appDirectory, inputFile) {
|
|
2386
2398
|
await checkForEntry(rootDirectory, appDirectory, clientEntries);
|
|
2387
|
-
let contents = await (0,
|
|
2399
|
+
let contents = await (0, import_promises4.readFile)(inputFile, "utf-8");
|
|
2388
2400
|
return contents;
|
|
2389
2401
|
}
|
|
2390
2402
|
async function typegen(root, flags) {
|
package/dist/config.d.ts
CHANGED
|
@@ -40,6 +40,10 @@ interface FutureConfig {
|
|
|
40
40
|
unstable_optimizeDeps: boolean;
|
|
41
41
|
unstable_subResourceIntegrity: boolean;
|
|
42
42
|
unstable_trailingSlashAwareDataRequests: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Prerender with Vite Preview server
|
|
45
|
+
*/
|
|
46
|
+
unstable_previewServerPrerendering?: boolean;
|
|
43
47
|
/**
|
|
44
48
|
* Enable route middleware
|
|
45
49
|
*/
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED
package/dist/vite/cloudflare.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v7.13.
|
|
2
|
+
* @react-router/dev v7.13.1-pre.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -533,6 +533,7 @@ async function resolveConfig({
|
|
|
533
533
|
unstable_optimizeDeps: userAndPresetConfigs.future?.unstable_optimizeDeps ?? false,
|
|
534
534
|
unstable_subResourceIntegrity: userAndPresetConfigs.future?.unstable_subResourceIntegrity ?? false,
|
|
535
535
|
unstable_trailingSlashAwareDataRequests: userAndPresetConfigs.future?.unstable_trailingSlashAwareDataRequests ?? false,
|
|
536
|
+
unstable_previewServerPrerendering: userAndPresetConfigs.future?.unstable_previewServerPrerendering ?? false,
|
|
536
537
|
v8_middleware: userAndPresetConfigs.future?.v8_middleware ?? false,
|
|
537
538
|
v8_splitRouteModules: userAndPresetConfigs.future?.v8_splitRouteModules ?? false,
|
|
538
539
|
v8_viteEnvironmentApi: userAndPresetConfigs.future?.v8_viteEnvironmentApi ?? false
|