one 1.1.482 → 1.1.484

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 (134) hide show
  1. package/dist/cjs/cli/build.cjs +5 -41
  2. package/dist/cjs/cli/build.js +4 -44
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +4 -42
  5. package/dist/cjs/cli/build.native.js.map +2 -2
  6. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  7. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  8. package/dist/cjs/server/getServerManifest.cjs +15 -7
  9. package/dist/cjs/server/getServerManifest.js +17 -8
  10. package/dist/cjs/server/getServerManifest.js.map +1 -1
  11. package/dist/cjs/server/getServerManifest.native.js +8 -5
  12. package/dist/cjs/server/getServerManifest.native.js.map +2 -2
  13. package/dist/cjs/utils/getPathnameFromFilePath.cjs +76 -0
  14. package/dist/cjs/utils/getPathnameFromFilePath.js +70 -0
  15. package/dist/cjs/utils/getPathnameFromFilePath.js.map +6 -0
  16. package/dist/cjs/utils/getPathnameFromFilePath.native.js +73 -0
  17. package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +6 -0
  18. package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +38 -8
  19. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +48 -17
  20. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  21. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +50 -7
  22. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +2 -2
  23. package/dist/cjs/vercel/build/config/vc-build-output-config-base.cjs +9 -6
  24. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js +7 -6
  25. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  26. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js +4 -9
  27. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +2 -2
  28. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +54 -9
  29. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +83 -15
  30. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +2 -2
  31. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +73 -9
  32. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +2 -2
  33. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +9 -6
  34. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +8 -6
  35. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  36. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +8 -6
  37. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +2 -2
  38. package/dist/cjs/vercel/build/getPathFromRoute.cjs +31 -0
  39. package/dist/cjs/vercel/build/getPathFromRoute.js +24 -0
  40. package/dist/cjs/vercel/build/getPathFromRoute.js.map +6 -0
  41. package/dist/cjs/vercel/build/getPathFromRoute.native.js +31 -0
  42. package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +6 -0
  43. package/dist/cjs/vite/one.cjs +1 -1
  44. package/dist/cjs/vite/one.js +1 -1
  45. package/dist/cjs/vite/one.js.map +1 -1
  46. package/dist/cjs/vite/one.native.js +3 -1
  47. package/dist/cjs/vite/one.native.js.map +1 -1
  48. package/dist/esm/cli/build.js +4 -43
  49. package/dist/esm/cli/build.js.map +1 -1
  50. package/dist/esm/cli/build.mjs +4 -40
  51. package/dist/esm/cli/build.mjs.map +1 -1
  52. package/dist/esm/cli/build.native.js +4 -43
  53. package/dist/esm/cli/build.native.js.map +1 -1
  54. package/dist/esm/server/createRoutesManifest.js.map +1 -1
  55. package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
  56. package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
  57. package/dist/esm/server/getServerManifest.js +17 -8
  58. package/dist/esm/server/getServerManifest.js.map +1 -1
  59. package/dist/esm/server/getServerManifest.mjs +15 -7
  60. package/dist/esm/server/getServerManifest.mjs.map +1 -1
  61. package/dist/esm/server/getServerManifest.native.js +8 -4
  62. package/dist/esm/server/getServerManifest.native.js.map +1 -1
  63. package/dist/esm/utils/getPathnameFromFilePath.js +46 -0
  64. package/dist/esm/utils/getPathnameFromFilePath.js.map +6 -0
  65. package/dist/esm/utils/getPathnameFromFilePath.mjs +42 -0
  66. package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -0
  67. package/dist/esm/utils/getPathnameFromFilePath.native.js +45 -0
  68. package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -0
  69. package/dist/esm/vercel/build/buildVercelOutputDirectory.js +49 -18
  70. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  71. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +38 -8
  72. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  73. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +45 -8
  74. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  75. package/dist/esm/vercel/build/config/vc-build-output-config-base.js +7 -6
  76. package/dist/esm/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  77. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs +9 -6
  78. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs.map +1 -1
  79. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js +3 -6
  80. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
  81. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +88 -13
  82. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  83. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +53 -8
  84. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
  85. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +52 -8
  86. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  87. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +8 -5
  88. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  89. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +8 -5
  90. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
  91. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +8 -5
  92. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  93. package/dist/esm/vercel/build/getPathFromRoute.js +8 -0
  94. package/dist/esm/vercel/build/getPathFromRoute.js.map +6 -0
  95. package/dist/esm/vercel/build/getPathFromRoute.mjs +8 -0
  96. package/dist/esm/vercel/build/getPathFromRoute.mjs.map +1 -0
  97. package/dist/esm/vercel/build/getPathFromRoute.native.js +8 -0
  98. package/dist/esm/vercel/build/getPathFromRoute.native.js.map +1 -0
  99. package/dist/esm/vite/one.js +1 -1
  100. package/dist/esm/vite/one.js.map +1 -1
  101. package/dist/esm/vite/one.mjs +1 -1
  102. package/dist/esm/vite/one.mjs.map +1 -1
  103. package/dist/esm/vite/one.native.js +1 -1
  104. package/dist/esm/vite/one.native.js.map +1 -1
  105. package/package.json +9 -8
  106. package/src/cli/build.ts +3 -57
  107. package/src/server/createRoutesManifest.ts +1 -0
  108. package/src/server/getServerManifest.ts +12 -3
  109. package/src/utils/getPathnameFromFilePath.ts +62 -0
  110. package/src/vercel/build/buildVercelOutputDirectory.ts +55 -20
  111. package/src/vercel/build/config/vc-build-output-config-base.ts +6 -5
  112. package/src/vercel/build/generate/createApiServerlessFunction.ts +138 -12
  113. package/src/vercel/build/generate/createSsrServerlessFunction.ts +9 -6
  114. package/src/vercel/build/getPathFromRoute.ts +8 -0
  115. package/src/vite/one.ts +1 -1
  116. package/src/vite/types.ts +1 -0
  117. package/types/cli/build.d.ts.map +1 -1
  118. package/types/server/createRoutesManifest.d.ts +1 -0
  119. package/types/server/createRoutesManifest.d.ts.map +1 -1
  120. package/types/server/getServerManifest.d.ts +1 -0
  121. package/types/server/getServerManifest.d.ts.map +1 -1
  122. package/types/utils/getPathnameFromFilePath.d.ts +4 -0
  123. package/types/utils/getPathnameFromFilePath.d.ts.map +1 -0
  124. package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
  125. package/types/vercel/build/config/vc-build-output-config-base.d.ts +2 -5
  126. package/types/vercel/build/config/vc-build-output-config-base.d.ts.map +1 -1
  127. package/types/vercel/build/generate/createApiServerlessFunction.d.ts +2 -1
  128. package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
  129. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts +2 -2
  130. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
  131. package/types/vercel/build/getPathFromRoute.d.ts +3 -0
  132. package/types/vercel/build/getPathFromRoute.d.ts.map +1 -0
  133. package/types/vite/types.d.ts +1 -0
  134. package/types/vite/types.d.ts.map +1 -1
@@ -3,9 +3,9 @@ import FSExtra from "fs-extra";
3
3
  import { isMatching, P } from "ts-pattern";
4
4
  import { createApiServerlessFunction } from "./generate/createApiServerlessFunction";
5
5
  import { createSsrServerlessFunction } from "./generate/createSsrServerlessFunction";
6
- import { serverlessVercelNodeJsConfig } from "./config/vc-config-base";
7
6
  import { serverlessVercelPackageJson } from "./config/vc-package-base";
8
- import { vercelBuildOutputConfig } from "./config/vc-build-output-config-base";
7
+ import { vercelBuildOutputConfigBase } from "./config/vc-build-output-config-base";
8
+ import { getPathFromRoute } from "./getPathFromRoute";
9
9
  const { copy, ensureDir, existsSync, writeJSON } = FSExtra;
10
10
  async function moveAllFiles(src, dest) {
11
11
  try {
@@ -30,17 +30,7 @@ const buildVercelOutputDirectory = async ({
30
30
  const compiledRoute = compiltedApiRoutes.find((compiled) => compiled.facadeModuleId.includes(route.file.replace("./", "")));
31
31
  compiledRoute ? (postBuildLogs.push(
32
32
  `[one.build][vercel] generating serverless function for apiRoute ${route.page}`
33
- ), await createApiServerlessFunction(
34
- route.page,
35
- compiledRoute.code,
36
- oneOptionsRoot,
37
- postBuildLogs
38
- ), route.page !== route.urlCleanPath && await createApiServerlessFunction(
39
- route.urlCleanPath,
40
- compiledRoute.code,
41
- oneOptionsRoot,
42
- postBuildLogs
43
- )) : console.warn(`
33
+ ), await createApiServerlessFunction(route, compiledRoute.code, oneOptionsRoot, postBuildLogs)) : console.warn(`
44
34
  \u{1F528}[one.build][vercel] apiRoute missing code compilation for`, route.file);
45
35
  }
46
36
  }
@@ -52,7 +42,7 @@ const buildVercelOutputDirectory = async ({
52
42
  routeToBuildInfo[route.file] && (postBuildLogs.push(
53
43
  `[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`
54
44
  ), await createSsrServerlessFunction(
55
- route.page,
45
+ route,
56
46
  buildInfoForWriting,
57
47
  oneOptionsRoot,
58
48
  postBuildLogs
@@ -65,7 +55,7 @@ const buildVercelOutputDirectory = async ({
65
55
  const distMiddlewareDir = resolve(join(oneOptionsRoot, "dist", "middlewares"));
66
56
  if (existsSync(distMiddlewareDir)) {
67
57
  const vercelMiddlewareDir = resolve(
68
- join(oneOptionsRoot, ".vercel/output/functions/_middleware")
58
+ join(oneOptionsRoot, ".vercel/output/functions/_middleware.func")
69
59
  );
70
60
  await ensureDir(vercelMiddlewareDir), postBuildLogs.push(
71
61
  `[one.build][vercel] copying middlewares from ${distMiddlewareDir} to ${vercelMiddlewareDir}`
@@ -74,12 +64,34 @@ const buildVercelOutputDirectory = async ({
74
64
  postBuildLogs.push(
75
65
  `[one.build][vercel] writing package.json to ${vercelMiddlewarePackageJsonFilePath}`
76
66
  ), await writeJSON(vercelMiddlewarePackageJsonFilePath, serverlessVercelPackageJson);
67
+ const wrappedMiddlewareEntryPointFilename = "_wrapped_middleware.js", wrappedMiddlewareEntryPointPath = resolve(
68
+ join(vercelMiddlewareDir, wrappedMiddlewareEntryPointFilename)
69
+ );
70
+ await FSExtra.writeFile(
71
+ wrappedMiddlewareEntryPointPath,
72
+ `
73
+ import middlewareFunction from './_middleware.js'
74
+
75
+ const next = (e) => {
76
+ const t = new Headers(null == e ? void 0 : e.headers)
77
+ t.set('x-middleware-next', '1')
78
+ return new Response(null, { ...e, headers: t })
79
+ }
80
+
81
+ const wrappedMiddlewareFunction = (request, event) => {
82
+ return middlewareFunction({ request, event, next })
83
+ }
84
+
85
+ export { wrappedMiddlewareFunction as default }
86
+ `
87
+ );
77
88
  const middlewareVercelConfigFilePath = resolve(join(vercelMiddlewareDir, ".vc-config.json"));
78
89
  postBuildLogs.push(
79
90
  `[one.build][vercel] writing .vc-config.json to ${middlewareVercelConfigFilePath}`
80
91
  ), await writeJSON(middlewareVercelConfigFilePath, {
81
- ...serverlessVercelNodeJsConfig,
82
- handler: "_middleware.js"
92
+ runtime: "edge",
93
+ // Seems that middlewares only work with edge runtime
94
+ entrypoint: wrappedMiddlewareEntryPointFilename
83
95
  });
84
96
  }
85
97
  const vercelOutputStaticDir = resolve(join(oneOptionsRoot, ".vercel/output/static"));
@@ -87,7 +99,26 @@ const buildVercelOutputDirectory = async ({
87
99
  `[one.build][vercel] copying static files from ${clientDir} to ${vercelOutputStaticDir}`
88
100
  ), await moveAllFiles(clientDir, vercelOutputStaticDir);
89
101
  const vercelConfigFilePath = resolve(join(oneOptionsRoot, ".vercel/output", "config.json"));
90
- await writeJSON(vercelConfigFilePath, vercelBuildOutputConfig), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
102
+ await writeJSON(vercelConfigFilePath, {
103
+ ...vercelBuildOutputConfigBase,
104
+ routes: [
105
+ ...vercelBuildOutputConfigBase.routes,
106
+ ...existsSync(distMiddlewareDir) ? [
107
+ {
108
+ src: "/(.*)",
109
+ middlewarePath: "_middleware",
110
+ continue: !0
111
+ }
112
+ ] : [],
113
+ {
114
+ handle: "rewrite"
115
+ },
116
+ ...buildInfoForWriting.manifest.allRoutes.filter((r) => r.routeKeys && Object.keys(r.routeKeys).length > 0).map((r) => ({
117
+ src: r.namedRegex,
118
+ dest: `${getPathFromRoute(r)}?${Object.entries(r.routeKeys).map(([k, v]) => `${k}=$${v}`).join("&")}`
119
+ }))
120
+ ]
121
+ }), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
91
122
  };
92
123
  export {
93
124
  buildVercelOutputDirectory
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/vercel/build/buildVercelOutputDirectory.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,9 +3,9 @@ import FSExtra from "fs-extra";
3
3
  import { isMatching, P } from "ts-pattern";
4
4
  import { createApiServerlessFunction } from "./generate/createApiServerlessFunction.mjs";
5
5
  import { createSsrServerlessFunction } from "./generate/createSsrServerlessFunction.mjs";
6
- import { serverlessVercelNodeJsConfig } from "./config/vc-config-base.mjs";
7
6
  import { serverlessVercelPackageJson } from "./config/vc-package-base.mjs";
8
- import { vercelBuildOutputConfig } from "./config/vc-build-output-config-base.mjs";
7
+ import { vercelBuildOutputConfigBase } from "./config/vc-build-output-config-base.mjs";
8
+ import { getPathFromRoute } from "./getPathFromRoute.mjs";
9
9
  const {
10
10
  copy,
11
11
  ensureDir,
@@ -39,7 +39,7 @@ const buildVercelOutputDirectory = async ({
39
39
  }, o));
40
40
  for (const route of buildInfoForWriting.manifest.apiRoutes) {
41
41
  const compiledRoute = compiltedApiRoutes.find(compiled => compiled.facadeModuleId.includes(route.file.replace("./", "")));
42
- compiledRoute ? (postBuildLogs.push(`[one.build][vercel] generating serverless function for apiRoute ${route.page}`), await createApiServerlessFunction(route.page, compiledRoute.code, oneOptionsRoot, postBuildLogs), route.page !== route.urlCleanPath && (await createApiServerlessFunction(route.urlCleanPath, compiledRoute.code, oneOptionsRoot, postBuildLogs))) : console.warn(`
42
+ compiledRoute ? (postBuildLogs.push(`[one.build][vercel] generating serverless function for apiRoute ${route.page}`), await createApiServerlessFunction(route, compiledRoute.code, oneOptionsRoot, postBuildLogs)) : console.warn(`
43
43
  \u{1F528}[one.build][vercel] apiRoute missing code compilation for`, route.file);
44
44
  }
45
45
  }
@@ -48,7 +48,7 @@ const buildVercelOutputDirectory = async ({
48
48
  for (const route of buildInfoForWriting.manifest.pageRoutes) switch (route.type) {
49
49
  case "ssr":
50
50
  {
51
- routeToBuildInfo[route.file] && (postBuildLogs.push(`[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`), await createSsrServerlessFunction(route.page, buildInfoForWriting, oneOptionsRoot, postBuildLogs));
51
+ routeToBuildInfo[route.file] && (postBuildLogs.push(`[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`), await createSsrServerlessFunction(route, buildInfoForWriting, oneOptionsRoot, postBuildLogs));
52
52
  break;
53
53
  }
54
54
  default:
@@ -56,20 +56,50 @@ const buildVercelOutputDirectory = async ({
56
56
  }
57
57
  const distMiddlewareDir = resolve(join(oneOptionsRoot, "dist", "middlewares"));
58
58
  if (existsSync(distMiddlewareDir)) {
59
- const vercelMiddlewareDir = resolve(join(oneOptionsRoot, ".vercel/output/functions/_middleware"));
59
+ const vercelMiddlewareDir = resolve(join(oneOptionsRoot, ".vercel/output/functions/_middleware.func"));
60
60
  await ensureDir(vercelMiddlewareDir), postBuildLogs.push(`[one.build][vercel] copying middlewares from ${distMiddlewareDir} to ${vercelMiddlewareDir}`), await moveAllFiles(resolve(join(oneOptionsRoot, "dist", "middlewares")), vercelMiddlewareDir);
61
61
  const vercelMiddlewarePackageJsonFilePath = resolve(join(vercelMiddlewareDir, "index.js"));
62
62
  postBuildLogs.push(`[one.build][vercel] writing package.json to ${vercelMiddlewarePackageJsonFilePath}`), await writeJSON(vercelMiddlewarePackageJsonFilePath, serverlessVercelPackageJson);
63
+ const wrappedMiddlewareEntryPointFilename = "_wrapped_middleware.js",
64
+ wrappedMiddlewareEntryPointPath = resolve(join(vercelMiddlewareDir, wrappedMiddlewareEntryPointFilename));
65
+ await FSExtra.writeFile(wrappedMiddlewareEntryPointPath, `
66
+ import middlewareFunction from './_middleware.js'
67
+
68
+ const next = (e) => {
69
+ const t = new Headers(null == e ? void 0 : e.headers)
70
+ t.set('x-middleware-next', '1')
71
+ return new Response(null, { ...e, headers: t })
72
+ }
73
+
74
+ const wrappedMiddlewareFunction = (request, event) => {
75
+ return middlewareFunction({ request, event, next })
76
+ }
77
+
78
+ export { wrappedMiddlewareFunction as default }
79
+ `);
63
80
  const middlewareVercelConfigFilePath = resolve(join(vercelMiddlewareDir, ".vc-config.json"));
64
81
  postBuildLogs.push(`[one.build][vercel] writing .vc-config.json to ${middlewareVercelConfigFilePath}`), await writeJSON(middlewareVercelConfigFilePath, {
65
- ...serverlessVercelNodeJsConfig,
66
- handler: "_middleware.js"
82
+ runtime: "edge",
83
+ // Seems that middlewares only work with edge runtime
84
+ entrypoint: wrappedMiddlewareEntryPointFilename
67
85
  });
68
86
  }
69
87
  const vercelOutputStaticDir = resolve(join(oneOptionsRoot, ".vercel/output/static"));
70
88
  await ensureDir(vercelOutputStaticDir), postBuildLogs.push(`[one.build][vercel] copying static files from ${clientDir} to ${vercelOutputStaticDir}`), await moveAllFiles(clientDir, vercelOutputStaticDir);
71
89
  const vercelConfigFilePath = resolve(join(oneOptionsRoot, ".vercel/output", "config.json"));
72
- await writeJSON(vercelConfigFilePath, vercelBuildOutputConfig), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
90
+ await writeJSON(vercelConfigFilePath, {
91
+ ...vercelBuildOutputConfigBase,
92
+ routes: [...vercelBuildOutputConfigBase.routes, ...(existsSync(distMiddlewareDir) ? [{
93
+ src: "/(.*)",
94
+ middlewarePath: "_middleware",
95
+ continue: !0
96
+ }] : []), {
97
+ handle: "rewrite"
98
+ }, ...buildInfoForWriting.manifest.allRoutes.filter(r => r.routeKeys && Object.keys(r.routeKeys).length > 0).map(r => ({
99
+ src: r.namedRegex,
100
+ dest: `${getPathFromRoute(r)}?${Object.entries(r.routeKeys).map(([k, v]) => `${k}=$${v}`).join("&")}`
101
+ }))]
102
+ }), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
73
103
  };
74
104
  export { buildVercelOutputDirectory };
75
105
  //# sourceMappingURL=buildVercelOutputDirectory.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["join","resolve","FSExtra","isMatching","P","createApiServerlessFunction","createSsrServerlessFunction","serverlessVercelNodeJsConfig","serverlessVercelPackageJson","vercelBuildOutputConfig","copy","ensureDir","existsSync","writeJSON","moveAllFiles","src","dest","overwrite","errorOnExist","err","console","error","buildVercelOutputDirectory","apiOutput","buildInfoForWriting","clientDir","oneOptionsRoot","postBuildLogs","routeToBuildInfo","compiltedApiRoutes","output","filter","o","code","string","facadeModuleId","route","manifest","apiRoutes","compiledRoute","find","compiled","includes","file","replace","push","page","urlCleanPath","warn","vercelOutputFunctionsDir","pageRoutes","type","distMiddlewareDir","vercelMiddlewareDir","vercelMiddlewarePackageJsonFilePath","middlewareVercelConfigFilePath","handler","vercelOutputStaticDir","vercelConfigFilePath"],"sources":["../../../../src/vercel/build/buildVercelOutputDirectory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["join","resolve","FSExtra","isMatching","P","createApiServerlessFunction","createSsrServerlessFunction","serverlessVercelPackageJson","vercelBuildOutputConfigBase","getPathFromRoute","copy","ensureDir","existsSync","writeJSON","moveAllFiles","src","dest","overwrite","errorOnExist","err","console","error","buildVercelOutputDirectory","apiOutput","buildInfoForWriting","clientDir","oneOptionsRoot","postBuildLogs","routeToBuildInfo","compiltedApiRoutes","output","filter","o","code","string","facadeModuleId","route","manifest","apiRoutes","compiledRoute","find","compiled","includes","file","replace","push","page","warn","vercelOutputFunctionsDir","pageRoutes","type","distMiddlewareDir","vercelMiddlewareDir","vercelMiddlewarePackageJsonFilePath","wrappedMiddlewareEntryPointFilename","wrappedMiddlewareEntryPointPath","writeFile","middlewareVercelConfigFilePath","runtime","entrypoint","vercelOutputStaticDir","vercelConfigFilePath","routes","middlewarePath","continue","handle","allRoutes","r","routeKeys","Object","keys","length","map","namedRegex","entries","k","v"],"sources":["../../../../src/vercel/build/buildVercelOutputDirectory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,9 @@ import FSExtra from "fs-extra";
3
3
  import { isMatching, P } from "ts-pattern";
4
4
  import { createApiServerlessFunction } from "./generate/createApiServerlessFunction.native.js";
5
5
  import { createSsrServerlessFunction } from "./generate/createSsrServerlessFunction.native.js";
6
- import { serverlessVercelNodeJsConfig } from "./config/vc-config-base.native.js";
7
6
  import { serverlessVercelPackageJson } from "./config/vc-package-base.native.js";
8
- import { vercelBuildOutputConfig } from "./config/vc-build-output-config-base.native.js";
7
+ import { vercelBuildOutputConfigBase } from "./config/vc-build-output-config-base.native.js";
8
+ import { getPathFromRoute } from "./getPathFromRoute.native.js";
9
9
  var {
10
10
  copy,
11
11
  ensureDir,
@@ -51,7 +51,7 @@ var buildVercelOutputDirectory = async function (param) {
51
51
  var flag = compiled.facadeModuleId.includes(route2.file.replace("./", ""));
52
52
  return flag;
53
53
  });
54
- compiledRoute ? (postBuildLogs.push(`[one.build][vercel] generating serverless function for apiRoute ${route2.page}`), await createApiServerlessFunction(route2.page, compiledRoute.code, oneOptionsRoot, postBuildLogs), route2.page !== route2.urlCleanPath && (await createApiServerlessFunction(route2.urlCleanPath, compiledRoute.code, oneOptionsRoot, postBuildLogs))) : console.warn(`
54
+ compiledRoute ? (postBuildLogs.push(`[one.build][vercel] generating serverless function for apiRoute ${route2.page}`), await createApiServerlessFunction(route2, compiledRoute.code, oneOptionsRoot, postBuildLogs)) : console.warn(`
55
55
  \u{1F528}[one.build][vercel] apiRoute missing code compilation for`, route2.file);
56
56
  }, _iterator = buildInfoForWriting.manifest.apiRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) await _loop();
57
57
  } catch (err) {
@@ -76,7 +76,7 @@ var buildVercelOutputDirectory = async function (param) {
76
76
  case "ssr":
77
77
  {
78
78
  var builtPageRoute = routeToBuildInfo[route.file];
79
- builtPageRoute && (postBuildLogs.push(`[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`), await createSsrServerlessFunction(route.page, buildInfoForWriting, oneOptionsRoot, postBuildLogs));
79
+ builtPageRoute && (postBuildLogs.push(`[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`), await createSsrServerlessFunction(route, buildInfoForWriting, oneOptionsRoot, postBuildLogs));
80
80
  break;
81
81
  }
82
82
  default:
@@ -94,20 +94,57 @@ var buildVercelOutputDirectory = async function (param) {
94
94
  }
95
95
  var distMiddlewareDir = resolve(join(oneOptionsRoot, "dist", "middlewares"));
96
96
  if (existsSync(distMiddlewareDir)) {
97
- var vercelMiddlewareDir = resolve(join(oneOptionsRoot, ".vercel/output/functions/_middleware"));
97
+ var vercelMiddlewareDir = resolve(join(oneOptionsRoot, ".vercel/output/functions/_middleware.func"));
98
98
  await ensureDir(vercelMiddlewareDir), postBuildLogs.push(`[one.build][vercel] copying middlewares from ${distMiddlewareDir} to ${vercelMiddlewareDir}`), await moveAllFiles(resolve(join(oneOptionsRoot, "dist", "middlewares")), vercelMiddlewareDir);
99
99
  var vercelMiddlewarePackageJsonFilePath = resolve(join(vercelMiddlewareDir, "index.js"));
100
100
  postBuildLogs.push(`[one.build][vercel] writing package.json to ${vercelMiddlewarePackageJsonFilePath}`), await writeJSON(vercelMiddlewarePackageJsonFilePath, serverlessVercelPackageJson);
101
+ var wrappedMiddlewareEntryPointFilename = "_wrapped_middleware.js",
102
+ wrappedMiddlewareEntryPointPath = resolve(join(vercelMiddlewareDir, wrappedMiddlewareEntryPointFilename));
103
+ await FSExtra.writeFile(wrappedMiddlewareEntryPointPath, `
104
+ import middlewareFunction from './_middleware.js'
105
+
106
+ const next = (e) => {
107
+ const t = new Headers(null == e ? void 0 : e.headers)
108
+ t.set('x-middleware-next', '1')
109
+ return new Response(null, { ...e, headers: t })
110
+ }
111
+
112
+ const wrappedMiddlewareFunction = (request, event) => {
113
+ return middlewareFunction({ request, event, next })
114
+ }
115
+
116
+ export { wrappedMiddlewareFunction as default }
117
+ `);
101
118
  var middlewareVercelConfigFilePath = resolve(join(vercelMiddlewareDir, ".vc-config.json"));
102
119
  postBuildLogs.push(`[one.build][vercel] writing .vc-config.json to ${middlewareVercelConfigFilePath}`), await writeJSON(middlewareVercelConfigFilePath, {
103
- ...serverlessVercelNodeJsConfig,
104
- handler: "_middleware.js"
120
+ runtime: "edge",
121
+ // Seems that middlewares only work with edge runtime
122
+ entrypoint: wrappedMiddlewareEntryPointFilename
105
123
  });
106
124
  }
107
125
  var vercelOutputStaticDir = resolve(join(oneOptionsRoot, ".vercel/output/static"));
108
126
  await ensureDir(vercelOutputStaticDir), postBuildLogs.push(`[one.build][vercel] copying static files from ${clientDir} to ${vercelOutputStaticDir}`), await moveAllFiles(clientDir, vercelOutputStaticDir);
109
127
  var vercelConfigFilePath = resolve(join(oneOptionsRoot, ".vercel/output", "config.json"));
110
- await writeJSON(vercelConfigFilePath, vercelBuildOutputConfig), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
128
+ await writeJSON(vercelConfigFilePath, {
129
+ ...vercelBuildOutputConfigBase,
130
+ routes: [...vercelBuildOutputConfigBase.routes, ...(existsSync(distMiddlewareDir) ? [{
131
+ src: "/(.*)",
132
+ middlewarePath: "_middleware",
133
+ continue: !0
134
+ }] : []), {
135
+ handle: "rewrite"
136
+ }, ...buildInfoForWriting.manifest.allRoutes.filter(function (r) {
137
+ return r.routeKeys && Object.keys(r.routeKeys).length > 0;
138
+ }).map(function (r) {
139
+ return {
140
+ src: r.namedRegex,
141
+ dest: `${getPathFromRoute(r)}?${Object.entries(r.routeKeys).map(function (param2) {
142
+ var [k, v] = param2;
143
+ return `${k}=$${v}`;
144
+ }).join("&")}`
145
+ };
146
+ })]
147
+ }), postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`);
111
148
  };
112
149
  export { buildVercelOutputDirectory };
113
150
  //# sourceMappingURL=buildVercelOutputDirectory.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["join","resolve","FSExtra","isMatching","P","createApiServerlessFunction","createSsrServerlessFunction","serverlessVercelNodeJsConfig","serverlessVercelPackageJson","vercelBuildOutputConfig","copy","ensureDir","existsSync","writeJSON","moveAllFiles","src","dest","overwrite","errorOnExist","err","console","error","buildVercelOutputDirectory","param","apiOutput","buildInfoForWriting","clientDir","oneOptionsRoot","postBuildLogs","routeToBuildInfo","_apiOutput_output","compiltedApiRoutes","output","filter","o","code","string","facadeModuleId","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","route2","_step","value","compiledRoute","find","compiled","flag","includes","file","replace","push","page","urlCleanPath","warn","_iterator","manifest","apiRoutes","Symbol","iterator","next","done","return","vercelOutputFunctionsDir","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","pageRoutes","_step1","route","type","builtPageRoute","distMiddlewareDir","vercelMiddlewareDir","vercelMiddlewarePackageJsonFilePath","middlewareVercelConfigFilePath","handler","vercelOutputStaticDir","vercelConfigFilePath"],"sources":["../../../../src/vercel/build/buildVercelOutputDirectory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["join","resolve","FSExtra","isMatching","P","createApiServerlessFunction","createSsrServerlessFunction","serverlessVercelPackageJson","vercelBuildOutputConfigBase","getPathFromRoute","copy","ensureDir","existsSync","writeJSON","moveAllFiles","src","dest","overwrite","errorOnExist","err","console","error","buildVercelOutputDirectory","param","apiOutput","buildInfoForWriting","clientDir","oneOptionsRoot","postBuildLogs","routeToBuildInfo","_apiOutput_output","compiltedApiRoutes","output","filter","o","code","string","facadeModuleId","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","route2","_step","value","compiledRoute","find","compiled","flag","includes","file","replace","push","page","warn","_iterator","manifest","apiRoutes","Symbol","iterator","next","done","return","vercelOutputFunctionsDir","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","pageRoutes","_step1","route","type","builtPageRoute","distMiddlewareDir","vercelMiddlewareDir","vercelMiddlewarePackageJsonFilePath","wrappedMiddlewareEntryPointFilename","wrappedMiddlewareEntryPointPath","writeFile","middlewareVercelConfigFilePath","runtime","entrypoint","vercelOutputStaticDir","vercelConfigFilePath","routes","middlewarePath","continue","handle","allRoutes","r","routeKeys","Object","keys","length"],"sources":["../../../../src/vercel/build/buildVercelOutputDirectory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,15 @@
1
- const vercelBuildOutputConfig = {
1
+ const vercelBuildOutputConfigBase = {
2
2
  version: 3,
3
3
  // https://vercel.com/docs/build-output-api/v3/configuration#routes
4
4
  routes: [
5
- {
6
- src: "/(.*)",
7
- status: 200
8
- }
5
+ // Not sure if we really need this, but having this seems to break the 'rewrite's we will add to handle dynamic routes.
6
+ // {
7
+ // src: '/(.*)',
8
+ // status: 200,
9
+ // },
9
10
  ]
10
11
  };
11
12
  export {
12
- vercelBuildOutputConfig
13
+ vercelBuildOutputConfigBase
13
14
  };
14
15
  //# sourceMappingURL=vc-build-output-config-base.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],
4
- "mappings": "AAEO,MAAM,0BAA0B;AAAA,EACrC,SAAS;AAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AACF;",
4
+ "mappings": "AAEO,MAAM,8BAA8B;AAAA,EACzC,SAAS;AAAA;AAAA,EAET,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMR;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,10 +1,13 @@
1
- const vercelBuildOutputConfig = {
1
+ const vercelBuildOutputConfigBase = {
2
2
  version: 3,
3
3
  // https://vercel.com/docs/build-output-api/v3/configuration#routes
4
- routes: [{
5
- src: "/(.*)",
6
- status: 200
7
- }]
4
+ routes: [
5
+ // Not sure if we really need this, but having this seems to break the 'rewrite's we will add to handle dynamic routes.
6
+ // {
7
+ // src: '/(.*)',
8
+ // status: 200,
9
+ // },
10
+ ]
8
11
  };
9
- export { vercelBuildOutputConfig };
12
+ export { vercelBuildOutputConfigBase };
10
13
  //# sourceMappingURL=vc-build-output-config-base.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["vercelBuildOutputConfig","version","routes","src","status"],"sources":["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],"sourcesContent":[null],"mappings":"AAEO,MAAMA,uBAAA,GAA0B;EACrCC,OAAA,EAAS;EAAA;EAETC,MAAA,EAAQ,CACN;IACEC,GAAA,EAAK;IACLC,MAAA,EAAQ;EACV;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["vercelBuildOutputConfigBase","version","routes"],"sources":["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],"sourcesContent":[null],"mappings":"AAEO,MAAMA,2BAAA,GAA8B;EACzCC,OAAA,EAAS;EAAA;EAETC,MAAA,EAAQ;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;AAOV","ignoreList":[]}
@@ -1,10 +1,7 @@
1
- var vercelBuildOutputConfig = {
1
+ var vercelBuildOutputConfigBase = {
2
2
  version: 3,
3
3
  // https://vercel.com/docs/build-output-api/v3/configuration#routes
4
- routes: [{
5
- src: "/(.*)",
6
- status: 200
7
- }]
4
+ routes: []
8
5
  };
9
- export { vercelBuildOutputConfig };
6
+ export { vercelBuildOutputConfigBase };
10
7
  //# sourceMappingURL=vc-build-output-config-base.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["vercelBuildOutputConfig","version","routes","src","status"],"sources":["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],"sourcesContent":[null],"mappings":"AAEO,IAAAA,uBAAM;EACXC,OAAA,EAAS;EAAA;EAETC,MAAA,EAAQ,CACN;IACEC,GAAA,EAAK;IACLC,MAAA,EAAQ;EACV;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["vercelBuildOutputConfigBase","version","routes"],"sources":["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],"sourcesContent":[null],"mappings":"AAEO,IAAAA,2BAAM;EACXC,OAAA,EAAS;EAAA;EAETC,MAAA,EAAQ;AAAA;AAAA,SAAAF,2BAAA","ignoreList":[]}
@@ -1,25 +1,36 @@
1
- import { join, resolve } from "node:path";
1
+ import { dirname, join, resolve } from "node:path";
2
+ import FSExtra from "fs-extra";
3
+ import { resolvePath } from "@vxrn/resolve";
4
+ import parser from "@babel/parser";
5
+ import traverse from "@babel/traverse";
6
+ import t from "@babel/types";
7
+ import generator from "@babel/generator";
2
8
  import fs from "fs-extra";
3
9
  import { serverlessVercelPackageJson } from "../config/vc-package-base";
4
10
  import { serverlessVercelNodeJsConfig } from "../config/vc-config-base";
5
- async function createApiServerlessFunction(pageName, code, oneOptionsRoot, postBuildLogs) {
11
+ import { getPathFromRoute } from "../getPathFromRoute";
12
+ async function createApiServerlessFunction(route, code, oneOptionsRoot, postBuildLogs) {
6
13
  try {
7
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
8
- const funcFolder = join(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`);
9
- await fs.ensureDir(funcFolder), code.includes("react") && (postBuildLogs.push(
10
- `[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${pageName}`
11
- ), await fs.copy(
12
- resolve(join(oneOptionsRoot, "..", "..", "node_modules", "react")),
13
- resolve(join(funcFolder, "node_modules", "react"))
14
- ));
14
+ const path = getPathFromRoute(route);
15
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${path}`);
16
+ const funcFolder = join(oneOptionsRoot, `.vercel/output/functions/${path}.func`);
17
+ if (await fs.ensureDir(funcFolder), code.includes("react")) {
18
+ postBuildLogs.push(
19
+ `[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${path}`
20
+ );
21
+ const reactPath = dirname(resolvePath("react/package.json", oneOptionsRoot));
22
+ await fs.copy(resolve(reactPath), resolve(join(funcFolder, "node_modules", "react")));
23
+ }
15
24
  const distAssetsFolder = resolve(join(funcFolder, "assets"));
16
25
  postBuildLogs.push(
17
26
  `[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`
18
- ), await fs.copy(resolve(join(oneOptionsRoot, "dist", "api", "assets")), distAssetsFolder), await fs.ensureDir(resolve(join(funcFolder, "entrypoint")));
27
+ );
28
+ const sourceAssetsFolder = resolve(join(oneOptionsRoot, "dist", "api", "assets"));
29
+ await FSExtra.pathExists(sourceAssetsFolder) && await fs.copy(sourceAssetsFolder, distAssetsFolder), await fs.ensureDir(resolve(join(funcFolder, "entrypoint")));
19
30
  const entrypointFilePath = resolve(join(funcFolder, "entrypoint", "index.js"));
20
31
  postBuildLogs.push(
21
32
  `[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`
22
- ), await fs.writeFile(entrypointFilePath, code);
33
+ ), await fs.writeFile(entrypointFilePath, wrapHandlerFunctions(code));
23
34
  const packageJsonFilePath = resolve(join(funcFolder, "package.json"));
24
35
  return postBuildLogs.push(
25
36
  `[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`
@@ -31,11 +42,75 @@ async function createApiServerlessFunction(pageName, code, oneOptionsRoot, postB
31
42
  });
32
43
  } catch (e) {
33
44
  console.error(
34
- `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`,
45
+ `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`,
35
46
  e
36
47
  );
37
48
  }
38
49
  }
50
+ function wrapHandlerFunctions(code) {
51
+ const ast = parser.parse(code, {
52
+ sourceType: "module"
53
+ });
54
+ return traverse.default(ast, {
55
+ FunctionDeclaration(path) {
56
+ const { node } = path, functionNamesToHandle = [
57
+ "GET",
58
+ "POST",
59
+ "PUT",
60
+ "PATCH",
61
+ "DELETE",
62
+ "HEAD",
63
+ "OPTIONS"
64
+ // TODO: more possibilities?
65
+ ];
66
+ if (!node.id || !functionNamesToHandle.includes(node.id.name) || node.extra && node.extra.isWrapper || node.extra && node.extra.isWrapped) return;
67
+ const originalName = `orig_${node.id.name}`, originalFunction = t.functionDeclaration(
68
+ t.identifier(originalName),
69
+ node.params,
70
+ node.body,
71
+ node.generator,
72
+ node.async
73
+ ), requestIdentifier = t.identifier("request"), wrapperParams = [requestIdentifier], urlIdentifier = t.identifier("url"), paramsIdentifier = t.identifier("params"), urlDecl = t.variableDeclaration("const", [
74
+ t.variableDeclarator(
75
+ urlIdentifier,
76
+ t.newExpression(t.identifier("URL"), [
77
+ t.memberExpression(requestIdentifier, t.identifier("url"))
78
+ ])
79
+ )
80
+ ]), paramsDecl = t.variableDeclaration("const", [
81
+ t.variableDeclarator(
82
+ paramsIdentifier,
83
+ t.callExpression(
84
+ t.memberExpression(t.identifier("Object"), t.identifier("fromEntries")),
85
+ [
86
+ t.callExpression(
87
+ t.memberExpression(
88
+ t.memberExpression(
89
+ urlIdentifier,
90
+ t.identifier("searchParams")
91
+ ),
92
+ t.identifier("entries")
93
+ ),
94
+ []
95
+ )
96
+ ]
97
+ )
98
+ )
99
+ ]), callOrigFnStatement = t.callExpression(t.identifier(originalName), [
100
+ requestIdentifier,
101
+ t.objectExpression([t.objectProperty(t.identifier("params"), paramsIdentifier)])
102
+ ]), wrapperFunction = t.functionDeclaration(
103
+ t.identifier(node.id.name + ""),
104
+ wrapperParams,
105
+ t.blockStatement([urlDecl, paramsDecl, t.returnStatement(callOrigFnStatement)])
106
+ // No need to care if the wrapper function should be async,
107
+ // since we didn't use any await in the wrapper function, and we'll
108
+ // just return what the original function returns.
109
+ );
110
+ node.extra = node.extra || {}, node.extra.isWrapped = !0, wrapperFunction.extra = wrapperFunction.extra || {}, wrapperFunction.extra.isWrapper = !0, path.parentPath.isExportNamedDeclaration() ? path.replaceWithMultiple([originalFunction, t.exportNamedDeclaration(wrapperFunction, [])]) : path.replaceWithMultiple([originalFunction, wrapperFunction]);
111
+ }
112
+ }), generator.default(ast, {}).code;
113
+ }
39
114
  export {
40
115
  createApiServerlessFunction
41
116
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/generate/createApiServerlessFunction.ts"],
4
- "mappings": "AAAA,SAAS,MAAM,eAAe;AAE9B,OAAO,QAAQ;AAEf,SAAS,mCAAmC;AAC5C,SAAS,oCAAoC;AAI7C,eAAsB,4BACpB,UACA,MACA,gBACA,eACA;AACA,MAAI;AACF,kBAAc,KAAK,6DAA6D,QAAQ,EAAE;AAE1F,UAAM,aAAa,KAAK,gBAAgB,4BAA4B,QAAQ,OAAO;AACnF,UAAM,GAAG,UAAU,UAAU,GAEzB,KAAK,SAAS,OAAO,MACvB,cAAc;AAAA,MACZ,wFAAwF,QAAQ;AAAA,IAClG,GACA,MAAM,GAAG;AAAA,MACP,QAAQ,KAAK,gBAAgB,MAAM,MAAM,gBAAgB,OAAO,CAAC;AAAA,MACjE,QAAQ,KAAK,YAAY,gBAAgB,OAAO,CAAC;AAAA,IACnD;AAGF,UAAM,mBAAmB,QAAQ,KAAK,YAAY,QAAQ,CAAC;AAC3D,kBAAc;AAAA,MACZ,yEAAyE,gBAAgB;AAAA,IAC3F,GACA,MAAM,GAAG,KAAK,QAAQ,KAAK,gBAAgB,QAAQ,OAAO,QAAQ,CAAC,GAAG,gBAAgB,GAEtF,MAAM,GAAG,UAAU,QAAQ,KAAK,YAAY,YAAY,CAAC,CAAC;AAC1D,UAAM,qBAAqB,QAAQ,KAAK,YAAY,cAAc,UAAU,CAAC;AAC7E,kBAAc;AAAA,MACZ,yEAAyE,kBAAkB;AAAA,IAC7F,GACA,MAAM,GAAG,UAAU,oBAAoB,IAAI;AAE3C,UAAM,sBAAsB,QAAQ,KAAK,YAAY,cAAc,CAAC;AACpE,yBAAc;AAAA,MACZ,2EAA2E,mBAAmB;AAAA,IAChG,GACA,MAAM,GAAG,UAAU,qBAAqB,2BAA2B,GAEnE,cAAc;AAAA,MACZ,8EAA8E,KAAK,YAAY,iBAAiB,CAAC;AAAA,IACnH,GAGO,GAAG,UAAU,KAAK,YAAY,iBAAiB,GAAG;AAAA,MACvD,GAAG;AAAA,MACH,SAAS;AAAA,IACX,CAAC;AAAA,EACH,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+EAA+E,QAAQ;AAAA,MACvF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }