@react-router/dev 7.0.0-pre.2 → 7.0.0-pre.4

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cli/index.d.ts +2 -1
  3. package/dist/cli/index.js +1198 -8
  4. package/dist/{config/routes.d.ts → routes-C14jcF98.d.ts} +15 -21
  5. package/dist/routes.d.ts +2 -2
  6. package/dist/routes.js +181 -11
  7. package/dist/typescript/plugin.d.ts +5 -2
  8. package/dist/typescript/plugin.js +479 -31
  9. package/dist/vite/cloudflare.d.ts +23 -1
  10. package/dist/vite/cloudflare.js +171 -5
  11. package/dist/vite.d.ts +169 -2
  12. package/dist/vite.js +2394 -5
  13. package/package.json +28 -7
  14. package/dist/cli/commands.d.ts +0 -13
  15. package/dist/cli/commands.js +0 -179
  16. package/dist/cli/detectPackageManager.d.ts +0 -10
  17. package/dist/cli/detectPackageManager.js +0 -39
  18. package/dist/cli/run.d.ts +0 -5
  19. package/dist/cli/run.js +0 -188
  20. package/dist/cli/useJavascript.d.ts +0 -4
  21. package/dist/cli/useJavascript.js +0 -66
  22. package/dist/colors.d.ts +0 -17
  23. package/dist/colors.js +0 -49
  24. package/dist/config/format.d.ts +0 -5
  25. package/dist/config/format.js +0 -68
  26. package/dist/config/routes.js +0 -253
  27. package/dist/config/serverModes.d.ts +0 -9
  28. package/dist/invariant.d.ts +0 -2
  29. package/dist/invariant.js +0 -20
  30. package/dist/manifest.d.ts +0 -28
  31. package/dist/typescript/typegen.d.ts +0 -10
  32. package/dist/typescript/typegen.js +0 -190
  33. package/dist/vite/babel.d.ts +0 -20
  34. package/dist/vite/babel.js +0 -49
  35. package/dist/vite/build.d.ts +0 -15
  36. package/dist/vite/build.js +0 -249
  37. package/dist/vite/cloudflare-dev-proxy.d.ts +0 -21
  38. package/dist/vite/cloudflare-dev-proxy.js +0 -89
  39. package/dist/vite/combine-urls-test.d.ts +0 -1
  40. package/dist/vite/combine-urls.d.ts +0 -1
  41. package/dist/vite/combine-urls.js +0 -20
  42. package/dist/vite/config.d.ts +0 -234
  43. package/dist/vite/config.js +0 -282
  44. package/dist/vite/dev.d.ts +0 -15
  45. package/dist/vite/dev.js +0 -81
  46. package/dist/vite/import-vite-esm-sync.d.ts +0 -4
  47. package/dist/vite/import-vite-esm-sync.js +0 -28
  48. package/dist/vite/node-adapter.d.ts +0 -6
  49. package/dist/vite/node-adapter.js +0 -90
  50. package/dist/vite/plugin.d.ts +0 -75
  51. package/dist/vite/plugin.js +0 -1301
  52. package/dist/vite/profiler.d.ts +0 -5
  53. package/dist/vite/profiler.js +0 -55
  54. package/dist/vite/remove-exports-test.d.ts +0 -1
  55. package/dist/vite/remove-exports.d.ts +0 -2
  56. package/dist/vite/remove-exports.js +0 -148
  57. package/dist/vite/resolve-file-url.d.ts +0 -3
  58. package/dist/vite/resolve-file-url.js +0 -53
  59. package/dist/vite/styles.d.ts +0 -14
  60. package/dist/vite/styles.js +0 -199
  61. package/dist/vite/vite-node.d.ts +0 -9
  62. package/dist/vite/vite-node.js +0 -57
  63. package/dist/vite/vmod.d.ts +0 -3
  64. package/dist/vite/vmod.js +0 -21
  65. package/dist/vite/with-props.d.ts +0 -4
  66. package/dist/vite/with-props.js +0 -151
  67. /package/dist/{vite/static → static}/refresh-utils.cjs +0 -0
@@ -1,282 +0,0 @@
1
- /**
2
- * @react-router/dev v7.0.0-pre.2
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 node_child_process = require('node:child_process');
16
- var path = require('node:path');
17
- var fse = require('fs-extra');
18
- var colors = require('picocolors');
19
- var pick = require('lodash/pick');
20
- var omit = require('lodash/omit');
21
- var PackageJson = require('@npmcli/package-json');
22
- var routes = require('../config/routes.js');
23
- var detectPackageManager = require('../cli/detectPackageManager.js');
24
- var importViteEsmSync = require('./import-vite-esm-sync.js');
25
-
26
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
-
28
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
29
- var fse__default = /*#__PURE__*/_interopDefaultLegacy(fse);
30
- var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
31
- var pick__default = /*#__PURE__*/_interopDefaultLegacy(pick);
32
- var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
33
- var PackageJson__default = /*#__PURE__*/_interopDefaultLegacy(PackageJson);
34
-
35
- const excludedConfigPresetKeys = ["presets"];
36
- // Only expose a subset of route properties to the "serverBundles" function
37
- const branchRouteProperties = ["id", "path", "file", "index"];
38
- const configRouteToBranchRoute = configRoute => pick__default["default"](configRoute, branchRouteProperties);
39
- let mergeReactRouterConfig = (...configs) => {
40
- let reducer = (configA, configB) => {
41
- let mergeRequired = key => configA[key] !== undefined && configB[key] !== undefined;
42
- return {
43
- ...configA,
44
- ...configB,
45
- ...(mergeRequired("buildEnd") ? {
46
- buildEnd: async (...args) => {
47
- var _configA$buildEnd, _configB$buildEnd;
48
- await Promise.all([(_configA$buildEnd = configA.buildEnd) === null || _configA$buildEnd === void 0 ? void 0 : _configA$buildEnd.call(configA, ...args), (_configB$buildEnd = configB.buildEnd) === null || _configB$buildEnd === void 0 ? void 0 : _configB$buildEnd.call(configB, ...args)]);
49
- }
50
- } : {}),
51
- ...(mergeRequired("future") ? {
52
- future: {
53
- ...configA.future,
54
- ...configB.future
55
- }
56
- } : {}),
57
- ...(mergeRequired("presets") ? {
58
- presets: [...(configA.presets ?? []), ...(configB.presets ?? [])]
59
- } : {})
60
- };
61
- };
62
- return configs.reduce(reducer, {});
63
- };
64
- // Inlined from https://github.com/jsdf/deep-freeze
65
- let deepFreeze = o => {
66
- Object.freeze(o);
67
- let oIsFunction = typeof o === "function";
68
- let hasOwnProp = Object.prototype.hasOwnProperty;
69
- Object.getOwnPropertyNames(o).forEach(function (prop) {
70
- if (hasOwnProp.call(o, prop) && (oIsFunction ? prop !== "caller" && prop !== "callee" && prop !== "arguments" : true) && o[prop] !== null && (typeof o[prop] === "object" || typeof o[prop] === "function") && !Object.isFrozen(o[prop])) {
71
- deepFreeze(o[prop]);
72
- }
73
- });
74
- return o;
75
- };
76
- function resolvePublicPath(viteUserConfig) {
77
- return viteUserConfig.base ?? "/";
78
- }
79
- let isFirstLoad = true;
80
- let lastValidRoutes = {};
81
- async function resolveReactRouterConfig({
82
- rootDirectory,
83
- reactRouterUserConfig,
84
- routeConfigChanged,
85
- viteUserConfig,
86
- viteCommand,
87
- routesViteNodeContext
88
- }) {
89
- var _viteUserConfig$serve;
90
- let vite = importViteEsmSync.importViteEsmSync();
91
- let logger = vite.createLogger(viteUserConfig.logLevel, {
92
- prefix: "[react-router]"
93
- });
94
- let presets = (await Promise.all((reactRouterUserConfig.presets ?? []).map(async preset => {
95
- if (!preset.name) {
96
- throw new Error("React Router presets must have a `name` property defined.");
97
- }
98
- if (!preset.reactRouterConfig) {
99
- return null;
100
- }
101
- let configPreset = omit__default["default"](await preset.reactRouterConfig({
102
- reactRouterUserConfig
103
- }), excludedConfigPresetKeys);
104
- return configPreset;
105
- }))).filter(function isNotNull(value) {
106
- return value !== null;
107
- });
108
- let defaults = {
109
- basename: "/",
110
- buildDirectory: "build",
111
- serverBuildFile: "index.js",
112
- serverModuleFormat: "esm",
113
- ssr: true
114
- };
115
- let {
116
- appDirectory: userAppDirectory,
117
- basename,
118
- buildDirectory: userBuildDirectory,
119
- buildEnd,
120
- prerender,
121
- serverBuildFile,
122
- serverBundles,
123
- serverModuleFormat,
124
- ssr
125
- } = {
126
- ...defaults,
127
- // Default values should be completely overridden by user/preset config, not merged
128
- ...mergeReactRouterConfig(...presets, reactRouterUserConfig)
129
- };
130
- // Log warning for incompatible vite config flags
131
- if (!ssr && serverBundles) {
132
- console.warn(colors__default["default"].yellow(colors__default["default"].bold("⚠️ SPA Mode: ") + "the `serverBundles` config is invalid with " + "`ssr:false` and will be ignored`"));
133
- serverBundles = undefined;
134
- }
135
- let isValidPrerenderConfig = prerender == null || typeof prerender === "boolean" || Array.isArray(prerender) || typeof prerender === "function";
136
- if (!isValidPrerenderConfig) {
137
- logger.error(colors__default["default"].red("The `prerender` config must be a boolean, an array of string paths, " + "or a function returning a boolean or array of string paths"));
138
- process.exit(1);
139
- }
140
- let appDirectory = path__default["default"].resolve(rootDirectory, userAppDirectory || "app");
141
- let buildDirectory = path__default["default"].resolve(rootDirectory, userBuildDirectory);
142
- let publicPath = resolvePublicPath(viteUserConfig);
143
- if (basename !== "/" && viteCommand === "serve" && !((_viteUserConfig$serve = viteUserConfig.server) !== null && _viteUserConfig$serve !== void 0 && _viteUserConfig$serve.middlewareMode) && !basename.startsWith(publicPath)) {
144
- 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."));
145
- process.exit(1);
146
- }
147
- let rootRouteFile = findEntry(appDirectory, "root");
148
- if (!rootRouteFile) {
149
- let rootRouteDisplayPath = path__default["default"].relative(rootDirectory, path__default["default"].join(appDirectory, "root.tsx"));
150
- logger.error(colors__default["default"].red(`Could not find a root route module in the app directory as "${rootRouteDisplayPath}"`));
151
- process.exit(1);
152
- }
153
- let routes$1 = {
154
- root: {
155
- path: "",
156
- id: "root",
157
- file: rootRouteFile
158
- }
159
- };
160
- let routeConfigFile = findEntry(appDirectory, "routes");
161
- class FriendlyError extends Error {}
162
- try {
163
- if (!routeConfigFile) {
164
- let routeConfigDisplayPath = vite.normalizePath(path__default["default"].relative(rootDirectory, path__default["default"].join(appDirectory, "routes.ts")));
165
- throw new FriendlyError(`Route config file not found at "${routeConfigDisplayPath}".`);
166
- }
167
- routes.setAppDirectory(appDirectory);
168
- let routeConfigExport = (await routesViteNodeContext.runner.executeFile(path__default["default"].join(appDirectory, routeConfigFile))).routes;
169
- let routeConfig = await routeConfigExport;
170
- let result = routes.validateRouteConfig({
171
- routeConfigFile,
172
- routeConfig
173
- });
174
- if (!result.valid) {
175
- throw new FriendlyError(result.message);
176
- }
177
- routes$1 = {
178
- ...routes$1,
179
- ...routes.configRoutesToRouteManifest(routeConfig)
180
- };
181
- lastValidRoutes = routes$1;
182
- if (routeConfigChanged) {
183
- logger.info(colors__default["default"].green("Route config changed."), {
184
- clear: true,
185
- timestamp: true
186
- });
187
- }
188
- } catch (error) {
189
- var _error$loc, _error$loc2, _error$frame$trim, _error$frame;
190
- 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", {
191
- error,
192
- clear: !isFirstLoad,
193
- timestamp: !isFirstLoad
194
- });
195
- // Bail if this is the first time loading config, otherwise keep the dev server running
196
- if (isFirstLoad) {
197
- process.exit(1);
198
- }
199
- // Keep dev server running with the last valid routes to allow for correction
200
- routes$1 = lastValidRoutes;
201
- }
202
- let future = {};
203
- let reactRouterConfig = deepFreeze({
204
- appDirectory,
205
- basename,
206
- buildDirectory,
207
- buildEnd,
208
- future,
209
- prerender,
210
- routes: routes$1,
211
- serverBuildFile,
212
- serverBundles,
213
- serverModuleFormat,
214
- ssr
215
- });
216
- for (let preset of reactRouterUserConfig.presets ?? []) {
217
- var _preset$reactRouterCo;
218
- await ((_preset$reactRouterCo = preset.reactRouterConfigResolved) === null || _preset$reactRouterCo === void 0 ? void 0 : _preset$reactRouterCo.call(preset, {
219
- reactRouterConfig
220
- }));
221
- }
222
- isFirstLoad = false;
223
- return reactRouterConfig;
224
- }
225
- async function resolveEntryFiles({
226
- rootDirectory,
227
- reactRouterConfig
228
- }) {
229
- let {
230
- appDirectory
231
- } = reactRouterConfig;
232
- let defaultsDirectory = path__default["default"].resolve(__dirname, "..", "config", "defaults");
233
- let userEntryClientFile = findEntry(appDirectory, "entry.client");
234
- let userEntryServerFile = findEntry(appDirectory, "entry.server");
235
- let entryServerFile;
236
- let entryClientFile = userEntryClientFile || "entry.client.tsx";
237
- let pkgJson = await PackageJson__default["default"].load(rootDirectory);
238
- let deps = pkgJson.content.dependencies ?? {};
239
- if (userEntryServerFile) {
240
- entryServerFile = userEntryServerFile;
241
- } else {
242
- if (!deps["@react-router/node"]) {
243
- throw new Error(`Could not determine server runtime. Please install @react-router/node, or provide a custom entry.server.tsx/jsx file in your app directory.`);
244
- }
245
- if (!deps["isbot"]) {
246
- console.log("adding `isbot@5` to your package.json, you should commit this change");
247
- pkgJson.update({
248
- dependencies: {
249
- ...pkgJson.content.dependencies,
250
- isbot: "^5"
251
- }
252
- });
253
- await pkgJson.save();
254
- let packageManager = detectPackageManager.detectPackageManager() ?? "npm";
255
- node_child_process.execSync(`${packageManager} install`, {
256
- cwd: rootDirectory,
257
- stdio: "inherit"
258
- });
259
- }
260
- entryServerFile = `entry.server.node.tsx`;
261
- }
262
- let entryClientFilePath = userEntryClientFile ? path__default["default"].resolve(reactRouterConfig.appDirectory, userEntryClientFile) : path__default["default"].resolve(defaultsDirectory, entryClientFile);
263
- let entryServerFilePath = userEntryServerFile ? path__default["default"].resolve(reactRouterConfig.appDirectory, userEntryServerFile) : path__default["default"].resolve(defaultsDirectory, entryServerFile);
264
- return {
265
- entryClientFilePath,
266
- entryServerFilePath
267
- };
268
- }
269
- const entryExts = [".js", ".jsx", ".ts", ".tsx"];
270
- function findEntry(dir, basename) {
271
- for (let ext of entryExts) {
272
- let file = path__default["default"].resolve(dir, basename + ext);
273
- if (fse__default["default"].existsSync(file)) return path__default["default"].relative(dir, file);
274
- }
275
- return undefined;
276
- }
277
-
278
- exports.configRouteToBranchRoute = configRouteToBranchRoute;
279
- exports.findEntry = findEntry;
280
- exports.resolveEntryFiles = resolveEntryFiles;
281
- exports.resolvePublicPath = resolvePublicPath;
282
- exports.resolveReactRouterConfig = resolveReactRouterConfig;
@@ -1,15 +0,0 @@
1
- import type * as Vite from "vite";
2
- export interface ViteDevOptions {
3
- clearScreen?: boolean;
4
- config?: string;
5
- cors?: boolean;
6
- force?: boolean;
7
- host?: boolean | string;
8
- logLevel?: Vite.LogLevel;
9
- mode?: string;
10
- open?: boolean | string;
11
- port?: number;
12
- strictPort?: boolean;
13
- profile?: boolean;
14
- }
15
- export declare function dev(root: string, { clearScreen, config: configFile, cors, force, host, logLevel, mode, open, port, strictPort, }: ViteDevOptions): Promise<void>;
package/dist/vite/dev.js DELETED
@@ -1,81 +0,0 @@
1
- /**
2
- * @react-router/dev v7.0.0-pre.2
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 colors = require('picocolors');
16
- var importViteEsmSync = require('./import-vite-esm-sync.js');
17
- var profiler = require('./profiler.js');
18
-
19
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
-
21
- var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
22
-
23
- async function dev(root, {
24
- clearScreen,
25
- config: configFile,
26
- cors,
27
- force,
28
- host,
29
- logLevel,
30
- mode,
31
- open,
32
- port,
33
- strictPort
34
- }) {
35
- // Ensure Vite's ESM build is preloaded at the start of the process
36
- // so it can be accessed synchronously via `importViteEsmSync`
37
- await importViteEsmSync.preloadViteEsm();
38
- let vite = await import('vite');
39
- let server = await vite.createServer({
40
- root,
41
- mode,
42
- configFile,
43
- server: {
44
- open,
45
- cors,
46
- host,
47
- port,
48
- strictPort
49
- },
50
- optimizeDeps: {
51
- force
52
- },
53
- clearScreen,
54
- logLevel
55
- });
56
- if (!server.config.plugins.find(plugin => plugin.name === "react-router")) {
57
- console.error(colors__default["default"].red("React Router Vite plugin not found in Vite config"));
58
- process.exit(1);
59
- }
60
- await server.listen();
61
- server.printUrls();
62
- let customShortcuts = [{
63
- key: "p",
64
- description: "start/stop the profiler",
65
- async action(server) {
66
- if (profiler.getSession()) {
67
- await profiler.stop(server.config.logger.info);
68
- } else {
69
- await profiler.start(() => {
70
- server.config.logger.info("Profiler started");
71
- });
72
- }
73
- }
74
- }];
75
- server.bindCLIShortcuts({
76
- print: true,
77
- customShortcuts
78
- });
79
- }
80
-
81
- exports.dev = dev;
@@ -1,4 +0,0 @@
1
- type Vite = typeof import("vite");
2
- export declare function preloadViteEsm(): Promise<void>;
3
- export declare function importViteEsmSync(): Vite;
4
- export {};
@@ -1,28 +0,0 @@
1
- /**
2
- * @react-router/dev v7.0.0-pre.2
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 invariant = require('../invariant.js');
16
-
17
- // This file is used to avoid CJS deprecation warnings in Vite 5 since
18
- let vite;
19
- async function preloadViteEsm() {
20
- vite = await import('vite');
21
- }
22
- function importViteEsmSync() {
23
- invariant(vite, "importViteEsmSync() called before preloadViteEsm()");
24
- return vite;
25
- }
26
-
27
- exports.importViteEsmSync = importViteEsmSync;
28
- exports.preloadViteEsm = preloadViteEsm;
@@ -1,6 +0,0 @@
1
- /// <reference types="node" />
2
- import type { ServerResponse } from "node:http";
3
- import type * as Vite from "vite";
4
- export type NodeRequestHandler = (req: Vite.Connect.IncomingMessage, res: ServerResponse) => Promise<void>;
5
- export declare function fromNodeRequest(nodeReq: Vite.Connect.IncomingMessage, nodeRes: ServerResponse<Vite.Connect.IncomingMessage>): Request;
6
- export declare function toNodeRequest(res: Response, nodeRes: ServerResponse): Promise<void>;
@@ -1,90 +0,0 @@
1
- /**
2
- * @react-router/dev v7.0.0-pre.2
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 node_events = require('node:events');
16
- var node_stream = require('node:stream');
17
- var setCookieParser = require('set-cookie-parser');
18
- var node = require('@react-router/node');
19
- var invariant = require('../invariant.js');
20
-
21
- function fromNodeHeaders(nodeHeaders) {
22
- let headers = new Headers();
23
- for (let [key, values] of Object.entries(nodeHeaders)) {
24
- if (values) {
25
- if (Array.isArray(values)) {
26
- for (let value of values) {
27
- headers.append(key, value);
28
- }
29
- } else {
30
- headers.set(key, values);
31
- }
32
- }
33
- }
34
- return headers;
35
- }
36
- // Based on `createRemixRequest` in packages/react-router-express/server.ts
37
- function fromNodeRequest(nodeReq, nodeRes) {
38
- let origin = nodeReq.headers.origin && "null" !== nodeReq.headers.origin ? nodeReq.headers.origin : `http://${nodeReq.headers.host}`;
39
- // Use `req.originalUrl` so React Router is aware of the full path
40
- invariant(nodeReq.originalUrl, "Expected `nodeReq.originalUrl` to be defined");
41
- let url = new URL(nodeReq.originalUrl, origin);
42
- // Abort action/loaders once we can no longer write a response
43
- let controller = new AbortController();
44
- let init = {
45
- method: nodeReq.method,
46
- headers: fromNodeHeaders(nodeReq.headers),
47
- signal: controller.signal
48
- };
49
- // Abort action/loaders once we can no longer write a response iff we have
50
- // not yet sent a response (i.e., `close` without `finish`)
51
- // `finish` -> done rendering the response
52
- // `close` -> response can no longer be written to
53
- nodeRes.on("finish", () => controller = null);
54
- nodeRes.on("close", () => {
55
- var _controller;
56
- return (_controller = controller) === null || _controller === void 0 ? void 0 : _controller.abort();
57
- });
58
- if (nodeReq.method !== "GET" && nodeReq.method !== "HEAD") {
59
- init.body = node.createReadableStreamFromReadable(nodeReq);
60
- init.duplex = "half";
61
- }
62
- return new Request(url.href, init);
63
- }
64
- // Adapted from solid-start's `handleNodeResponse`:
65
- // https://github.com/solidjs/solid-start/blob/7398163869b489cce503c167e284891cf51a6613/packages/start/node/fetch.js#L162-L185
66
- async function toNodeRequest(res, nodeRes) {
67
- nodeRes.statusCode = res.status;
68
- nodeRes.statusMessage = res.statusText;
69
- let cookiesStrings = [];
70
- for (let [name, value] of res.headers) {
71
- if (name === "set-cookie") {
72
- cookiesStrings.push(...setCookieParser.splitCookiesString(value));
73
- } else nodeRes.setHeader(name, value);
74
- }
75
- if (cookiesStrings.length) {
76
- nodeRes.setHeader("set-cookie", cookiesStrings);
77
- }
78
- if (res.body) {
79
- // https://github.com/microsoft/TypeScript/issues/29867
80
- let responseBody = res.body;
81
- let readable = node_stream.Readable.from(responseBody);
82
- readable.pipe(nodeRes);
83
- await node_events.once(readable, "end");
84
- } else {
85
- nodeRes.end();
86
- }
87
- }
88
-
89
- exports.fromNodeRequest = fromNodeRequest;
90
- exports.toNodeRequest = toNodeRequest;
@@ -1,75 +0,0 @@
1
- import type * as Vite from "vite";
2
- import { type RouteManifest } from "../config/routes";
3
- import type { Manifest as ReactRouterManifest } from "../manifest";
4
- import { type ReactRouterConfig, type ResolvedReactRouterConfig } from "./config";
5
- export declare function resolveViteConfig({ configFile, mode, root, }: {
6
- configFile?: string;
7
- mode?: string;
8
- root: string;
9
- }): Promise<Readonly<Omit<Vite.UserConfig, "optimizeDeps" | "plugins" | "css" | "assetsInclude" | "worker" | "build"> & {
10
- configFile: string | undefined;
11
- configFileDependencies: string[];
12
- inlineConfig: Vite.InlineConfig;
13
- root: string;
14
- base: string;
15
- publicDir: string;
16
- cacheDir: string;
17
- command: "build" | "serve";
18
- mode: string;
19
- isWorker: boolean;
20
- isProduction: boolean;
21
- envDir: string;
22
- env: Record<string, any>;
23
- resolve: Required<Vite.ResolveOptions> & {
24
- alias: Vite.Alias[];
25
- };
26
- plugins: readonly Vite.Plugin<any>[];
27
- css: Vite.ResolvedCSSOptions;
28
- esbuild: false | Vite.ESBuildOptions;
29
- server: Vite.ResolvedServerOptions;
30
- build: Vite.ResolvedBuildOptions;
31
- preview: Vite.ResolvedPreviewOptions;
32
- ssr: Vite.ResolvedSSROptions;
33
- assetsInclude: (file: string) => boolean;
34
- logger: Vite.Logger;
35
- createResolver: (options?: Partial<Vite.InternalResolveOptions> | undefined) => Vite.ResolveFn;
36
- optimizeDeps: Vite.DepOptimizationOptions;
37
- worker: Vite.ResolvedWorkerOptions;
38
- appType: Vite.AppType;
39
- experimental: Vite.ExperimentalOptions;
40
- } & Vite.PluginHookUtils>>;
41
- export declare function extractPluginContext(viteConfig: Vite.ResolvedConfig): Promise<ReactRouterPluginContext | undefined>;
42
- export declare function loadPluginContext({ configFile, root, }: {
43
- configFile?: string;
44
- root?: string;
45
- }): Promise<ReactRouterPluginContext>;
46
- export type ServerBundleBuildConfig = {
47
- routes: RouteManifest;
48
- serverBundleId: string;
49
- };
50
- type ReactRouterPluginSsrBuildContext = {
51
- isSsrBuild: false;
52
- getReactRouterServerManifest?: never;
53
- serverBundleBuildConfig?: never;
54
- } | {
55
- isSsrBuild: true;
56
- getReactRouterServerManifest: () => Promise<ReactRouterManifest>;
57
- serverBundleBuildConfig: ServerBundleBuildConfig | null;
58
- };
59
- export type ReactRouterPluginContext = ReactRouterPluginSsrBuildContext & {
60
- rootDirectory: string;
61
- entryClientFilePath: string;
62
- entryServerFilePath: string;
63
- publicPath: string;
64
- reactRouterConfig: ResolvedReactRouterConfig;
65
- viteManifestEnabled: boolean;
66
- };
67
- export declare let getServerBuildDirectory: (ctx: ReactRouterPluginContext) => string;
68
- type MaybePromise<T> = T | Promise<T>;
69
- export declare let setReactRouterDevLoadContext: (loadContext: (request: Request) => MaybePromise<Record<string, unknown>>) => void;
70
- type ReactRouterVitePlugin = (config?: ReactRouterConfig) => Vite.Plugin[];
71
- /**
72
- * React Router [Vite plugin.](https://vitejs.dev/guide/using-plugins.html)
73
- */
74
- export declare const reactRouterVitePlugin: ReactRouterVitePlugin;
75
- export {};