@react-router/dev 7.2.0 → 7.3.0-pre.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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v7.2.0
2
+ * @react-router/dev v7.3.0-pre.1
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -64,7 +64,18 @@ function invariant(value, message) {
64
64
  }
65
65
 
66
66
  // vite/node-adapter.ts
67
- function fromNodeHeaders(nodeHeaders) {
67
+ function fromNodeHeaders(nodeReq) {
68
+ let nodeHeaders = nodeReq.headers;
69
+ if (nodeReq.httpVersionMajor >= 2) {
70
+ nodeHeaders = { ...nodeHeaders };
71
+ if (nodeHeaders[":authority"]) {
72
+ nodeHeaders.host = nodeHeaders[":authority"];
73
+ }
74
+ delete nodeHeaders[":authority"];
75
+ delete nodeHeaders[":method"];
76
+ delete nodeHeaders[":path"];
77
+ delete nodeHeaders[":scheme"];
78
+ }
68
79
  let headers = new Headers();
69
80
  for (let [key, values] of Object.entries(nodeHeaders)) {
70
81
  if (values) {
@@ -89,7 +100,7 @@ function fromNodeRequest(nodeReq, nodeRes) {
89
100
  let controller = new AbortController();
90
101
  let init = {
91
102
  method: nodeReq.method,
92
- headers: fromNodeHeaders(nodeReq.headers),
103
+ headers: fromNodeHeaders(nodeReq),
93
104
  signal: controller.signal
94
105
  };
95
106
  nodeRes.on("finish", () => controller = null);
@@ -165,26 +176,47 @@ var import_package_json = __toESM(require("@npmcli/package-json"));
165
176
  var import_server = require("vite-node/server");
166
177
  var import_client = require("vite-node/client");
167
178
  var import_source_map = require("vite-node/source-map");
168
- async function createContext(viteConfig = {}) {
179
+
180
+ // vite/ssr-externals.ts
181
+ var ssrExternals = isReactRouterRepo() ? [
182
+ // This is only needed within this repo because these packages
183
+ // are linked to a directory outside of node_modules so Vite
184
+ // treats them as internal code by default.
185
+ "react-router",
186
+ "react-router-dom",
187
+ "@react-router/architect",
188
+ "@react-router/cloudflare",
189
+ "@react-router/dev",
190
+ "@react-router/express",
191
+ "@react-router/node",
192
+ "@react-router/serve"
193
+ ] : void 0;
194
+
195
+ // vite/vite-node.ts
196
+ async function createContext({
197
+ root,
198
+ mode
199
+ }) {
169
200
  await preloadVite();
170
201
  const vite2 = getVite();
171
- const devServer = await vite2.createServer(
172
- vite2.mergeConfig(
173
- {
174
- server: {
175
- preTransformRequests: false,
176
- hmr: false
177
- },
178
- optimizeDeps: {
179
- noDiscovery: true
180
- },
181
- configFile: false,
182
- envFile: false,
183
- plugins: []
184
- },
185
- viteConfig
186
- )
187
- );
202
+ const devServer = await vite2.createServer({
203
+ root,
204
+ mode,
205
+ server: {
206
+ preTransformRequests: false,
207
+ hmr: false,
208
+ watch: null
209
+ },
210
+ ssr: {
211
+ external: ssrExternals
212
+ },
213
+ optimizeDeps: {
214
+ noDiscovery: true
215
+ },
216
+ configFile: false,
217
+ envFile: false,
218
+ plugins: []
219
+ });
188
220
  await devServer.pluginContainer.buildStart({});
189
221
  const server = new import_server.ViteNodeServer(devServer);
190
222
  (0, import_source_map.installSourcemapsSupport)({
@@ -477,6 +509,7 @@ async function resolveConfig({
477
509
  );
478
510
  }
479
511
  let future = {
512
+ unstable_middleware: reactRouterUserConfig.future?.unstable_middleware ?? false,
480
513
  unstable_optimizeDeps: reactRouterUserConfig.future?.unstable_optimizeDeps ?? false,
481
514
  unstable_splitRouteModules: reactRouterUserConfig.future?.unstable_splitRouteModules ?? false,
482
515
  unstable_viteEnvironmentApi: reactRouterUserConfig.future?.unstable_viteEnvironmentApi ?? false
@@ -506,11 +539,7 @@ async function createConfigLoader({
506
539
  root = root ?? process.env.REACT_ROUTER_ROOT ?? process.cwd();
507
540
  let viteNodeContext = await createContext({
508
541
  root,
509
- mode: watch ? "development" : "production",
510
- server: !watch ? { watch: null } : {},
511
- ssr: {
512
- external: ssrExternals
513
- }
542
+ mode: watch ? "development" : "production"
514
543
  });
515
544
  let reactRouterConfigFile = findEntry(root, "react-router.config", {
516
545
  absolute: true
@@ -595,19 +624,6 @@ async function loadConfig({ rootDirectory }) {
595
624
  await configLoader.close();
596
625
  return config;
597
626
  }
598
- var ssrExternals = isReactRouterRepo() ? [
599
- // This is only needed within this repo because these packages
600
- // are linked to a directory outside of node_modules so Vite
601
- // treats them as internal code by default.
602
- "react-router",
603
- "react-router-dom",
604
- "@react-router/architect",
605
- "@react-router/cloudflare",
606
- "@react-router/dev",
607
- "@react-router/express",
608
- "@react-router/node",
609
- "@react-router/serve"
610
- ] : void 0;
611
627
  var entryExts = [".js", ".jsx", ".ts", ".tsx"];
612
628
  function findEntry(dir, basename, options) {
613
629
  for (let ext of entryExts) {
@@ -678,11 +694,14 @@ var cloudflareDevProxyVitePlugin = (options = {}) => {
678
694
  }
679
695
  },
680
696
  configureServer: async (viteDevServer) => {
681
- let { getPlatformProxy } = await importWrangler();
682
- let { dispose, ...cloudflare } = await getPlatformProxy(
683
- restOptions
684
- );
685
- let context = { cloudflare };
697
+ let context;
698
+ let getContext = async () => {
699
+ let { getPlatformProxy } = await importWrangler();
700
+ let { dispose, ...cloudflare } = await getPlatformProxy(
701
+ restOptions
702
+ );
703
+ return { cloudflare };
704
+ };
686
705
  return () => {
687
706
  if (!viteDevServer.config.server.middlewareMode) {
688
707
  viteDevServer.middlewares.use(async (nodeReq, nodeRes, next) => {
@@ -692,6 +711,7 @@ var cloudflareDevProxyVitePlugin = (options = {}) => {
692
711
  );
693
712
  let handler = (0, import_react_router.createRequestHandler)(build, "development");
694
713
  let req = fromNodeRequest(nodeReq, nodeRes);
714
+ context ??= await getContext();
695
715
  let loadContext = getLoadContext ? await getLoadContext({ request: req, context }) : context;
696
716
  let res = await handler(req, loadContext);
697
717
  await toNodeRequest(res, nodeRes);