@react-router/dev 0.0.0-experimental-49eef6a01 → 0.0.0-experimental-a26b992a1
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/bin.js +1 -1
- package/dist/cli/commands.js +1 -1
- package/dist/cli/detectPackageManager.js +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +7 -6
- package/dist/cli/run.js +1 -1
- package/dist/cli/useJavascript.js +1 -1
- package/dist/colors.js +1 -1
- package/dist/config/defaults/entry.client.tsx +1 -1
- package/dist/config/format.js +1 -1
- package/dist/config/routes.d.ts +77 -50
- package/dist/config/routes.js +175 -43
- package/dist/invariant.js +1 -1
- package/dist/routes.d.ts +2 -0
- package/dist/routes.js +23 -0
- package/dist/vite/babel.d.ts +10 -10
- package/dist/vite/babel.js +1 -1
- package/dist/vite/build.js +2 -2
- package/dist/vite/cloudflare-dev-proxy.d.ts +7 -1
- package/dist/vite/cloudflare-dev-proxy.js +23 -7
- package/dist/vite/cloudflare.d.ts +1 -0
- package/dist/vite/cloudflare.js +19 -0
- package/dist/vite/combine-urls.d.ts +1 -0
- package/dist/vite/combine-urls.js +20 -0
- package/dist/{config.d.ts → vite/config.d.ts} +15 -27
- package/dist/{config.js → vite/config.js} +62 -45
- package/dist/vite/dev.js +1 -1
- package/dist/vite/import-vite-esm-sync.js +1 -1
- package/dist/vite/node-adapter.js +1 -1
- package/dist/vite/plugin.d.ts +6 -3
- package/dist/vite/plugin.js +145 -121
- package/dist/vite/profiler.js +1 -1
- package/dist/vite/remove-exports.d.ts +2 -2
- package/dist/vite/remove-exports.js +113 -243
- package/dist/vite/resolve-file-url.js +1 -1
- package/dist/vite/static/refresh-utils.cjs +7 -26
- package/dist/vite/styles.d.ts +3 -2
- package/dist/vite/styles.js +23 -2
- package/dist/vite/vmod.js +1 -1
- package/dist/vite/with-props.d.ts +4 -0
- package/dist/vite/with-props.js +151 -0
- package/dist/vite.d.ts +2 -0
- package/dist/{cli.js → vite.js} +7 -8
- package/package.json +21 -12
- package/dist/config/findConfig.d.ts +0 -1
- package/dist/config/findConfig.js +0 -32
- package/dist/config/flatRoutes.d.ts +0 -14
- package/dist/config/flatRoutes.js +0 -418
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -23
- package/dist/vite/define-route.d.ts +0 -5
- package/dist/vite/define-route.js +0 -207
- package/dist/vite/index.d.ts +0 -3
- package/dist/vite/index.js +0 -31
- /package/dist/{cli.d.ts → vite/combine-urls-test.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-a26b992a1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -13,15 +13,28 @@
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
15
|
var reactRouter = require('react-router');
|
|
16
|
-
var wrangler = require('wrangler');
|
|
17
16
|
var nodeAdapter = require('./node-adapter.js');
|
|
18
17
|
|
|
19
18
|
let serverBuildId = "virtual:react-router/server-build";
|
|
19
|
+
function importWrangler() {
|
|
20
|
+
try {
|
|
21
|
+
return import('wrangler');
|
|
22
|
+
} catch (_) {
|
|
23
|
+
throw Error("Could not import `wrangler`. Do you have it installed?");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
20
26
|
const PLUGIN_NAME = "react-router-cloudflare-vite-dev-proxy";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Vite plugin that provides [Node proxies to local workerd
|
|
29
|
+
* bindings](https://developers.cloudflare.com/workers/wrangler/api/#getplatformproxy)
|
|
30
|
+
* to `context.cloudflare` in your server loaders and server actions during
|
|
31
|
+
* development.
|
|
32
|
+
*/
|
|
33
|
+
const cloudflareDevProxyVitePlugin = (options = {}) => {
|
|
34
|
+
let {
|
|
35
|
+
getLoadContext,
|
|
36
|
+
...restOptions
|
|
37
|
+
} = options;
|
|
25
38
|
return {
|
|
26
39
|
name: PLUGIN_NAME,
|
|
27
40
|
config: () => ({
|
|
@@ -39,11 +52,14 @@ const cloudflareDevProxyVitePlugin = ({
|
|
|
39
52
|
}
|
|
40
53
|
},
|
|
41
54
|
configureServer: async viteDevServer => {
|
|
55
|
+
let {
|
|
56
|
+
getPlatformProxy
|
|
57
|
+
} = await importWrangler();
|
|
42
58
|
// Do not include `dispose` in Cloudflare context
|
|
43
59
|
let {
|
|
44
60
|
dispose,
|
|
45
61
|
...cloudflare
|
|
46
|
-
} = await
|
|
62
|
+
} = await getPlatformProxy(restOptions);
|
|
47
63
|
let context = {
|
|
48
64
|
cloudflare
|
|
49
65
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { cloudflareDevProxyVitePlugin as cloudflareDevProxy } from "./cloudflare-dev-proxy";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-a26b992a1
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
+
|
|
15
|
+
var cloudflareDevProxy = require('./cloudflare-dev-proxy.js');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
exports.cloudflareDevProxy = cloudflareDevProxy.cloudflareDevProxyVitePlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function combineURLs(baseURL: string, relativeURL: string): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-a26b992a1
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
+
|
|
15
|
+
// Borrowed from axios: https://github.com/axios/axios/blob/0e4f9fa29077ebee4499facea6be1492b42e8a26/lib/helpers/combineURLs.js#L11-L15
|
|
16
|
+
function combineURLs(baseURL, relativeURL) {
|
|
17
|
+
return relativeURL ? baseURL.replace(/\/+$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.combineURLs = combineURLs;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import type * as Vite from "vite";
|
|
2
|
-
import
|
|
2
|
+
import type { ViteNodeRunner } from "vite-node/client";
|
|
3
|
+
import { type RouteManifest, type RouteManifestEntry } from "../config/routes";
|
|
3
4
|
declare const excludedConfigPresetKeys: readonly ["presets"];
|
|
4
5
|
type ExcludedConfigPresetKey = (typeof excludedConfigPresetKeys)[number];
|
|
5
|
-
type ConfigPreset = Omit<
|
|
6
|
+
type ConfigPreset = Omit<ReactRouterConfig, ExcludedConfigPresetKey>;
|
|
6
7
|
export type Preset = {
|
|
7
8
|
name: string;
|
|
8
9
|
reactRouterConfig?: (args: {
|
|
9
|
-
reactRouterUserConfig:
|
|
10
|
+
reactRouterUserConfig: ReactRouterConfig;
|
|
10
11
|
}) => ConfigPreset | Promise<ConfigPreset>;
|
|
11
12
|
reactRouterConfigResolved?: (args: {
|
|
12
|
-
reactRouterConfig:
|
|
13
|
+
reactRouterConfig: ResolvedReactRouterConfig;
|
|
13
14
|
}) => void | Promise<void>;
|
|
14
15
|
};
|
|
15
16
|
declare const branchRouteProperties: readonly ["id", "path", "file", "index"];
|
|
16
|
-
type BranchRoute = Pick<
|
|
17
|
-
export declare const configRouteToBranchRoute: (configRoute:
|
|
17
|
+
type BranchRoute = Pick<RouteManifestEntry, (typeof branchRouteProperties)[number]>;
|
|
18
|
+
export declare const configRouteToBranchRoute: (configRoute: RouteManifestEntry) => BranchRoute;
|
|
18
19
|
export type ServerBundlesFunction = (args: {
|
|
19
20
|
branch: BranchRoute[];
|
|
20
21
|
}) => string | Promise<string>;
|
|
@@ -36,38 +37,23 @@ export type ServerBundlesBuildManifest = BaseBuildManifest & {
|
|
|
36
37
|
};
|
|
37
38
|
type ServerModuleFormat = "esm" | "cjs";
|
|
38
39
|
interface FutureConfig {
|
|
39
|
-
v3_fetcherPersist: boolean;
|
|
40
|
-
v3_relativeSplatPath: boolean;
|
|
41
|
-
v3_throwAbortReason: boolean;
|
|
42
40
|
}
|
|
43
41
|
export type BuildManifest = DefaultBuildManifest | ServerBundlesBuildManifest;
|
|
44
42
|
type BuildEndHook = (args: {
|
|
45
43
|
buildManifest: BuildManifest | undefined;
|
|
46
|
-
reactRouterConfig:
|
|
44
|
+
reactRouterConfig: ResolvedReactRouterConfig;
|
|
47
45
|
viteConfig: Vite.ResolvedConfig;
|
|
48
46
|
}) => void | Promise<void>;
|
|
49
|
-
export type
|
|
47
|
+
export type ReactRouterConfig = {
|
|
50
48
|
/**
|
|
51
49
|
* The path to the `app` directory, relative to `remix.config.js`. Defaults
|
|
52
50
|
* to `"app"`.
|
|
53
51
|
*/
|
|
54
52
|
appDirectory?: string;
|
|
55
|
-
/**
|
|
56
|
-
* A function for defining custom routes, in addition to those already defined
|
|
57
|
-
* using the filesystem convention in `app/routes`. Both sets of routes will
|
|
58
|
-
* be merged.
|
|
59
|
-
*/
|
|
60
|
-
routes?: (defineRoutes: DefineRoutesFunction) => ReturnType<DefineRoutesFunction> | Promise<ReturnType<DefineRoutesFunction>>;
|
|
61
53
|
/**
|
|
62
54
|
* The output format of the server build. Defaults to "esm".
|
|
63
55
|
*/
|
|
64
56
|
serverModuleFormat?: ServerModuleFormat;
|
|
65
|
-
/**
|
|
66
|
-
* A list of filenames or a glob patterns to match files in the `app/routes`
|
|
67
|
-
* directory that Remix will ignore. Matching files will not be recognized as
|
|
68
|
-
* routes.
|
|
69
|
-
*/
|
|
70
|
-
ignoredRouteFiles?: string[];
|
|
71
57
|
/**
|
|
72
58
|
* Enabled future flags
|
|
73
59
|
*/
|
|
@@ -117,7 +103,7 @@ export type VitePluginConfig = {
|
|
|
117
103
|
*/
|
|
118
104
|
ssr?: boolean;
|
|
119
105
|
};
|
|
120
|
-
export type
|
|
106
|
+
export type ResolvedReactRouterConfig = Readonly<{
|
|
121
107
|
/**
|
|
122
108
|
* The absolute path to the application source directory.
|
|
123
109
|
*/
|
|
@@ -171,11 +157,13 @@ export type ResolvedVitePluginConfig = Readonly<{
|
|
|
171
157
|
ssr: boolean;
|
|
172
158
|
}>;
|
|
173
159
|
export declare function resolvePublicPath(viteUserConfig: Vite.UserConfig): string;
|
|
174
|
-
export declare function resolveReactRouterConfig({ rootDirectory, reactRouterUserConfig, viteUserConfig, viteCommand, }: {
|
|
160
|
+
export declare function resolveReactRouterConfig({ rootDirectory, reactRouterUserConfig, routeConfigChanged, viteUserConfig, viteCommand, viteNodeRunner, }: {
|
|
175
161
|
rootDirectory: string;
|
|
176
|
-
reactRouterUserConfig:
|
|
162
|
+
reactRouterUserConfig: ReactRouterConfig;
|
|
163
|
+
routeConfigChanged: boolean;
|
|
177
164
|
viteUserConfig: Vite.UserConfig;
|
|
178
165
|
viteCommand: Vite.ConfigEnv["command"];
|
|
166
|
+
viteNodeRunner: ViteNodeRunner;
|
|
179
167
|
}): Promise<Readonly<{
|
|
180
168
|
/**
|
|
181
169
|
* The absolute path to the application source directory.
|
|
@@ -231,7 +219,7 @@ export declare function resolveReactRouterConfig({ rootDirectory, reactRouterUse
|
|
|
231
219
|
}>>;
|
|
232
220
|
export declare function resolveEntryFiles({ rootDirectory, reactRouterConfig, }: {
|
|
233
221
|
rootDirectory: string;
|
|
234
|
-
reactRouterConfig:
|
|
222
|
+
reactRouterConfig: ResolvedReactRouterConfig;
|
|
235
223
|
}): Promise<{
|
|
236
224
|
entryClientFilePath: string;
|
|
237
225
|
entryServerFilePath: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-a26b992a1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -19,9 +19,9 @@ var colors = require('picocolors');
|
|
|
19
19
|
var pick = require('lodash/pick');
|
|
20
20
|
var omit = require('lodash/omit');
|
|
21
21
|
var PackageJson = require('@npmcli/package-json');
|
|
22
|
-
var routes = require('
|
|
23
|
-
var
|
|
24
|
-
var
|
|
22
|
+
var routes = require('../config/routes.js');
|
|
23
|
+
var detectPackageManager = require('../cli/detectPackageManager.js');
|
|
24
|
+
var importViteEsmSync = require('./import-vite-esm-sync.js');
|
|
25
25
|
|
|
26
26
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
27
|
|
|
@@ -54,21 +54,8 @@ let mergeReactRouterConfig = (...configs) => {
|
|
|
54
54
|
...configB.future
|
|
55
55
|
}
|
|
56
56
|
} : {}),
|
|
57
|
-
...(mergeRequired("ignoredRouteFiles") ? {
|
|
58
|
-
ignoredRouteFiles: Array.from(new Set([...(configA.ignoredRouteFiles ?? []), ...(configB.ignoredRouteFiles ?? [])]))
|
|
59
|
-
} : {}),
|
|
60
57
|
...(mergeRequired("presets") ? {
|
|
61
58
|
presets: [...(configA.presets ?? []), ...(configB.presets ?? [])]
|
|
62
|
-
} : {}),
|
|
63
|
-
...(mergeRequired("routes") ? {
|
|
64
|
-
routes: async (...args) => {
|
|
65
|
-
var _configA$routes, _configB$routes;
|
|
66
|
-
let [routesA, routesB] = await Promise.all([(_configA$routes = configA.routes) === null || _configA$routes === void 0 ? void 0 : _configA$routes.call(configA, ...args), (_configB$routes = configB.routes) === null || _configB$routes === void 0 ? void 0 : _configB$routes.call(configB, ...args)]);
|
|
67
|
-
return {
|
|
68
|
-
...routesA,
|
|
69
|
-
...routesB
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
59
|
} : {})
|
|
73
60
|
};
|
|
74
61
|
};
|
|
@@ -89,13 +76,21 @@ let deepFreeze = o => {
|
|
|
89
76
|
function resolvePublicPath(viteUserConfig) {
|
|
90
77
|
return viteUserConfig.base ?? "/";
|
|
91
78
|
}
|
|
79
|
+
let isFirstLoad = true;
|
|
80
|
+
let lastValidRoutes = {};
|
|
92
81
|
async function resolveReactRouterConfig({
|
|
93
82
|
rootDirectory,
|
|
94
83
|
reactRouterUserConfig,
|
|
84
|
+
routeConfigChanged,
|
|
95
85
|
viteUserConfig,
|
|
96
|
-
viteCommand
|
|
86
|
+
viteCommand,
|
|
87
|
+
viteNodeRunner
|
|
97
88
|
}) {
|
|
98
89
|
var _viteUserConfig$serve;
|
|
90
|
+
let vite = importViteEsmSync.importViteEsmSync();
|
|
91
|
+
let logger = vite.createLogger(viteUserConfig.logLevel, {
|
|
92
|
+
prefix: "[react-router]"
|
|
93
|
+
});
|
|
99
94
|
let presets = (await Promise.all((reactRouterUserConfig.presets ?? []).map(async preset => {
|
|
100
95
|
if (!preset.name) {
|
|
101
96
|
throw new Error("React Router presets must have a `name` property defined.");
|
|
@@ -122,9 +117,6 @@ async function resolveReactRouterConfig({
|
|
|
122
117
|
basename,
|
|
123
118
|
buildDirectory: userBuildDirectory,
|
|
124
119
|
buildEnd,
|
|
125
|
-
future: userFuture,
|
|
126
|
-
ignoredRouteFiles,
|
|
127
|
-
routes: userRoutesFunction,
|
|
128
120
|
prerender: prerenderConfig,
|
|
129
121
|
serverBuildFile,
|
|
130
122
|
serverBundles,
|
|
@@ -147,18 +139,22 @@ async function resolveReactRouterConfig({
|
|
|
147
139
|
} else if (typeof prerenderConfig === "function") {
|
|
148
140
|
prerender = await prerenderConfig();
|
|
149
141
|
} else {
|
|
150
|
-
|
|
142
|
+
logger.error(colors__default["default"].red("The `prerender` config must be an array of string paths, or a function " + "returning an array of string paths"));
|
|
143
|
+
process.exit(1);
|
|
151
144
|
}
|
|
152
145
|
}
|
|
153
146
|
let appDirectory = path__default["default"].resolve(rootDirectory, userAppDirectory || "app");
|
|
154
147
|
let buildDirectory = path__default["default"].resolve(rootDirectory, userBuildDirectory);
|
|
155
148
|
let publicPath = resolvePublicPath(viteUserConfig);
|
|
156
149
|
if (basename !== "/" && viteCommand === "serve" && !((_viteUserConfig$serve = viteUserConfig.server) !== null && _viteUserConfig$serve !== void 0 && _viteUserConfig$serve.middlewareMode) && !basename.startsWith(publicPath)) {
|
|
157
|
-
|
|
150
|
+
logger.error(colors__default["default"].red("When using the React Router `basename` and the Vite `base` config, " + "the `basename` config must begin with `base` for the default " + "Vite dev server."));
|
|
151
|
+
process.exit(1);
|
|
158
152
|
}
|
|
159
153
|
let rootRouteFile = findEntry(appDirectory, "root");
|
|
160
154
|
if (!rootRouteFile) {
|
|
161
|
-
|
|
155
|
+
let rootRouteDisplayPath = path__default["default"].relative(rootDirectory, path__default["default"].join(appDirectory, "root.tsx"));
|
|
156
|
+
logger.error(colors__default["default"].red(`Could not find a root route module in the app directory as "${rootRouteDisplayPath}"`));
|
|
157
|
+
process.exit(1);
|
|
162
158
|
}
|
|
163
159
|
let routes$1 = {
|
|
164
160
|
root: {
|
|
@@ -167,29 +163,49 @@ async function resolveReactRouterConfig({
|
|
|
167
163
|
file: rootRouteFile
|
|
168
164
|
}
|
|
169
165
|
};
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
};
|
|
166
|
+
let routeConfigFile = findEntry(appDirectory, "routes");
|
|
167
|
+
class FriendlyError extends Error {}
|
|
168
|
+
try {
|
|
169
|
+
if (!routeConfigFile) {
|
|
170
|
+
let routeConfigDisplayPath = vite.normalizePath(path__default["default"].relative(rootDirectory, path__default["default"].join(appDirectory, "routes.ts")));
|
|
171
|
+
throw new FriendlyError(`Route config file not found at "${routeConfigDisplayPath}".`);
|
|
177
172
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
let
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
173
|
+
routes.setAppDirectory(appDirectory);
|
|
174
|
+
let routeConfigExport = (await viteNodeRunner.executeFile(path__default["default"].join(appDirectory, routeConfigFile))).routes;
|
|
175
|
+
let routeConfig = await routeConfigExport;
|
|
176
|
+
let result = routes.validateRouteConfig({
|
|
177
|
+
routeConfigFile,
|
|
178
|
+
routeConfig
|
|
179
|
+
});
|
|
180
|
+
if (!result.valid) {
|
|
181
|
+
throw new FriendlyError(result.message);
|
|
186
182
|
}
|
|
183
|
+
routes$1 = {
|
|
184
|
+
...routes$1,
|
|
185
|
+
...routes.configRoutesToRouteManifest(routeConfig)
|
|
186
|
+
};
|
|
187
|
+
lastValidRoutes = routes$1;
|
|
188
|
+
if (routeConfigChanged) {
|
|
189
|
+
logger.info(colors__default["default"].green("Route config changed."), {
|
|
190
|
+
clear: true,
|
|
191
|
+
timestamp: true
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
} catch (error) {
|
|
195
|
+
var _error$loc, _error$loc2, _error$frame$trim, _error$frame;
|
|
196
|
+
logger.error(error instanceof FriendlyError ? colors__default["default"].red(error.message) : [colors__default["default"].red(`Route config in "${routeConfigFile}" is invalid.`), "", (_error$loc = error.loc) !== null && _error$loc !== void 0 && _error$loc.file && (_error$loc2 = error.loc) !== null && _error$loc2 !== void 0 && _error$loc2.column && error.frame ? [path__default["default"].relative(appDirectory, error.loc.file) + ":" + error.loc.line + ":" + error.loc.column, (_error$frame$trim = (_error$frame = error.frame).trim) === null || _error$frame$trim === void 0 ? void 0 : _error$frame$trim.call(_error$frame)] : error.stack].flat().join("\n") + "\n", {
|
|
197
|
+
error,
|
|
198
|
+
clear: !isFirstLoad,
|
|
199
|
+
timestamp: !isFirstLoad
|
|
200
|
+
});
|
|
201
|
+
// Bail if this is the first time loading config, otherwise keep the dev server running
|
|
202
|
+
if (isFirstLoad) {
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
// Keep dev server running with the last valid routes to allow for correction
|
|
206
|
+
routes$1 = lastValidRoutes;
|
|
187
207
|
}
|
|
188
|
-
let future = {
|
|
189
|
-
v3_fetcherPersist: (userFuture === null || userFuture === void 0 ? void 0 : userFuture.v3_fetcherPersist) === true,
|
|
190
|
-
v3_relativeSplatPath: (userFuture === null || userFuture === void 0 ? void 0 : userFuture.v3_relativeSplatPath) === true,
|
|
191
|
-
v3_throwAbortReason: (userFuture === null || userFuture === void 0 ? void 0 : userFuture.v3_throwAbortReason) === true
|
|
192
|
-
};
|
|
208
|
+
let future = {};
|
|
193
209
|
let reactRouterConfig = deepFreeze({
|
|
194
210
|
appDirectory,
|
|
195
211
|
basename,
|
|
@@ -209,6 +225,7 @@ async function resolveReactRouterConfig({
|
|
|
209
225
|
reactRouterConfig
|
|
210
226
|
}));
|
|
211
227
|
}
|
|
228
|
+
isFirstLoad = false;
|
|
212
229
|
return reactRouterConfig;
|
|
213
230
|
}
|
|
214
231
|
async function resolveEntryFiles({
|
|
@@ -218,7 +235,7 @@ async function resolveEntryFiles({
|
|
|
218
235
|
let {
|
|
219
236
|
appDirectory
|
|
220
237
|
} = reactRouterConfig;
|
|
221
|
-
let defaultsDirectory = path__default["default"].resolve(__dirname, "config", "defaults");
|
|
238
|
+
let defaultsDirectory = path__default["default"].resolve(__dirname, "..", "config", "defaults");
|
|
222
239
|
let userEntryClientFile = findEntry(appDirectory, "entry.client");
|
|
223
240
|
let userEntryServerFile = findEntry(appDirectory, "entry.server");
|
|
224
241
|
let entryServerFile;
|
package/dist/vite/dev.js
CHANGED
package/dist/vite/plugin.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as Vite from "vite";
|
|
2
2
|
import { type RouteManifest } from "../config/routes";
|
|
3
3
|
import type { Manifest as ReactRouterManifest } from "../manifest";
|
|
4
|
-
import { type
|
|
4
|
+
import { type ReactRouterConfig, type ResolvedReactRouterConfig } from "./config";
|
|
5
5
|
export declare function resolveViteConfig({ configFile, mode, root, }: {
|
|
6
6
|
configFile?: string;
|
|
7
7
|
mode?: string;
|
|
@@ -61,12 +61,15 @@ export type ReactRouterPluginContext = ReactRouterPluginSsrBuildContext & {
|
|
|
61
61
|
entryClientFilePath: string;
|
|
62
62
|
entryServerFilePath: string;
|
|
63
63
|
publicPath: string;
|
|
64
|
-
reactRouterConfig:
|
|
64
|
+
reactRouterConfig: ResolvedReactRouterConfig;
|
|
65
65
|
viteManifestEnabled: boolean;
|
|
66
66
|
};
|
|
67
67
|
export declare let getServerBuildDirectory: (ctx: ReactRouterPluginContext) => string;
|
|
68
68
|
type MaybePromise<T> = T | Promise<T>;
|
|
69
69
|
export declare let setReactRouterDevLoadContext: (loadContext: (request: Request) => MaybePromise<Record<string, unknown>>) => void;
|
|
70
|
-
|
|
70
|
+
type ReactRouterVitePlugin = (config?: ReactRouterConfig) => Vite.Plugin[];
|
|
71
|
+
/**
|
|
72
|
+
* React Router [Vite plugin.](https://vitejs.dev/guide/using-plugins.html)
|
|
73
|
+
*/
|
|
71
74
|
export declare const reactRouterVitePlugin: ReactRouterVitePlugin;
|
|
72
75
|
export {};
|