one 1.1.381 → 1.1.382
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/cjs/Route.js.map +1 -1
- package/dist/cjs/Route.native.js.map +1 -1
- package/dist/cjs/cli/build.cjs +104 -71
- package/dist/cjs/cli/build.js +83 -43
- package/dist/cjs/cli/build.js.map +2 -2
- package/dist/cjs/cli/build.native.js +164 -69
- package/dist/cjs/cli/build.native.js.map +2 -2
- package/dist/cjs/cli/{run.cjs → dev.cjs} +7 -8
- package/dist/cjs/cli/{run.js → dev.js} +7 -8
- package/dist/cjs/cli/dev.js.map +6 -0
- package/dist/cjs/cli/{run.native.js → dev.native.js} +8 -9
- package/dist/cjs/cli/dev.native.js.map +6 -0
- package/dist/cjs/cli/main.cjs +2 -2
- package/dist/cjs/cli/main.js +2 -2
- package/dist/cjs/cli/main.native.js +2 -2
- package/dist/cjs/cli/main.native.js.map +1 -1
- package/dist/cjs/cli.cjs +3 -7
- package/dist/cjs/cli.js +2 -6
- package/dist/cjs/cli.js.map +2 -2
- package/dist/cjs/cli.native.js +2 -6
- package/dist/cjs/cli.native.js.map +2 -2
- package/dist/cjs/constants.cjs +3 -1
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js +3 -1
- package/dist/cjs/constants.native.js.map +2 -2
- package/dist/cjs/createHandleRequest.cjs +124 -87
- package/dist/cjs/createHandleRequest.js +129 -81
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +153 -96
- package/dist/cjs/createHandleRequest.native.js.map +2 -2
- package/dist/cjs/createMiddleware.cjs +28 -0
- package/dist/cjs/createMiddleware.js +23 -0
- package/dist/cjs/createMiddleware.js.map +6 -0
- package/dist/cjs/createMiddleware.native.js +28 -0
- package/dist/cjs/createMiddleware.native.js.map +6 -0
- package/dist/cjs/getRoutes.cjs +11 -18
- package/dist/cjs/getRoutes.js +13 -19
- package/dist/cjs/getRoutes.js.map +1 -1
- package/dist/cjs/getRoutes.native.js +20 -26
- package/dist/cjs/getRoutes.native.js.map +2 -2
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +3 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/serve-worker.cjs +5 -3
- package/dist/cjs/serve-worker.js +3 -3
- package/dist/cjs/serve-worker.js.map +1 -1
- package/dist/cjs/serve-worker.native.js +3 -3
- package/dist/cjs/serve-worker.native.js.map +2 -2
- package/dist/cjs/serve.cjs +12 -14
- package/dist/cjs/serve.js +12 -13
- package/dist/cjs/serve.js.map +1 -1
- package/dist/cjs/serve.native.js +12 -13
- package/dist/cjs/serve.native.js.map +2 -2
- package/dist/cjs/server/createRoutesManifest.js.map +1 -1
- package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
- package/dist/cjs/server/getServerManifest.cjs +7 -2
- package/dist/cjs/server/getServerManifest.js +7 -2
- package/dist/cjs/server/getServerManifest.js.map +1 -1
- package/dist/cjs/server/getServerManifest.native.js +23 -3
- package/dist/cjs/server/getServerManifest.native.js.map +2 -2
- package/dist/cjs/server/oneServe.cjs +82 -83
- package/dist/cjs/server/oneServe.js +95 -110
- package/dist/cjs/server/oneServe.js.map +2 -2
- package/dist/cjs/server/oneServe.native.js +101 -87
- package/dist/cjs/server/oneServe.native.js.map +2 -2
- package/dist/cjs/utils/getHonoPath.cjs +28 -0
- package/dist/cjs/utils/getHonoPath.js +23 -0
- package/dist/cjs/utils/getHonoPath.js.map +6 -0
- package/dist/cjs/utils/getHonoPath.native.js +28 -0
- package/dist/cjs/utils/getHonoPath.native.js.map +6 -0
- package/dist/cjs/utils/toAbsolute.cjs +27 -0
- package/dist/cjs/utils/toAbsolute.js +22 -0
- package/dist/cjs/utils/toAbsolute.js.map +6 -0
- package/dist/cjs/utils/toAbsolute.native.js +28 -0
- package/dist/cjs/utils/toAbsolute.native.js.map +6 -0
- package/dist/cjs/vite/one.cjs +4 -3
- package/dist/cjs/vite/one.js +4 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +4 -2
- package/dist/cjs/vite/one.native.js.map +2 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +7 -8
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +8 -9
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +8 -7
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
- package/dist/cjs/vite/resolveResponse.cjs +100 -0
- package/dist/cjs/vite/resolveResponse.js +79 -0
- package/dist/cjs/vite/resolveResponse.js.map +6 -0
- package/dist/cjs/vite/resolveResponse.native.js +94 -0
- package/dist/cjs/vite/resolveResponse.native.js.map +6 -0
- package/dist/cjs/vite/{headers.cjs → server.cjs} +5 -5
- package/dist/cjs/vite/{headers.js → server.js} +6 -6
- package/dist/cjs/vite/{headers.js.map → server.js.map} +2 -2
- package/dist/cjs/vite/{headers.native.js → server.native.js} +7 -7
- package/dist/cjs/vite/{headers.native.js.map → server.native.js.map} +3 -3
- package/dist/cjs/vite/types.native.js.map +1 -1
- package/dist/cjs/vite.cjs +2 -2
- package/dist/cjs/vite.js +2 -2
- package/dist/cjs/vite.js.map +1 -1
- package/dist/cjs/vite.native.js +3 -3
- package/dist/cjs/vite.native.js.map +1 -1
- package/dist/esm/Route.js.map +1 -1
- package/dist/esm/Route.mjs.map +1 -1
- package/dist/esm/Route.native.js.map +1 -1
- package/dist/esm/cli/build.js +81 -40
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +101 -68
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +163 -67
- package/dist/esm/cli/build.native.js.map +2 -2
- package/dist/esm/cli/{run.js → dev.js} +4 -5
- package/dist/esm/cli/dev.js.map +6 -0
- package/dist/esm/cli/{run.mjs → dev.mjs} +5 -6
- package/dist/esm/cli/dev.mjs.map +1 -0
- package/dist/esm/cli/{run.native.js → dev.native.js} +4 -5
- package/dist/esm/cli/dev.native.js.map +6 -0
- package/dist/esm/cli/main.js +2 -2
- package/dist/esm/cli/main.mjs +2 -2
- package/dist/esm/cli/main.mjs.map +1 -1
- package/dist/esm/cli/main.native.js +2 -2
- package/dist/esm/cli/main.native.js.map +1 -1
- package/dist/esm/cli.js +2 -6
- package/dist/esm/cli.js.map +2 -2
- package/dist/esm/cli.mjs +3 -7
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +2 -6
- package/dist/esm/cli.native.js.map +2 -2
- package/dist/esm/constants.js +2 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/constants.mjs +3 -2
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +2 -1
- package/dist/esm/constants.native.js.map +2 -2
- package/dist/esm/createHandleRequest.js +130 -81
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +118 -86
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +148 -95
- package/dist/esm/createHandleRequest.native.js.map +2 -2
- package/dist/esm/createMiddleware.js +7 -0
- package/dist/esm/createMiddleware.js.map +6 -0
- package/dist/esm/createMiddleware.mjs +5 -0
- package/dist/esm/createMiddleware.mjs.map +1 -0
- package/dist/esm/createMiddleware.native.js +7 -0
- package/dist/esm/createMiddleware.native.js.map +6 -0
- package/dist/esm/getRoutes.js +13 -19
- package/dist/esm/getRoutes.js.map +1 -1
- package/dist/esm/getRoutes.mjs +12 -18
- package/dist/esm/getRoutes.mjs.map +1 -1
- package/dist/esm/getRoutes.native.js +20 -25
- package/dist/esm/getRoutes.native.js.map +2 -2
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +2 -2
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/serve-worker.js +3 -2
- package/dist/esm/serve-worker.js.map +1 -1
- package/dist/esm/serve-worker.mjs +4 -2
- package/dist/esm/serve-worker.mjs.map +1 -1
- package/dist/esm/serve-worker.native.js +3 -2
- package/dist/esm/serve-worker.native.js.map +2 -2
- package/dist/esm/serve.js +12 -13
- package/dist/esm/serve.js.map +1 -1
- package/dist/esm/serve.mjs +12 -14
- package/dist/esm/serve.mjs.map +1 -1
- package/dist/esm/serve.native.js +12 -13
- package/dist/esm/serve.native.js.map +2 -2
- package/dist/esm/server/createRoutesManifest.js.map +1 -1
- package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
- package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
- package/dist/esm/server/getServerManifest.js +7 -2
- package/dist/esm/server/getServerManifest.js.map +1 -1
- package/dist/esm/server/getServerManifest.mjs +7 -2
- package/dist/esm/server/getServerManifest.mjs.map +1 -1
- package/dist/esm/server/getServerManifest.native.js +23 -3
- package/dist/esm/server/getServerManifest.native.js.map +2 -2
- package/dist/esm/server/oneServe.js +100 -110
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +82 -83
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +106 -87
- package/dist/esm/server/oneServe.native.js.map +2 -2
- package/dist/esm/utils/getHonoPath.js +7 -0
- package/dist/esm/utils/getHonoPath.js.map +6 -0
- package/dist/esm/utils/getHonoPath.mjs +5 -0
- package/dist/esm/utils/getHonoPath.mjs.map +1 -0
- package/dist/esm/utils/getHonoPath.native.js +7 -0
- package/dist/esm/utils/getHonoPath.native.js.map +6 -0
- package/dist/esm/utils/toAbsolute.js +6 -0
- package/dist/esm/utils/toAbsolute.js.map +6 -0
- package/dist/esm/utils/toAbsolute.mjs +4 -0
- package/dist/esm/utils/toAbsolute.mjs.map +1 -0
- package/dist/esm/utils/toAbsolute.native.js +8 -0
- package/dist/esm/utils/toAbsolute.native.js.map +6 -0
- package/dist/esm/vite/one.js +5 -3
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +4 -3
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +5 -3
- package/dist/esm/vite/one.native.js.map +2 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +7 -9
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +7 -8
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +7 -7
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
- package/dist/esm/vite/resolveResponse.js +64 -0
- package/dist/esm/vite/resolveResponse.js.map +6 -0
- package/dist/esm/vite/resolveResponse.mjs +76 -0
- package/dist/esm/vite/resolveResponse.mjs.map +1 -0
- package/dist/esm/vite/resolveResponse.native.js +73 -0
- package/dist/esm/vite/resolveResponse.native.js.map +6 -0
- package/dist/esm/vite/{headers.js → server.js} +3 -3
- package/dist/esm/vite/{headers.js.map → server.js.map} +2 -2
- package/dist/esm/vite/{headers.mjs → server.mjs} +3 -3
- package/dist/esm/vite/server.mjs.map +1 -0
- package/dist/esm/vite/{headers.native.js → server.native.js} +3 -3
- package/dist/esm/vite/{headers.native.js.map → server.native.js.map} +3 -3
- package/dist/esm/vite.js +2 -2
- package/dist/esm/vite.js.map +1 -1
- package/dist/esm/vite.mjs +2 -2
- package/dist/esm/vite.mjs.map +1 -1
- package/dist/esm/vite.native.js +2 -2
- package/dist/esm/vite.native.js.map +2 -2
- package/package.json +14 -13
- package/src/Route.tsx +2 -0
- package/src/cli/build.ts +113 -54
- package/src/cli/{run.ts → dev.ts} +1 -2
- package/src/cli/main.ts +2 -2
- package/src/cli.ts +2 -6
- package/src/constants.ts +2 -1
- package/src/createHandleRequest.ts +210 -126
- package/src/createMiddleware.ts +14 -0
- package/src/getRoutes.ts +27 -41
- package/src/index.ts +3 -0
- package/src/router/router.ts +1 -0
- package/src/serve-worker.ts +7 -2
- package/src/serve.ts +13 -14
- package/src/server/createRoutesManifest.ts +7 -0
- package/src/server/getServerManifest.ts +16 -0
- package/src/server/oneServe.ts +144 -150
- package/src/types.ts +0 -4
- package/src/utils/getHonoPath.ts +17 -0
- package/src/utils/toAbsolute.ts +3 -0
- package/src/vite/one.ts +13 -5
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +8 -15
- package/src/vite/resolveResponse.ts +93 -0
- package/src/vite/{headers.native.ts → server.native.ts} +1 -1
- package/src/vite/{headers.ts → server.ts} +1 -1
- package/src/vite/types.ts +12 -6
- package/src/vite.ts +1 -1
- package/types/Route.d.ts +2 -0
- package/types/Route.d.ts.map +1 -1
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/{run.d.ts → dev.d.ts} +2 -2
- package/types/cli/{run.d.ts.map → dev.d.ts.map} +1 -1
- package/types/constants.d.ts +1 -0
- package/types/constants.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts +19 -6
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/createMiddleware.d.ts +12 -0
- package/types/createMiddleware.d.ts.map +1 -0
- package/types/getRoutes.d.ts +0 -3
- package/types/getRoutes.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/layouts/Drawer.d.ts +2 -2
- package/types/layouts/Stack.d.ts +2 -2
- package/types/layouts/Tabs.d.ts +2 -2
- package/types/router/router.d.ts.map +1 -1
- package/types/serve-worker.d.ts +2 -1
- package/types/serve-worker.d.ts.map +1 -1
- package/types/serve.d.ts.map +1 -1
- package/types/server/createRoutesManifest.d.ts +6 -0
- package/types/server/createRoutesManifest.d.ts.map +1 -1
- package/types/server/getServerManifest.d.ts +2 -0
- package/types/server/getServerManifest.d.ts.map +1 -1
- package/types/server/oneServe.d.ts +1 -2
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/types.d.ts +0 -2
- package/types/types.d.ts.map +1 -1
- package/types/utils/getHonoPath.d.ts +2 -0
- package/types/utils/getHonoPath.d.ts.map +1 -0
- package/types/utils/toAbsolute.d.ts +2 -0
- package/types/utils/toAbsolute.d.ts.map +1 -0
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/resolveResponse.d.ts +3 -0
- package/types/vite/resolveResponse.d.ts.map +1 -0
- package/types/vite/{headers.d.ts → server.d.ts} +2 -2
- package/types/vite/server.d.ts.map +1 -0
- package/types/vite/{headers.native.d.ts → server.native.d.ts} +2 -2
- package/types/vite/server.native.d.ts.map +1 -0
- package/types/vite/types.d.ts +11 -5
- package/types/vite/types.d.ts.map +1 -1
- package/types/vite.d.ts +1 -1
- package/types/vite.d.ts.map +1 -1
- package/dist/cjs/cli/run.js.map +0 -6
- package/dist/cjs/cli/run.native.js.map +0 -6
- package/dist/cjs/vite/resolveAPIRequest.cjs +0 -90
- package/dist/cjs/vite/resolveAPIRequest.js +0 -71
- package/dist/cjs/vite/resolveAPIRequest.js.map +0 -6
- package/dist/cjs/vite/resolveAPIRequest.native.js +0 -84
- package/dist/cjs/vite/resolveAPIRequest.native.js.map +0 -6
- package/dist/esm/cli/run.js.map +0 -6
- package/dist/esm/cli/run.mjs.map +0 -1
- package/dist/esm/cli/run.native.js.map +0 -6
- package/dist/esm/vite/headers.mjs.map +0 -1
- package/dist/esm/vite/resolveAPIRequest.js +0 -56
- package/dist/esm/vite/resolveAPIRequest.js.map +0 -6
- package/dist/esm/vite/resolveAPIRequest.mjs +0 -67
- package/dist/esm/vite/resolveAPIRequest.mjs.map +0 -1
- package/dist/esm/vite/resolveAPIRequest.native.js +0 -64
- package/dist/esm/vite/resolveAPIRequest.native.js.map +0 -6
- package/src/vite/resolveAPIRequest.ts +0 -86
- package/types/vite/headers.d.ts.map +0 -1
- package/types/vite/headers.native.d.ts.map +0 -1
- package/types/vite/resolveAPIRequest.d.ts +0 -2
- package/types/vite/resolveAPIRequest.d.ts.map +0 -1
@@ -1,111 +1,143 @@
|
|
1
1
|
import { getPathFromLoaderPath } from "./cleanUrl.mjs";
|
2
2
|
import { LOADER_JS_POSTFIX_UNCACHED } from "./constants.mjs";
|
3
|
+
import { getHonoPath } from "./utils/getHonoPath.mjs";
|
3
4
|
import { isResponse } from "./utils/isResponse.mjs";
|
4
|
-
import { promiseWithResolvers } from "./utils/promiseWithResolvers.mjs";
|
5
5
|
import { getManifest } from "./vite/getManifest.mjs";
|
6
|
-
|
6
|
+
import { resolveAPIEndpoint, resolveResponse } from "./vite/resolveResponse.mjs";
|
7
|
+
async function runMiddlewares(handlers, request, route, getResponse) {
|
8
|
+
const middlewares = route.middlewares;
|
9
|
+
if (!middlewares?.length) return await getResponse();
|
10
|
+
if (!handlers.loadMiddleware) throw new Error("No middleware handler configured");
|
11
|
+
const context = {};
|
12
|
+
async function dispatch(index) {
|
13
|
+
const middlewareModule = middlewares[index];
|
14
|
+
if (!middlewareModule) return await getResponse();
|
15
|
+
const exported = (await handlers.loadMiddleware(middlewareModule))?.default;
|
16
|
+
if (!exported) throw new Error(`No valid export found in middleware: ${middlewareModule.contextKey}`);
|
17
|
+
const response = await exported({
|
18
|
+
request,
|
19
|
+
next: async () => dispatch(index + 1),
|
20
|
+
context
|
21
|
+
});
|
22
|
+
return response || dispatch(index + 1);
|
23
|
+
}
|
24
|
+
return dispatch(0);
|
25
|
+
}
|
26
|
+
async function resolveAPIRoute(handlers, request, url, route) {
|
27
|
+
const {
|
28
|
+
pathname
|
29
|
+
} = url,
|
30
|
+
params = getRouteParams(pathname, route);
|
31
|
+
try {
|
32
|
+
return resolveAPIEndpoint(() => handlers.handleAPI({
|
33
|
+
request,
|
34
|
+
route,
|
35
|
+
url,
|
36
|
+
loaderProps: {
|
37
|
+
path: pathname,
|
38
|
+
params
|
39
|
+
}
|
40
|
+
}), request, params || {});
|
41
|
+
} catch (err) {
|
42
|
+
if (isResponse(err)) return err;
|
43
|
+
throw process.env.NODE_ENV === "development" && console.error(`
|
44
|
+
[one] Error importing API route at ${pathname}:
|
45
|
+
|
46
|
+
${err}
|
47
|
+
|
48
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
49
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
50
|
+
`), err;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
async function resolveLoaderRoute(handlers, request, url, route) {
|
54
|
+
return await runMiddlewares(handlers, request, route, async () => await resolveResponse(async () => {
|
55
|
+
const headers = new Headers();
|
56
|
+
headers.set("Content-Type", "text/javascript");
|
57
|
+
try {
|
58
|
+
const loaderResponse = await handlers.handleLoader({
|
59
|
+
request,
|
60
|
+
route,
|
61
|
+
url,
|
62
|
+
loaderProps: {
|
63
|
+
path: url.pathname,
|
64
|
+
request: route.type === "ssr" ? request : void 0,
|
65
|
+
params: getLoaderParams(url, route)
|
66
|
+
}
|
67
|
+
});
|
68
|
+
return new Response(loaderResponse, {
|
69
|
+
headers
|
70
|
+
});
|
71
|
+
} catch (err) {
|
72
|
+
if (isResponse(err)) return err;
|
73
|
+
throw console.error(`Error running loader: ${err}`), err;
|
74
|
+
}
|
75
|
+
}));
|
76
|
+
}
|
77
|
+
async function resolvePageRoute(handlers, request, url, route) {
|
78
|
+
const {
|
79
|
+
pathname,
|
80
|
+
search
|
81
|
+
} = url;
|
82
|
+
return resolveResponse(async () => await runMiddlewares(handlers, request, route, async () => await handlers.handlePage({
|
83
|
+
request,
|
84
|
+
route,
|
85
|
+
url,
|
86
|
+
loaderProps: {
|
87
|
+
path: pathname + search,
|
88
|
+
params: getLoaderParams(url, route)
|
89
|
+
}
|
90
|
+
})));
|
91
|
+
}
|
92
|
+
function getURLfromRequestURL(request) {
|
93
|
+
const urlString = request.url || "";
|
94
|
+
return new URL(urlString || "", request.headers.get("host") ? `http://${request.headers.get("host")}` : "");
|
95
|
+
}
|
96
|
+
function compileRouteRegex(route) {
|
97
|
+
return {
|
98
|
+
...route,
|
99
|
+
compiledRegex: new RegExp(route.namedRegex),
|
100
|
+
honoPath: getHonoPath(route.page)
|
101
|
+
};
|
102
|
+
}
|
103
|
+
function compileManifest(manifest) {
|
104
|
+
return {
|
105
|
+
pageRoutes: manifest.pageRoutes.map(compileRouteRegex),
|
106
|
+
apiRoutes: manifest.apiRoutes.map(compileRouteRegex)
|
107
|
+
};
|
108
|
+
}
|
109
|
+
function createHandleRequest(handlers) {
|
7
110
|
const manifest = getManifest();
|
8
111
|
if (!manifest) throw new Error("No routes manifest");
|
9
|
-
const
|
10
|
-
...cur,
|
11
|
-
compiledRegex: new RegExp(cur.namedRegex)
|
12
|
-
}, acc), {}),
|
13
|
-
apiRoutesList = Object.values(apiRoutesMap),
|
14
|
-
activeRequests = {},
|
15
|
-
pageRoutes = manifest.pageRoutes.map(route => ({
|
16
|
-
...route,
|
17
|
-
workingRegex: new RegExp(route.namedRegex)
|
18
|
-
}));
|
112
|
+
const compiledManifest = compileManifest(manifest);
|
19
113
|
return {
|
20
114
|
manifest,
|
21
115
|
handler: async function (request) {
|
22
|
-
const
|
23
|
-
url = new URL(urlString || "", request.headers.get("host") ? `http://${request.headers.get("host")}` : ""),
|
116
|
+
const url = getURLfromRequestURL(request),
|
24
117
|
{
|
25
118
|
pathname,
|
26
119
|
search
|
27
120
|
} = url;
|
28
|
-
if (process.env.NODE_ENV !== "production" && activeRequests[pathname]) return await activeRequests[pathname];
|
29
121
|
if (pathname === "/__vxrnhmr" || pathname.startsWith("/@")) return null;
|
30
122
|
if (handlers.handleAPI) {
|
31
|
-
const apiRoute =
|
32
|
-
if (apiRoute)
|
33
|
-
const params = getRouteParams(pathname, apiRoute);
|
34
|
-
try {
|
35
|
-
return await handlers.handleAPI({
|
36
|
-
request,
|
37
|
-
route: apiRoute,
|
38
|
-
url,
|
39
|
-
loaderProps: {
|
40
|
-
path: pathname,
|
41
|
-
params
|
42
|
-
}
|
43
|
-
});
|
44
|
-
} catch (err) {
|
45
|
-
if (isResponse(err)) return err;
|
46
|
-
throw err;
|
47
|
-
}
|
48
|
-
}
|
123
|
+
const apiRoute = compiledManifest.apiRoutes.find(route => route.compiledRegex.test(pathname));
|
124
|
+
if (apiRoute) return await resolveAPIRoute(handlers, request, url, apiRoute);
|
49
125
|
}
|
50
126
|
if (request.method !== "GET") return null;
|
51
127
|
if (handlers.handleLoader && pathname.endsWith(LOADER_JS_POSTFIX_UNCACHED)) {
|
52
|
-
const originalUrl = getPathFromLoaderPath(pathname)
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
const headers = new Headers();
|
58
|
-
headers.set("Content-Type", "text/javascript");
|
59
|
-
try {
|
60
|
-
const loaderResponse = await handlers.handleLoader({
|
61
|
-
request,
|
62
|
-
route,
|
63
|
-
url,
|
64
|
-
loaderProps: {
|
65
|
-
path: finalUrl.pathname,
|
66
|
-
request: route.type === "ssr" ? request : void 0,
|
67
|
-
params: getLoaderParams(finalUrl, route)
|
68
|
-
}
|
69
|
-
});
|
70
|
-
return new Response(loaderResponse, {
|
71
|
-
headers
|
72
|
-
});
|
73
|
-
} catch (err) {
|
74
|
-
if (isResponse(err)) return err;
|
75
|
-
throw console.error(`Error running loader: ${err}`), err;
|
76
|
-
}
|
128
|
+
const originalUrl = getPathFromLoaderPath(pathname);
|
129
|
+
for (const route of compiledManifest.pageRoutes) {
|
130
|
+
if (route.file === "") continue;
|
131
|
+
const finalUrl = new URL(originalUrl, url.origin);
|
132
|
+
if (route.compiledRegex.test(finalUrl.pathname)) return resolveLoaderRoute(handlers, request, finalUrl, route);
|
77
133
|
}
|
78
134
|
return process.env.NODE_ENV === "development" && console.error("No matching route found!", {
|
79
135
|
originalUrl,
|
80
136
|
routes: manifest.pageRoutes
|
81
137
|
}), Response.error();
|
82
138
|
}
|
83
|
-
if (handlers.
|
84
|
-
const
|
85
|
-
promise,
|
86
|
-
reject,
|
87
|
-
resolve
|
88
|
-
} = promiseWithResolvers();
|
89
|
-
activeRequests[pathname] = promise;
|
90
|
-
try {
|
91
|
-
for (const route of pageRoutes) {
|
92
|
-
if (!route.workingRegex.test(pathname)) continue;
|
93
|
-
const ssrResponse = await handlers.handleSSR({
|
94
|
-
request,
|
95
|
-
route,
|
96
|
-
url,
|
97
|
-
loaderProps: {
|
98
|
-
path: pathname + search,
|
99
|
-
params: getLoaderParams(url, route)
|
100
|
-
}
|
101
|
-
});
|
102
|
-
return resolve(ssrResponse), ssrResponse;
|
103
|
-
}
|
104
|
-
} catch (err) {
|
105
|
-
throw reject(err), err;
|
106
|
-
} finally {
|
107
|
-
delete activeRequests[pathname];
|
108
|
-
}
|
139
|
+
if (handlers.handlePage) {
|
140
|
+
for (const route of compiledManifest.pageRoutes) if (route.compiledRegex.test(pathname)) return resolvePageRoute(handlers, request, url, route);
|
109
141
|
}
|
110
142
|
return null;
|
111
143
|
}
|
@@ -113,7 +145,7 @@ function createHandleRequest(options, handlers) {
|
|
113
145
|
}
|
114
146
|
function getLoaderParams(url, config) {
|
115
147
|
const params = {},
|
116
|
-
match = new RegExp(config.
|
148
|
+
match = new RegExp(config.compiledRegex).exec(url.pathname);
|
117
149
|
if (match?.groups) for (const [key, value] of Object.entries(match.groups)) {
|
118
150
|
const namedKey = config.routeKeys[key];
|
119
151
|
params[namedKey] = value;
|
@@ -124,5 +156,5 @@ function getRouteParams(pathname, route) {
|
|
124
156
|
const match = new RegExp(route.namedRegex).exec(pathname);
|
125
157
|
return match ? Object.fromEntries(Object.entries(route.routeKeys).map(([key, value]) => [value, match.groups?.[key] || ""])) : {};
|
126
158
|
}
|
127
|
-
export { createHandleRequest };
|
159
|
+
export { compileManifest, createHandleRequest, getURLfromRequestURL, resolveAPIRoute, resolveLoaderRoute, resolvePageRoute };
|
128
160
|
//# sourceMappingURL=createHandleRequest.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getPathFromLoaderPath","LOADER_JS_POSTFIX_UNCACHED","
|
1
|
+
{"version":3,"names":["getPathFromLoaderPath","LOADER_JS_POSTFIX_UNCACHED","getHonoPath","isResponse","getManifest","resolveAPIEndpoint","resolveResponse","runMiddlewares","handlers","request","route","getResponse","middlewares","length","loadMiddleware","Error","context","dispatch","index","middlewareModule","exported","default","contextKey","response","next","resolveAPIRoute","url","pathname","params","getRouteParams","handleAPI","loaderProps","path","err","process","env","NODE_ENV","console","error","resolveLoaderRoute","headers","Headers","set","loaderResponse","handleLoader","type","getLoaderParams","Response","resolvePageRoute","search","handlePage","getURLfromRequestURL","urlString","URL","get","compileRouteRegex","compiledRegex","RegExp","namedRegex","honoPath","page","compileManifest","manifest","pageRoutes","map","apiRoutes","createHandleRequest","compiledManifest","handler","startsWith","apiRoute","find","test","method","endsWith","originalUrl","file","finalUrl","origin","routes","config","match","exec","groups","key","value","Object","entries","namedKey","routeKeys","fromEntries"],"sources":["../../src/createHandleRequest.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -1,87 +1,153 @@
|
|
1
1
|
import { getPathFromLoaderPath } from "./cleanUrl";
|
2
2
|
import { LOADER_JS_POSTFIX_UNCACHED } from "./constants";
|
3
|
+
import { getHonoPath } from "./utils/getHonoPath";
|
3
4
|
import { isResponse } from "./utils/isResponse";
|
4
|
-
import { promiseWithResolvers } from "./utils/promiseWithResolvers";
|
5
5
|
import { getManifest } from "./vite/getManifest";
|
6
|
-
|
6
|
+
import { resolveAPIEndpoint, resolveResponse } from "./vite/resolveResponse";
|
7
|
+
async function runMiddlewares(handlers, request, route, getResponse) {
|
8
|
+
var middlewares = route.middlewares;
|
9
|
+
if (!middlewares?.length)
|
10
|
+
return await getResponse();
|
11
|
+
if (!handlers.loadMiddleware)
|
12
|
+
throw new Error("No middleware handler configured");
|
13
|
+
var context = {};
|
14
|
+
async function dispatch(index) {
|
15
|
+
var _this, middlewareModule = middlewares[index];
|
16
|
+
if (!middlewareModule)
|
17
|
+
return await getResponse();
|
18
|
+
var exported = (_this = await handlers.loadMiddleware(middlewareModule)) === null || _this === void 0 ? void 0 : _this.default;
|
19
|
+
if (!exported)
|
20
|
+
throw new Error(`No valid export found in middleware: ${middlewareModule.contextKey}`);
|
21
|
+
var next = async function() {
|
22
|
+
return dispatch(index + 1);
|
23
|
+
}, response = await exported({
|
24
|
+
request,
|
25
|
+
next,
|
26
|
+
context
|
27
|
+
});
|
28
|
+
return response || dispatch(index + 1);
|
29
|
+
}
|
30
|
+
return dispatch(0);
|
31
|
+
}
|
32
|
+
async function resolveAPIRoute(handlers, request, url, route) {
|
33
|
+
var { pathname } = url, params = getRouteParams(pathname, route);
|
34
|
+
try {
|
35
|
+
return resolveAPIEndpoint(function() {
|
36
|
+
return handlers.handleAPI({
|
37
|
+
request,
|
38
|
+
route,
|
39
|
+
url,
|
40
|
+
loaderProps: {
|
41
|
+
path: pathname,
|
42
|
+
params
|
43
|
+
}
|
44
|
+
});
|
45
|
+
}, request, params || {});
|
46
|
+
} catch (err) {
|
47
|
+
if (isResponse(err))
|
48
|
+
return err;
|
49
|
+
throw process.env.NODE_ENV === "development" && console.error(`
|
50
|
+
[one] Error importing API route at ${pathname}:
|
51
|
+
|
52
|
+
${err}
|
53
|
+
|
54
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
55
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
56
|
+
`), err;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
async function resolveLoaderRoute(handlers, request, url, route) {
|
60
|
+
return await runMiddlewares(handlers, request, route, async function() {
|
61
|
+
return await resolveResponse(async function() {
|
62
|
+
var headers = new Headers();
|
63
|
+
headers.set("Content-Type", "text/javascript");
|
64
|
+
try {
|
65
|
+
var loaderResponse = await handlers.handleLoader({
|
66
|
+
request,
|
67
|
+
route,
|
68
|
+
url,
|
69
|
+
loaderProps: {
|
70
|
+
path: url.pathname,
|
71
|
+
request: route.type === "ssr" ? request : void 0,
|
72
|
+
params: getLoaderParams(url, route)
|
73
|
+
}
|
74
|
+
});
|
75
|
+
return new Response(loaderResponse, {
|
76
|
+
headers
|
77
|
+
});
|
78
|
+
} catch (err) {
|
79
|
+
if (isResponse(err))
|
80
|
+
return err;
|
81
|
+
throw console.error(`Error running loader: ${err}`), err;
|
82
|
+
}
|
83
|
+
});
|
84
|
+
});
|
85
|
+
}
|
86
|
+
async function resolvePageRoute(handlers, request, url, route) {
|
87
|
+
var { pathname, search } = url;
|
88
|
+
return resolveResponse(async function() {
|
89
|
+
var resolved = await runMiddlewares(handlers, request, route, async function() {
|
90
|
+
return await handlers.handlePage({
|
91
|
+
request,
|
92
|
+
route,
|
93
|
+
url,
|
94
|
+
loaderProps: {
|
95
|
+
path: pathname + search,
|
96
|
+
params: getLoaderParams(url, route)
|
97
|
+
}
|
98
|
+
});
|
99
|
+
});
|
100
|
+
return resolved;
|
101
|
+
});
|
102
|
+
}
|
103
|
+
function getURLfromRequestURL(request) {
|
104
|
+
var urlString = request.url || "";
|
105
|
+
return new URL(urlString || "", request.headers.get("host") ? `http://${request.headers.get("host")}` : "");
|
106
|
+
}
|
107
|
+
function compileRouteRegex(route) {
|
108
|
+
return {
|
109
|
+
...route,
|
110
|
+
compiledRegex: new RegExp(route.namedRegex),
|
111
|
+
honoPath: getHonoPath(route.page)
|
112
|
+
};
|
113
|
+
}
|
114
|
+
function compileManifest(manifest) {
|
115
|
+
return {
|
116
|
+
pageRoutes: manifest.pageRoutes.map(compileRouteRegex),
|
117
|
+
apiRoutes: manifest.apiRoutes.map(compileRouteRegex)
|
118
|
+
};
|
119
|
+
}
|
120
|
+
function createHandleRequest(handlers) {
|
7
121
|
var manifest = getManifest();
|
8
122
|
if (!manifest)
|
9
123
|
throw new Error("No routes manifest");
|
10
|
-
var
|
11
|
-
return acc[cur.page] = {
|
12
|
-
...cur,
|
13
|
-
compiledRegex: new RegExp(cur.namedRegex)
|
14
|
-
}, acc;
|
15
|
-
}, {}), apiRoutesList = Object.values(apiRoutesMap), activeRequests = {}, pageRoutes = manifest.pageRoutes.map(function(route) {
|
16
|
-
return {
|
17
|
-
...route,
|
18
|
-
workingRegex: new RegExp(route.namedRegex)
|
19
|
-
};
|
20
|
-
});
|
124
|
+
var compiledManifest = compileManifest(manifest);
|
21
125
|
return {
|
22
126
|
manifest,
|
23
127
|
handler: async function(request) {
|
24
|
-
var
|
25
|
-
if (process.env.NODE_ENV !== "production" && activeRequests[pathname])
|
26
|
-
return await activeRequests[pathname];
|
128
|
+
var url = getURLfromRequestURL(request), { pathname, search } = url;
|
27
129
|
if (pathname === "/__vxrnhmr" || pathname.startsWith("/@"))
|
28
130
|
return null;
|
29
131
|
if (handlers.handleAPI) {
|
30
|
-
var apiRoute =
|
31
|
-
|
32
|
-
return regex.test(pathname);
|
132
|
+
var apiRoute = compiledManifest.apiRoutes.find(function(route2) {
|
133
|
+
return route2.compiledRegex.test(pathname);
|
33
134
|
});
|
34
|
-
if (apiRoute)
|
35
|
-
|
36
|
-
try {
|
37
|
-
return await handlers.handleAPI({
|
38
|
-
request,
|
39
|
-
route: apiRoute,
|
40
|
-
url,
|
41
|
-
loaderProps: {
|
42
|
-
path: pathname,
|
43
|
-
params
|
44
|
-
}
|
45
|
-
});
|
46
|
-
} catch (err) {
|
47
|
-
if (isResponse(err))
|
48
|
-
return err;
|
49
|
-
throw err;
|
50
|
-
}
|
51
|
-
}
|
135
|
+
if (apiRoute)
|
136
|
+
return await resolveAPIRoute(handlers, request, url, apiRoute);
|
52
137
|
}
|
53
138
|
if (request.method !== "GET")
|
54
139
|
return null;
|
55
140
|
if (handlers.handleLoader) {
|
56
141
|
var isClientRequestingNewRoute = pathname.endsWith(LOADER_JS_POSTFIX_UNCACHED);
|
57
142
|
if (isClientRequestingNewRoute) {
|
58
|
-
var originalUrl = getPathFromLoaderPath(pathname),
|
143
|
+
var originalUrl = getPathFromLoaderPath(pathname), _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
59
144
|
try {
|
60
|
-
for (var _iterator = pageRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
145
|
+
for (var _iterator = compiledManifest.pageRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
61
146
|
var route = _step.value;
|
62
|
-
if (route.file !== ""
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
try {
|
67
|
-
var loaderResponse = await handlers.handleLoader({
|
68
|
-
request,
|
69
|
-
route,
|
70
|
-
url,
|
71
|
-
loaderProps: {
|
72
|
-
path: finalUrl.pathname,
|
73
|
-
request: route.type === "ssr" ? request : void 0,
|
74
|
-
params: getLoaderParams(finalUrl, route)
|
75
|
-
}
|
76
|
-
});
|
77
|
-
return new Response(loaderResponse, {
|
78
|
-
headers
|
79
|
-
});
|
80
|
-
} catch (err) {
|
81
|
-
if (isResponse(err))
|
82
|
-
return err;
|
83
|
-
throw console.error(`Error running loader: ${err}`), err;
|
84
|
-
}
|
147
|
+
if (route.file !== "") {
|
148
|
+
var finalUrl = new URL(originalUrl, url.origin);
|
149
|
+
if (route.compiledRegex.test(finalUrl.pathname))
|
150
|
+
return resolveLoaderRoute(handlers, request, finalUrl, route);
|
85
151
|
}
|
86
152
|
}
|
87
153
|
} catch (err) {
|
@@ -100,41 +166,23 @@ function createHandleRequest(options, handlers) {
|
|
100
166
|
}), Response.error();
|
101
167
|
}
|
102
168
|
}
|
103
|
-
if (handlers.
|
104
|
-
var
|
105
|
-
activeRequests[pathname] = promise;
|
169
|
+
if (handlers.handlePage) {
|
170
|
+
var _iteratorNormalCompletion1 = !0, _didIteratorError1 = !1, _iteratorError1 = void 0;
|
106
171
|
try {
|
107
|
-
var
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
if (route1.workingRegex.test(pathname)) {
|
112
|
-
var ssrResponse = await handlers.handleSSR({
|
113
|
-
request,
|
114
|
-
route: route1,
|
115
|
-
url,
|
116
|
-
loaderProps: {
|
117
|
-
path: pathname + search,
|
118
|
-
params: getLoaderParams(url, route1)
|
119
|
-
}
|
120
|
-
});
|
121
|
-
return resolve(ssrResponse), ssrResponse;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
} catch (err) {
|
125
|
-
_didIteratorError1 = !0, _iteratorError1 = err;
|
126
|
-
} finally {
|
127
|
-
try {
|
128
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
129
|
-
} finally {
|
130
|
-
if (_didIteratorError1)
|
131
|
-
throw _iteratorError1;
|
132
|
-
}
|
172
|
+
for (var _iterator1 = compiledManifest.pageRoutes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
|
173
|
+
var route1 = _step1.value;
|
174
|
+
if (route1.compiledRegex.test(pathname))
|
175
|
+
return resolvePageRoute(handlers, request, url, route1);
|
133
176
|
}
|
134
177
|
} catch (err) {
|
135
|
-
|
178
|
+
_didIteratorError1 = !0, _iteratorError1 = err;
|
136
179
|
} finally {
|
137
|
-
|
180
|
+
try {
|
181
|
+
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
182
|
+
} finally {
|
183
|
+
if (_didIteratorError1)
|
184
|
+
throw _iteratorError1;
|
185
|
+
}
|
138
186
|
}
|
139
187
|
}
|
140
188
|
return null;
|
@@ -142,7 +190,7 @@ function createHandleRequest(options, handlers) {
|
|
142
190
|
};
|
143
191
|
}
|
144
192
|
function getLoaderParams(url, config) {
|
145
|
-
var params = {}, match = new RegExp(config.
|
193
|
+
var params = {}, match = new RegExp(config.compiledRegex).exec(url.pathname);
|
146
194
|
if (match?.groups) {
|
147
195
|
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
148
196
|
try {
|
@@ -174,6 +222,11 @@ function getRouteParams(pathname, route) {
|
|
174
222
|
})) : {};
|
175
223
|
}
|
176
224
|
export {
|
177
|
-
|
225
|
+
compileManifest,
|
226
|
+
createHandleRequest,
|
227
|
+
getURLfromRequestURL,
|
228
|
+
resolveAPIRoute,
|
229
|
+
resolveLoaderRoute,
|
230
|
+
resolvePageRoute
|
178
231
|
};
|
179
232
|
//# sourceMappingURL=createHandleRequest.js.map
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../src/Users/n8/one/packages/one/src/createHandleRequest.ts"],
|
4
|
-
"mappings": "AAAA,SAASA,6BAA6B;AACtC,SAASC,kCAAkC;
|
5
|
-
"names": ["getPathFromLoaderPath", "LOADER_JS_POSTFIX_UNCACHED", "
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["getPathFromLoaderPath", "LOADER_JS_POSTFIX_UNCACHED", "getHonoPath", "isResponse", "getManifest", "resolveAPIEndpoint", "resolveResponse", "runMiddlewares", "handlers", "request", "route", "getResponse", "middlewares", "length", "loadMiddleware", "Error", "context", "dispatch", "index", "middlewareModule", "exported", "default", "contextKey", "next", "response", "resolveAPIRoute", "url", "pathname", "params", "getRouteParams", "handleAPI", "loaderProps", "path", "err", "process", "env", "NODE_ENV", "console", "error", "resolveLoaderRoute", "headers", "Headers", "set", "loaderResponse", "handleLoader", "type", "undefined", "getLoaderParams", "Response", "resolvePageRoute", "search", "resolved", "handlePage", "getURLfromRequestURL", "urlString", "URL", "get", "compileRouteRegex", "compiledRegex", "RegExp", "namedRegex", "honoPath", "page", "compileManifest", "manifest", "pageRoutes", "map", "apiRoutes", "createHandleRequest", "compiledManifest", "handler", "startsWith", "apiRoute", "find", "test", "method", "isClientRequestingNewRoute", "endsWith", "originalUrl", "file", "finalUrl", "origin", "routes", "config", "match", "exec", "groups", "Object", "entries", "key", "value", "namedKey", "routeKeys", "regex", "fromEntries"]
|
6
6
|
}
|