@nuxt/vite-builder-nightly 4.2.1-29373901.6b5d7717 → 4.2.1-29374244.8539fe46

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 (2) hide show
  1. package/dist/index.mjs +53 -23
  2. package/package.json +4 -4
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ import { unlink, mkdir, writeFile, rm, readFile } from 'node:fs/promises';
17
17
  import net from 'node:net';
18
18
  import os from 'node:os';
19
19
  import { Buffer } from 'node:buffer';
20
- import { createError, defineEventHandler, handleCors, setHeader } from 'h3';
20
+ import { createError, defineLazyEventHandler, defineEventHandler, handleCors, setHeader } from 'h3';
21
21
  import { ViteNodeServer } from 'vite-node/server';
22
22
  import { normalizeViteManifest, precomputeDependencies } from 'vue-bundle-renderer';
23
23
  import { provider, hasTTY, isCI } from 'std-env';
@@ -975,34 +975,64 @@ function DevServerPlugin(nuxt) {
975
975
  ));
976
976
  }
977
977
  }
978
- const viteMiddleware = defineEventHandler(async (event) => {
979
- const viteRoutes = [];
980
- for (const viteRoute of viteServer.middlewares.stack) {
981
- const m = viteRoute.route;
982
- if (m.length > 1) {
983
- viteRoutes.push(m);
978
+ const viteMiddleware = defineLazyEventHandler(() => {
979
+ const proxyConfig = viteServer.config.server.proxy;
980
+ const proxyPatterns = [];
981
+ if (proxyConfig) {
982
+ for (const key in proxyConfig) {
983
+ if (key.startsWith("^")) {
984
+ try {
985
+ proxyPatterns.push({ type: "regex", value: new RegExp(key) });
986
+ } catch {
987
+ }
988
+ } else {
989
+ proxyPatterns.push({ type: "string", value: key });
990
+ }
984
991
  }
985
992
  }
986
- if (!event.path.startsWith(viteServer.config.base) && !viteRoutes.some((route) => event.path.startsWith(route))) {
987
- event.node.req._skip_transform = true;
988
- } else if (!useViteCors) {
989
- const isPreflight = handleCors(event, nuxt.options.devServer.cors);
990
- if (isPreflight) {
991
- return null;
993
+ function isProxyPath(path) {
994
+ for (const pattern of proxyPatterns) {
995
+ if (pattern.type === "regex" && pattern.value.test(path)) {
996
+ return true;
997
+ } else if (pattern.type === "string" && path.startsWith(pattern.value)) {
998
+ return true;
999
+ }
992
1000
  }
993
- setHeader(event, "Vary", "Origin");
1001
+ return false;
994
1002
  }
995
- const _originalPath = event.node.req.url;
996
- await new Promise((resolve, reject) => {
997
- viteServer.middlewares.handle(event.node.req, event.node.res, (err) => {
998
- event.node.req.url = _originalPath;
999
- return err ? reject(err) : resolve(null);
1003
+ return defineEventHandler(async (event) => {
1004
+ const isBasePath = event.path.startsWith(viteServer.config.base);
1005
+ let isViteRoute = isBasePath;
1006
+ if (!isViteRoute) {
1007
+ for (const viteRoute of viteServer.middlewares.stack) {
1008
+ if (viteRoute.route.length > 1 && event.path.startsWith(viteRoute.route)) {
1009
+ isViteRoute = true;
1010
+ break;
1011
+ }
1012
+ }
1013
+ isViteRoute ||= isProxyPath(event.path);
1014
+ }
1015
+ if (!isViteRoute) {
1016
+ event.node.req._skip_transform = true;
1017
+ } else if (!useViteCors) {
1018
+ const isPreflight = handleCors(event, nuxt.options.devServer.cors);
1019
+ if (isPreflight) {
1020
+ return null;
1021
+ }
1022
+ setHeader(event, "Vary", "Origin");
1023
+ }
1024
+ const _originalPath = event.node.req.url;
1025
+ await new Promise((resolve, reject) => {
1026
+ viteServer.middlewares.handle(event.node.req, event.node.res, (err) => {
1027
+ event.node.req.url = _originalPath;
1028
+ return err ? reject(err) : resolve(null);
1029
+ });
1000
1030
  });
1031
+ const ended = event.node.res.writableEnded || event.handled;
1032
+ if (!ended && event.path.startsWith(nuxt.options.app.buildAssetsDir) && !staticBases.some((baseURL) => event.path.startsWith(baseURL)) && !devHandlerRegexes.some((regex) => regex.test(event.path))) {
1033
+ throw createError({ statusCode: 404 });
1034
+ }
1001
1035
  });
1002
- const ended = event.node.res.writableEnded || event.handled;
1003
- if (!ended && event.path.startsWith(nuxt.options.app.buildAssetsDir) && !staticBases.some((baseURL) => event.path.startsWith(baseURL)) && !devHandlerRegexes.some((regex) => regex.test(event.path))) {
1004
- throw createError({ statusCode: 404 });
1005
- }
1006
1036
  });
1007
1037
  await nuxt.callHook("server:devHandler", viteMiddleware);
1008
1038
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxt/vite-builder-nightly",
3
- "version": "4.2.1-29373901.6b5d7717",
3
+ "version": "4.2.1-29374244.8539fe46",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nuxt/nuxt.git",
@@ -21,7 +21,7 @@
21
21
  "dist"
22
22
  ],
23
23
  "devDependencies": {
24
- "@nuxt/schema": "npm:@nuxt/schema-nightly@4.2.1-29373901.6b5d7717",
24
+ "@nuxt/schema": "npm:@nuxt/schema-nightly@4.2.1-29374244.8539fe46",
25
25
  "nitropack": "2.12.9",
26
26
  "rolldown": "1.0.0-beta.46",
27
27
  "rollup": "4.52.5",
@@ -29,7 +29,7 @@
29
29
  "vue": "3.5.22"
30
30
  },
31
31
  "dependencies": {
32
- "@nuxt/kit": "npm:@nuxt/kit-nightly@4.2.1-29373901.6b5d7717",
32
+ "@nuxt/kit": "npm:@nuxt/kit-nightly@4.2.1-29374244.8539fe46",
33
33
  "@rollup/plugin-replace": "^6.0.3",
34
34
  "@vitejs/plugin-vue": "^6.0.1",
35
35
  "@vitejs/plugin-vue-jsx": "^5.1.1",
@@ -61,7 +61,7 @@
61
61
  "vue-bundle-renderer": "^2.2.0"
62
62
  },
63
63
  "peerDependencies": {
64
- "nuxt": "npm:nuxt-nightly@4.2.1-29373901.6b5d7717",
64
+ "nuxt": "npm:nuxt-nightly@4.2.1-29374244.8539fe46",
65
65
  "rolldown": "^1.0.0-beta.38",
66
66
  "vue": "^3.3.4"
67
67
  },