@react-router/dev 0.0.0-experimental-8677247c0 → 0.0.0-experimental-c10e297a4

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/cli/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @react-router/dev v0.0.0-experimental-8677247c0
3
+ * @react-router/dev v0.0.0-experimental-c10e297a4
4
4
  *
5
5
  * Copyright (c) Remix Software Inc.
6
6
  *
package/dist/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-8677247c0
2
+ * @react-router/dev v0.0.0-experimental-c10e297a4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/routes.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-8677247c0
2
+ * @react-router/dev v0.0.0-experimental-c10e297a4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-8677247c0
2
+ * @react-router/dev v0.0.0-experimental-c10e297a4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-8677247c0
2
+ * @react-router/dev v0.0.0-experimental-c10e297a4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1047,27 +1047,35 @@ var groupRoutesByParentId = (manifest) => {
1047
1047
  });
1048
1048
  return routes;
1049
1049
  };
1050
- var createRoutes = (manifest, parentId = "", routesByParentId = groupRoutesByParentId(manifest)) => {
1050
+ var createRoutesWithChildren = (manifest, parentId = "", routesByParentId = groupRoutesByParentId(manifest)) => {
1051
1051
  return (routesByParentId[parentId] || []).map((route) => ({
1052
1052
  ...route,
1053
- children: createRoutes(manifest, route.id, routesByParentId)
1053
+ ...route.index ? {
1054
+ index: true
1055
+ } : {
1056
+ index: false,
1057
+ children: createRoutesWithChildren(
1058
+ manifest,
1059
+ route.id,
1060
+ routesByParentId
1061
+ )
1062
+ }
1054
1063
  }));
1055
1064
  };
1056
- var getStylesForUrl = async ({
1065
+ var getStylesForPathname = async ({
1057
1066
  viteDevServer,
1058
1067
  rootDirectory,
1059
1068
  reactRouterConfig,
1060
1069
  entryClientFilePath,
1061
1070
  loadCssContents,
1062
- build,
1063
- url: url2
1071
+ pathname
1064
1072
  }) => {
1065
- if (url2 === void 0 || url2.includes("?_data=")) {
1073
+ if (pathname === void 0 || pathname.includes("?_data=")) {
1066
1074
  return void 0;
1067
1075
  }
1068
- let routes = createRoutes(build.routes);
1076
+ let routesWithChildren = createRoutesWithChildren(reactRouterConfig.routes);
1069
1077
  let appPath = path5.relative(process.cwd(), reactRouterConfig.appDirectory);
1070
- let documentRouteFiles = (0, import_react_router.matchRoutes)(routes, url2, build.basename)?.map(
1078
+ let documentRouteFiles = (0, import_react_router.matchRoutes)(routesWithChildren, pathname, reactRouterConfig.basename)?.map(
1071
1079
  (match) => path5.resolve(appPath, reactRouterConfig.routes[match.route.id].file)
1072
1080
  ) ?? [];
1073
1081
  let styles = await getStylesForFiles({
@@ -2227,10 +2235,10 @@ var reactRouterVitePlugin = () => {
2227
2235
  routes
2228
2236
  );
2229
2237
  return `
2230
- import * as entryServer from ${JSON.stringify(
2238
+ import * as entryServer from ${JSON.stringify(
2231
2239
  resolveFileUrl(ctx, ctx.entryServerFilePath)
2232
2240
  )};
2233
- ${Object.keys(routes).map((key, index) => {
2241
+ ${Object.keys(routes).map((key, index) => {
2234
2242
  let route = routes[key];
2235
2243
  return `import * as route${index} from ${JSON.stringify(
2236
2244
  resolveFileUrl(
@@ -2267,7 +2275,15 @@ var reactRouterVitePlugin = () => {
2267
2275
  module: route${index}
2268
2276
  }`;
2269
2277
  }).join(",\n ")}
2270
- };`;
2278
+ };
2279
+ ${ctx.reactRouterConfig.future.unstable_viteEnvironmentApi && viteCommand === "serve" ? `
2280
+ export const getCriticalCss = ({ pathname }) => {
2281
+ return {
2282
+ rel: "stylesheet",
2283
+ href: "${viteUserConfig.base ?? "/"}@react-router/critical.css?pathname=" + pathname,
2284
+ };
2285
+ }
2286
+ ` : ""}`;
2271
2287
  };
2272
2288
  let loadViteManifest = async (directory) => {
2273
2289
  let manifestContents = await fse.readFile(
@@ -2747,15 +2763,14 @@ var reactRouterVitePlugin = () => {
2747
2763
  (0, import_react_router2.unstable_setDevServerHooks)({
2748
2764
  // Give the request handler access to the critical CSS in dev to avoid a
2749
2765
  // flash of unstyled content since Vite injects CSS file contents via JS
2750
- getCriticalCss: async (build, url2) => {
2751
- return getStylesForUrl({
2766
+ getCriticalCss: async (pathname) => {
2767
+ return getStylesForPathname({
2752
2768
  rootDirectory: ctx.rootDirectory,
2753
2769
  entryClientFilePath: ctx.entryClientFilePath,
2754
2770
  reactRouterConfig: ctx.reactRouterConfig,
2755
2771
  viteDevServer,
2756
2772
  loadCssContents,
2757
- build,
2758
- url: url2
2773
+ pathname
2759
2774
  });
2760
2775
  },
2761
2776
  // If an error is caught within the request handler, let Vite fix the
@@ -2799,6 +2814,27 @@ var reactRouterVitePlugin = () => {
2799
2814
  }
2800
2815
  );
2801
2816
  return () => {
2817
+ viteDevServer.middlewares.use(async (req, res, next) => {
2818
+ let [reqPathname, reqSearch] = (req.url ?? "").split("?");
2819
+ if (reqPathname === "/@react-router/critical.css") {
2820
+ let pathname = new URLSearchParams(reqSearch).get("pathname");
2821
+ if (!pathname) {
2822
+ return next("No pathname provided");
2823
+ }
2824
+ let css = await getStylesForPathname({
2825
+ rootDirectory: ctx.rootDirectory,
2826
+ entryClientFilePath: ctx.entryClientFilePath,
2827
+ reactRouterConfig: ctx.reactRouterConfig,
2828
+ viteDevServer,
2829
+ loadCssContents,
2830
+ pathname
2831
+ });
2832
+ res.setHeader("Content-Type", "text/css");
2833
+ res.end(css);
2834
+ } else {
2835
+ next();
2836
+ }
2837
+ });
2802
2838
  if (!viteDevServer.config.server.middlewareMode) {
2803
2839
  viteDevServer.middlewares.use(async (req, res, next) => {
2804
2840
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-router/dev",
3
- "version": "0.0.0-experimental-8677247c0",
3
+ "version": "0.0.0-experimental-c10e297a4",
4
4
  "description": "Dev tools and CLI for React Router",
5
5
  "homepage": "https://reactrouter.com",
6
6
  "bugs": {
@@ -88,7 +88,7 @@
88
88
  "set-cookie-parser": "^2.6.0",
89
89
  "valibot": "^0.41.0",
90
90
  "vite-node": "3.0.0-beta.2",
91
- "@react-router/node": "0.0.0-experimental-8677247c0"
91
+ "@react-router/node": "0.0.0-experimental-c10e297a4"
92
92
  },
93
93
  "devDependencies": {
94
94
  "@types/babel__core": "^7.20.5",
@@ -117,15 +117,15 @@
117
117
  "vite": "^6.0.0",
118
118
  "wireit": "0.14.9",
119
119
  "wrangler": "^3.28.2",
120
- "@react-router/serve": "0.0.0-experimental-8677247c0",
121
- "react-router": "^0.0.0-experimental-8677247c0"
120
+ "@react-router/serve": "0.0.0-experimental-c10e297a4",
121
+ "react-router": "^0.0.0-experimental-c10e297a4"
122
122
  },
123
123
  "peerDependencies": {
124
124
  "typescript": "^5.1.0",
125
125
  "vite": "^5.1.0 || ^6.0.0",
126
126
  "wrangler": "^3.28.2",
127
- "@react-router/serve": "^0.0.0-experimental-8677247c0",
128
- "react-router": "^0.0.0-experimental-8677247c0"
127
+ "@react-router/serve": "^0.0.0-experimental-c10e297a4",
128
+ "react-router": "^0.0.0-experimental-c10e297a4"
129
129
  },
130
130
  "peerDependenciesMeta": {
131
131
  "@react-router/serve": {