one 1.1.450 → 1.1.452
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/cli/build.cjs +15 -22
- package/dist/cjs/cli/build.js +14 -31
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js +15 -24
- package/dist/cjs/cli/build.native.js.map +2 -2
- package/dist/cjs/cli.cjs +0 -4
- package/dist/cjs/cli.js +0 -4
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +0 -4
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/serve.cjs +1 -2
- package/dist/cjs/serve.js +1 -2
- package/dist/cjs/serve.js.map +1 -1
- package/dist/cjs/serve.native.js +1 -2
- package/dist/cjs/serve.native.js.map +2 -2
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +103 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +102 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +6 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +111 -0
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.cjs +33 -0
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.js +30 -0
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js +35 -0
- package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-config-base.cjs +45 -0
- package/dist/cjs/vercel/build/config/vc-config-base.js +40 -0
- package/dist/cjs/vercel/build/config/vc-config-base.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-config-base.native.js +33 -0
- package/dist/cjs/vercel/build/config/vc-config-base.native.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-package-base.cjs +28 -0
- package/dist/cjs/vercel/build/config/vc-package-base.js +21 -0
- package/dist/cjs/vercel/build/config/vc-package-base.js.map +6 -0
- package/dist/cjs/vercel/build/config/vc-package-base.native.js +28 -0
- package/dist/cjs/vercel/build/config/vc-package-base.native.js.map +6 -0
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +58 -0
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +63 -0
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +6 -0
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +52 -0
- package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +6 -0
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +103 -0
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +106 -0
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +6 -0
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +95 -0
- package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +6 -0
- package/dist/cjs/vite/one-server-only.cjs +3 -1
- package/dist/cjs/vite/one-server-only.js +1 -1
- package/dist/cjs/vite/one-server-only.js.map +1 -1
- package/dist/cjs/vite/one.cjs +3 -3
- package/dist/cjs/vite/one.js +7 -3
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +3 -3
- package/dist/cjs/vite/one.native.js.map +2 -2
- package/dist/cjs/vite/types.native.js.map +1 -1
- package/dist/esm/cli/build.js +14 -30
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +15 -22
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +16 -25
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli.js +0 -4
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +0 -4
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +0 -4
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/serve.js +1 -2
- package/dist/esm/serve.js.map +1 -1
- package/dist/esm/serve.mjs +1 -2
- package/dist/esm/serve.mjs.map +1 -1
- package/dist/esm/serve.native.js +1 -2
- package/dist/esm/serve.native.js.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js +85 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +6 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +69 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +107 -0
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.js +14 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.js.map +6 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs +10 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs.map +1 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js +10 -0
- package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js.map +1 -0
- package/dist/esm/vercel/build/config/vc-config-base.js +24 -0
- package/dist/esm/vercel/build/config/vc-config-base.js.map +6 -0
- package/dist/esm/vercel/build/config/vc-config-base.mjs +22 -0
- package/dist/esm/vercel/build/config/vc-config-base.mjs.map +1 -0
- package/dist/esm/vercel/build/config/vc-config-base.native.js +10 -0
- package/dist/esm/vercel/build/config/vc-config-base.native.js.map +1 -0
- package/dist/esm/vercel/build/config/vc-package-base.js +5 -0
- package/dist/esm/vercel/build/config/vc-package-base.js.map +6 -0
- package/dist/esm/vercel/build/config/vc-package-base.mjs +5 -0
- package/dist/esm/vercel/build/config/vc-package-base.mjs.map +1 -0
- package/dist/esm/vercel/build/config/vc-package-base.native.js +5 -0
- package/dist/esm/vercel/build/config/vc-package-base.native.js.map +1 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +42 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +6 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +24 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +24 -0
- package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +85 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +6 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +69 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +69 -0
- package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -0
- package/dist/esm/vite/one-server-only.js +1 -1
- package/dist/esm/vite/one-server-only.js.map +1 -1
- package/dist/esm/vite/one-server-only.mjs +3 -1
- package/dist/esm/vite/one-server-only.mjs.map +1 -1
- package/dist/esm/vite/one.js +7 -3
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +3 -3
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +3 -3
- package/dist/esm/vite/one.native.js.map +1 -1
- package/package.json +9 -8
- package/src/cli/build.ts +34 -31
- package/src/cli.ts +0 -4
- package/src/serve.ts +0 -1
- package/src/server/createRoutesManifest.ts +1 -1
- package/src/vercel/build/buildVercelOutputDirectory.ts +126 -0
- package/src/vercel/build/config/vc-build-output-config-base.ts +12 -0
- package/src/vercel/build/config/vc-config-base.ts +22 -0
- package/src/vercel/build/config/vc-package-base.ts +1 -0
- package/src/vercel/build/generate/createApiServerlessFunction.ts +66 -0
- package/src/vercel/build/generate/createSsrServerlessFunction.ts +108 -0
- package/src/vite/one-server-only.tsx +6 -1
- package/src/vite/one.ts +7 -3
- package/src/vite/types.ts +2 -3
- package/types/cli/build.d.ts.map +1 -1
- package/types/serve.d.ts +1 -8
- package/types/serve.d.ts.map +1 -1
- package/types/server/createRoutesManifest.d.ts +1 -1
- package/types/server/createRoutesManifest.d.ts.map +1 -1
- package/types/vercel/build/buildVercelOutputDirectory.d.ts +10 -0
- package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -0
- package/types/vercel/build/config/vc-build-output-config-base.d.ts +8 -0
- package/types/vercel/build/config/vc-build-output-config-base.d.ts.map +1 -0
- package/types/vercel/build/config/vc-config-base.d.ts +9 -0
- package/types/vercel/build/config/vc-config-base.d.ts.map +1 -0
- package/types/vercel/build/config/vc-package-base.d.ts +4 -0
- package/types/vercel/build/config/vc-package-base.d.ts.map +1 -0
- package/types/vercel/build/generate/createApiServerlessFunction.d.ts +2 -0
- package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -0
- package/types/vercel/build/generate/createSsrServerlessFunction.d.ts +3 -0
- package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -0
- package/types/vite/one-server-only.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/types.d.ts +3 -3
- package/types/vite/types.d.ts.map +1 -1
@@ -53,12 +53,12 @@ function one() {
|
|
53
53
|
}, barrelOption === !1 ? null : barrel({
|
54
54
|
packages: Array.isArray(barrelOption) ? barrelOption : ["@tamagui/lucide-icons"]
|
55
55
|
}), {
|
56
|
-
name: "one-define-env",
|
57
|
-
async config() {
|
56
|
+
name: "one-define-client-env",
|
57
|
+
async config(userConfig) {
|
58
58
|
var _vxrnOptions_mode,
|
59
59
|
{
|
60
60
|
clientEnvDefine
|
61
|
-
} = await loadEnv((_vxrnOptions_mode = vxrnOptions?.mode) !== null && _vxrnOptions_mode !== void 0 ? _vxrnOptions_mode : "development");
|
61
|
+
} = await loadEnv((_vxrnOptions_mode = vxrnOptions?.mode) !== null && _vxrnOptions_mode !== void 0 ? _vxrnOptions_mode : "development", process.cwd(), userConfig?.envPrefix);
|
62
62
|
return {
|
63
63
|
define: clientEnvDefine
|
64
64
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["configureVXRNCompilerPlugin","clearCompilerCache","resolvePath","events","path","barrel","tsconfigPaths","autoDepOptimizePlugin","getOptimizeDeps","getOptionsFilled","loadEnv","CACHE_KEY","ensureTSConfig","setOneOptions","clientTreeShakePlugin","createFileSystemRouterPlugin","fixDependenciesPlugin","generateFileSystemRouteTypesPlugin","SSRCSSPlugin","virtualEntryId","createVirtualEntry","setMaxListeners","globalThis","__vxrnEnableNativeEnv","one","options","arguments","length","_options_config","_options_optimization","_options_react","_options_ssr","_options_react1","__oneOptions","__vxrnPluginConfig__","config","optimizeDeps","optimizeIds","include","optimizeIdRegex","RegExp","map","id","replace","join","tsConfigPathsPlugin","vxrnOptions","root","process","cwd","barrelOption","optimization","compiler","react","enableCompiler","autoDepsOptions","ssr","autoDepsOptimization","devAndProdPlugins","name","__get","packages","Array","isArray","_vxrnOptions_mode","clientEnvDefine","mode","define","onScannedDeps","param","hasReanimated","hasNativewind","_options_native","_options_native_css","enableReanimated","enableNativeCSS","native","css","enableNativewind","Proxy","configIncoming","_options_config2","_configIncoming_plugins","pathsConfig","tsConfigPaths","plugins","flat","some","p","configResolved","resolveId","get","target","key","thisArg","Reflect","enforce","tslibLitePath","err","console","info","env","DEBUG","error","resolve","alias","tslib","_options_web","web","defaultRenderMode","JSON","stringify","setupFile","NODE_ENV","server","url","environments","client","ios","android","hotUpdate","modules","m","relativePath","relative","rootDir","split","sep","acceptedHmrExports","Set","_","transform","code","environment","includes","scan","reactScanPlugin","reactScanConfig","push","obj","configs","disabled","enabled","animationSpeed","showToolbar","getConfigFor","platform","defaultConfig","perPlatformConfig","nativeWebDevAndProdPlugsin","__vxrnAddNativePlugins","__vxrnAddWebPluginsProd","deps"],"sources":["../../../src/vite/one.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,2BAAA,EAA6BC,kBAAA,QAA0B;AAChE,SAASC,WAAA,QAAmB;AAC5B,OAAOC,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AAEjB,SAASC,MAAA,QAAc;AACvB,OAAOC,aAAA,MAAmB;AAC1B,SAASC,qBAAA,EAAuBC,eAAA,EAAiBC,gBAAA,EAAkBC,OAAA,QAAe;AAClF,SAASC,SAAA,QAAiB;AAC1B,OAAO;AACP,SAASC,cAAA,QAAsB;AAC/B,SAASC,aAAA,QAAqB;AAC9B,SAASC,qBAAA,QAA6B;AACtC,SAASC,4BAAA,QAAoC;AAC7C,SAASC,qBAAA,QAA6B;AACtC,SAASC,kCAAA,QAA0C;AACnD,SAASC,YAAA,QAAoB;AAC7B,SAASC,cAAA,QAAsB;AAC/B,SAASC,kBAAA,QAA0B;AAUnCjB,MAAA,CAAOkB,eAAA,CAAgB,GAAK;AAG5BC,UAAA,CAAWC,qBAAA,GAAwB;AAM5B,SAASC,IAAA,EAAI;EAClB,IAAIC,OAAC,GAAAC,SAAW,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAAAE,eAAA;IAAAC,qBAAA;IAAAC,cAAA;IAAAC,YAAA;IAAAC,eAAA;EAGd,KAAAV,UAAA,CAAAW,YAAc,EAKhB,OAAApB,aAGI,CAAAY,OAAQ,GAAAH,UAAQ,CAAAY,oBACb,GAAAT,OAAA,IAAe;EAItBxB,kBAAQ,IAAa,EAAA2B,eAAI,GAAgBH,OAAO,CAAAU,MAC1C,UAAc,IAAAP,eAAa,KAC3B,eAAkB,GAAAA,eAAI,CAAAhB,cAAA,YAAAA,cAAA;EAAA;MAAAwB;IAAA,IAAA5B,eAAA;IAAA6B,WAAA,GAAAD,YAAA,CAAAE,OAAA;IAAAC,eAAA,OAAAC,MAAA;IAAA;IAG1B;IACF,GAAAH,WAAA,CAAAI,GAAA,WAAAC,EAAA;MAEI,OAAAA,EAAA,CAAAC,OAAA,sBAAqC;IAEzC,GAAAC,IAAM,OAKF;IAAAC,mBACF;IAAAC,WAA4B,GAAArC,gBAAA;IAAAsC,IAAA,GAAAD,WAAA,EAAAC,IAAA,IAAAC,OAAA,CAAAC,GAAA;IAAAC,YAAA,IAAArB,qBAAA,GAAAJ,OAAA,CAAA0B,YAAA,cAAAtB,qBAAA,uBAAAA,qBAAA,CAAAxB,MAAA;IAAA+C,QAAA,IAAAtB,cAAA,GAAAL,OAAA,CAAA4B,KAAA,cAAAvB,cAAA,uBAAAA,cAAA,CAAAsB,QAAA;EAAAA,QAC1B,IAAApD,2BACe;IAChBsD,cAAA,EAAAF,QAAA,iBAGH,KAAM,EAGJ,aACEA,QAAM,qBAEN,QAAO,CACT;EAAA,EAEA;EAEY,IACNG,eAAU,GAAM,CAAAxB,YAAQ,GAAAN,OAAgB,CAAA+B,GAAA,UAAe,IAACzB,YAAA,UAAuB,aAAAA,YAAA,CAAA0B,oBAAA;IAAAC,iBAAA,IACjF;MAEJC,IAAA;MACE;MACAC,KAAA,EAAMnC;IACJ,
|
1
|
+
{"version":3,"names":["configureVXRNCompilerPlugin","clearCompilerCache","resolvePath","events","path","barrel","tsconfigPaths","autoDepOptimizePlugin","getOptimizeDeps","getOptionsFilled","loadEnv","CACHE_KEY","ensureTSConfig","setOneOptions","clientTreeShakePlugin","createFileSystemRouterPlugin","fixDependenciesPlugin","generateFileSystemRouteTypesPlugin","SSRCSSPlugin","virtualEntryId","createVirtualEntry","setMaxListeners","globalThis","__vxrnEnableNativeEnv","one","options","arguments","length","_options_config","_options_optimization","_options_react","_options_ssr","_options_react1","__oneOptions","__vxrnPluginConfig__","config","optimizeDeps","optimizeIds","include","optimizeIdRegex","RegExp","map","id","replace","join","tsConfigPathsPlugin","vxrnOptions","root","process","cwd","barrelOption","optimization","compiler","react","enableCompiler","autoDepsOptions","ssr","autoDepsOptimization","devAndProdPlugins","name","__get","packages","Array","isArray","userConfig","_vxrnOptions_mode","clientEnvDefine","mode","envPrefix","define","onScannedDeps","param","hasReanimated","hasNativewind","_options_native","_options_native_css","enableReanimated","enableNativeCSS","native","css","enableNativewind","Proxy","configIncoming","_options_config2","_configIncoming_plugins","pathsConfig","tsConfigPaths","plugins","flat","some","p","configResolved","resolveId","get","target","key","thisArg","Reflect","enforce","tslibLitePath","err","console","info","env","DEBUG","error","resolve","alias","tslib","_options_web","web","defaultRenderMode","JSON","stringify","setupFile","NODE_ENV","server","url","environments","client","ios","android","hotUpdate","modules","m","relativePath","relative","rootDir","split","sep","acceptedHmrExports","Set","_","transform","code","environment","includes","scan","reactScanPlugin","reactScanConfig","push","obj","configs","disabled","enabled","animationSpeed","showToolbar","getConfigFor","platform","defaultConfig","perPlatformConfig","nativeWebDevAndProdPlugsin","__vxrnAddNativePlugins","__vxrnAddWebPluginsProd","deps"],"sources":["../../../src/vite/one.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "one",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.452",
|
4
4
|
"license": "BSD-3-Clause",
|
5
5
|
"sideEffects": [
|
6
6
|
"setup.mjs",
|
@@ -94,15 +94,15 @@
|
|
94
94
|
"@react-navigation/routers": "~7",
|
95
95
|
"@swc/core": "^1.10.4",
|
96
96
|
"@ungap/structured-clone": "^1.2.0",
|
97
|
-
"@vxrn/compiler": "1.1.
|
98
|
-
"@vxrn/resolve": "1.1.
|
99
|
-
"@vxrn/tslib-lite": "1.1.
|
100
|
-
"@vxrn/universal-color-scheme": "1.1.
|
101
|
-
"@vxrn/use-isomorphic-layout-effect": "1.1.
|
97
|
+
"@vxrn/compiler": "1.1.452",
|
98
|
+
"@vxrn/resolve": "1.1.452",
|
99
|
+
"@vxrn/tslib-lite": "1.1.452",
|
100
|
+
"@vxrn/universal-color-scheme": "1.1.452",
|
101
|
+
"@vxrn/use-isomorphic-layout-effect": "1.1.452",
|
102
102
|
"babel-dead-code-elimination": "^1.0.9",
|
103
103
|
"citty": "^0.1.6",
|
104
104
|
"core-js": "^3.38.1",
|
105
|
-
"create-vxrn": "1.1.
|
105
|
+
"create-vxrn": "1.1.452",
|
106
106
|
"escape-string-regexp": "^5.0.0",
|
107
107
|
"expo-linking": "~6.3.1",
|
108
108
|
"expo-modules-core": "2.1.2",
|
@@ -124,11 +124,12 @@
|
|
124
124
|
"react-native-safe-area-context": "4.10.5",
|
125
125
|
"react-native-screens": "4.4.0",
|
126
126
|
"react-scan": "^0.1.3",
|
127
|
+
"ts-pattern": "^5.6.2",
|
127
128
|
"use-latest-callback": "^0.2.3",
|
128
129
|
"vite": "^6.1.0",
|
129
130
|
"vite-plugin-barrel": "^0.4.1",
|
130
131
|
"vite-tsconfig-paths": "^5.0.1",
|
131
|
-
"vxrn": "1.1.
|
132
|
+
"vxrn": "1.1.452",
|
132
133
|
"ws": "^8.18.0",
|
133
134
|
"xxhashjs": "^0.2.2"
|
134
135
|
},
|
package/src/cli/build.ts
CHANGED
@@ -12,6 +12,7 @@ import {
|
|
12
12
|
build as vxrnBuild,
|
13
13
|
type ClientManifestEntry,
|
14
14
|
} from 'vxrn'
|
15
|
+
|
15
16
|
import * as constants from '../constants'
|
16
17
|
import { setServerGlobals } from '../server/setServerGlobals'
|
17
18
|
import { toAbsolute } from '../utils/toAbsolute'
|
@@ -19,11 +20,13 @@ import { getManifest } from '../vite/getManifest'
|
|
19
20
|
import { loadUserOneOptions } from '../vite/loadConfig'
|
20
21
|
import { runWithAsyncLocalContext } from '../vite/one-server-only'
|
21
22
|
import type { One, RouteInfo } from '../vite/types'
|
23
|
+
import { buildVercelOutputDirectory } from '../vercel/build/buildVercelOutputDirectory'
|
24
|
+
|
22
25
|
import { buildPage } from './buildPage'
|
23
26
|
import { checkNodeVersion } from './checkNodeVersion'
|
24
27
|
import { labelProcess } from './label-process'
|
25
28
|
|
26
|
-
const { ensureDir } = FSExtra
|
29
|
+
const { ensureDir, writeJSON } = FSExtra
|
27
30
|
|
28
31
|
process.on('uncaughtException', (err) => {
|
29
32
|
console.error(err?.message || err)
|
@@ -187,9 +190,10 @@ export async function build(args: {
|
|
187
190
|
return output as RollupOutput
|
188
191
|
}
|
189
192
|
|
193
|
+
let apiOutput: RollupOutput | null = null
|
190
194
|
if (manifest.apiRoutes.length) {
|
191
195
|
console.info(`\n 🔨 build api routes\n`)
|
192
|
-
await buildCustomRoutes('api', manifest.apiRoutes)
|
196
|
+
apiOutput = await buildCustomRoutes('api', manifest.apiRoutes)
|
193
197
|
}
|
194
198
|
|
195
199
|
const builtMiddlewares: Record<string, string> = {}
|
@@ -483,50 +487,49 @@ export async function build(args: {
|
|
483
487
|
constants: JSON.parse(JSON.stringify({ ...constants })) as any,
|
484
488
|
}
|
485
489
|
|
486
|
-
await
|
490
|
+
await writeJSON(toAbsolute(`dist/buildInfo.json`), buildInfoForWriting)
|
487
491
|
|
488
492
|
let postBuildLogs: string[] = []
|
489
493
|
|
490
|
-
const platform = oneOptions.web?.deploy
|
494
|
+
const platform = oneOptions.web?.deploy
|
495
|
+
postBuildLogs.push(`[one.build] platform ${platform}`)
|
491
496
|
|
492
497
|
switch (platform) {
|
493
498
|
case 'vercel': {
|
494
|
-
await
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
postBuildLogs.push(`wrote vercel entry to: ${join('.', 'dist', 'index.js')}`)
|
502
|
-
postBuildLogs.push(`point vercel outputDirectory to dist`)
|
499
|
+
await buildVercelOutputDirectory({
|
500
|
+
apiOutput,
|
501
|
+
buildInfoForWriting,
|
502
|
+
clientDir,
|
503
|
+
oneOptionsRoot: options.root,
|
504
|
+
postBuildLogs,
|
505
|
+
})
|
503
506
|
|
504
507
|
break
|
505
508
|
}
|
506
509
|
|
507
|
-
case 'cloudflare': {
|
508
|
-
|
509
|
-
|
510
|
-
|
510
|
+
// case 'cloudflare': {
|
511
|
+
// await FSExtra.writeFile(
|
512
|
+
// join(options.root, 'dist', 'worker.js'),
|
513
|
+
// `import { serve } from 'one/serve-worker'
|
511
514
|
|
512
|
-
const buildInfo = ${JSON.stringify(buildInfoForWriting)}
|
515
|
+
// const buildInfo = ${JSON.stringify(buildInfoForWriting)}
|
513
516
|
|
514
|
-
const handler = await serve(buildInfo)
|
517
|
+
// const handler = await serve(buildInfo)
|
515
518
|
|
516
|
-
export default {
|
517
|
-
|
518
|
-
}`
|
519
|
-
|
519
|
+
// export default {
|
520
|
+
// fetch: handler.fetch,
|
521
|
+
// }`
|
522
|
+
// )
|
520
523
|
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
compatibility_date = "2024-12-05"
|
525
|
-
`
|
526
|
-
|
524
|
+
// await FSExtra.writeFile(
|
525
|
+
// join(options.root, 'dist', 'wrangler.toml'),
|
526
|
+
// `assets = { directory = "client" }
|
527
|
+
// compatibility_date = "2024-12-05"
|
528
|
+
// `
|
529
|
+
// )
|
527
530
|
|
528
|
-
|
529
|
-
}
|
531
|
+
// break
|
532
|
+
// }
|
530
533
|
}
|
531
534
|
|
532
535
|
if (process.env.VXRN_ANALYZE_BUNDLE) {
|
package/src/cli.ts
CHANGED
@@ -138,9 +138,6 @@ const serveCommand = defineCommand({
|
|
138
138
|
port: {
|
139
139
|
type: 'string',
|
140
140
|
},
|
141
|
-
platform: {
|
142
|
-
type: 'string',
|
143
|
-
},
|
144
141
|
compress: {
|
145
142
|
type: 'boolean',
|
146
143
|
},
|
@@ -154,7 +151,6 @@ const serveCommand = defineCommand({
|
|
154
151
|
port: args.port ? +args.port : undefined,
|
155
152
|
host: args.host,
|
156
153
|
compress: args.compress,
|
157
|
-
platform: args.platform === 'vercel' ? 'vercel' : 'node',
|
158
154
|
loadEnv: !!args.loadEnv,
|
159
155
|
})
|
160
156
|
},
|
package/src/serve.ts
CHANGED
@@ -3,7 +3,7 @@ import { getServerManifest } from './getServerManifest'
|
|
3
3
|
|
4
4
|
import type { One, RouteInfo } from '../vite/types'
|
5
5
|
|
6
|
-
export {
|
6
|
+
export type { Options } from '../router/getRoutes'
|
7
7
|
|
8
8
|
export type RouteInfoCompiled = RouteInfo & {
|
9
9
|
compiledRegex: RegExp
|
@@ -0,0 +1,126 @@
|
|
1
|
+
import { join, resolve } from 'node:path'
|
2
|
+
|
3
|
+
import FSExtra from 'fs-extra'
|
4
|
+
import type { RollupOutput } from 'rollup'
|
5
|
+
import { isMatching, P } from 'ts-pattern'
|
6
|
+
|
7
|
+
import { createApiServerlessFunction } from './generate/createApiServerlessFunction'
|
8
|
+
import { createSsrServerlessFunction } from './generate/createSsrServerlessFunction'
|
9
|
+
import { serverlessVercelNodeJsConfig } from './config/vc-config-base'
|
10
|
+
import { serverlessVercelPackageJson } from './config/vc-package-base'
|
11
|
+
import { vercelBuildOutputConfig } from './config/vc-build-output-config-base'
|
12
|
+
|
13
|
+
import type { One } from '../../vite/types'
|
14
|
+
|
15
|
+
const { copy, ensureDir, writeJSON } = FSExtra
|
16
|
+
|
17
|
+
async function moveAllFiles(src: string, dest: string) {
|
18
|
+
try {
|
19
|
+
await copy(src, dest, { overwrite: true, errorOnExist: false })
|
20
|
+
} catch (err) {
|
21
|
+
console.error('Error moving files:', err)
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
export const buildVercelOutputDirectory = async ({
|
26
|
+
apiOutput,
|
27
|
+
buildInfoForWriting,
|
28
|
+
clientDir,
|
29
|
+
oneOptionsRoot,
|
30
|
+
postBuildLogs,
|
31
|
+
}: {
|
32
|
+
apiOutput: RollupOutput | null
|
33
|
+
buildInfoForWriting: One.BuildInfo
|
34
|
+
clientDir: string
|
35
|
+
oneOptionsRoot: string
|
36
|
+
postBuildLogs: string[]
|
37
|
+
}) => {
|
38
|
+
const { routeToBuildInfo } = buildInfoForWriting
|
39
|
+
if (apiOutput) {
|
40
|
+
const compiltedApiRoutes = (apiOutput?.output ?? []).filter((o) =>
|
41
|
+
isMatching({ code: P.string, facadeModuleId: P.string }, o)
|
42
|
+
)
|
43
|
+
for (const route of buildInfoForWriting.manifest.apiRoutes) {
|
44
|
+
const compiledRoute = compiltedApiRoutes.find((compiled) => {
|
45
|
+
const flag = compiled.facadeModuleId.includes(route.file.replace('./', ''))
|
46
|
+
return flag
|
47
|
+
})
|
48
|
+
if (compiledRoute) {
|
49
|
+
postBuildLogs.push(
|
50
|
+
`[one.build][vercel] generating serverless function for apiRoute ${route.page}`
|
51
|
+
)
|
52
|
+
await createApiServerlessFunction(
|
53
|
+
route.page,
|
54
|
+
compiledRoute.code,
|
55
|
+
oneOptionsRoot,
|
56
|
+
postBuildLogs
|
57
|
+
)
|
58
|
+
} else {
|
59
|
+
console.warn('\n 🔨[one.build][vercel] apiRoute missing code compilation for', route.file)
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
const vercelOutputFunctionsDir = join(oneOptionsRoot, 'dist', `.vercel/output/functions`)
|
65
|
+
await ensureDir(vercelOutputFunctionsDir)
|
66
|
+
|
67
|
+
for (const route of buildInfoForWriting.manifest.pageRoutes) {
|
68
|
+
switch (route.type) {
|
69
|
+
case 'ssr': {
|
70
|
+
// Server Side Rendered
|
71
|
+
const builtPageRoute = routeToBuildInfo[route.file]
|
72
|
+
if (builtPageRoute) {
|
73
|
+
postBuildLogs.push(
|
74
|
+
`[one.build][vercel] generate serverless function for ${route.page} with ${route.type}`
|
75
|
+
)
|
76
|
+
await createSsrServerlessFunction(
|
77
|
+
route.page,
|
78
|
+
buildInfoForWriting,
|
79
|
+
oneOptionsRoot,
|
80
|
+
postBuildLogs
|
81
|
+
)
|
82
|
+
}
|
83
|
+
break
|
84
|
+
}
|
85
|
+
default:
|
86
|
+
// no-op, these will be copied from built dist/client into .vercel/output/static
|
87
|
+
// postBuildLogs.push(`[one.build][vercel] pageRoute will be copied to .vercel/output/static for ${route.page} with ${route.type}`)
|
88
|
+
break
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
const vercelMiddlewareDir = join(oneOptionsRoot, 'dist', '.vercel/output/functions/_middleware')
|
93
|
+
await ensureDir(vercelMiddlewareDir)
|
94
|
+
postBuildLogs.push(
|
95
|
+
`[one.build][vercel] copying middlewares from ${join(oneOptionsRoot, 'dist', 'middlewares')} to ${vercelMiddlewareDir}`
|
96
|
+
)
|
97
|
+
await moveAllFiles(resolve(join(oneOptionsRoot, 'dist', 'middlewares')), vercelMiddlewareDir)
|
98
|
+
const vercelMiddlewarePackageJsonFilePath = resolve(join(vercelMiddlewareDir, 'index.js'))
|
99
|
+
postBuildLogs.push(
|
100
|
+
`[one.build][vercel] writing package.json to ${vercelMiddlewarePackageJsonFilePath}`
|
101
|
+
)
|
102
|
+
await writeJSON(vercelMiddlewarePackageJsonFilePath, serverlessVercelPackageJson)
|
103
|
+
postBuildLogs.push(
|
104
|
+
`[one.build][vercel] writing .vc-config.json to ${join(vercelMiddlewareDir, '.vc-config.json')}`
|
105
|
+
)
|
106
|
+
await writeJSON(resolve(join(vercelMiddlewareDir, '.vc-config.json')), {
|
107
|
+
...serverlessVercelNodeJsConfig,
|
108
|
+
handler: '_middleware.js',
|
109
|
+
})
|
110
|
+
|
111
|
+
const vercelOutputStaticDir = resolve(join(oneOptionsRoot, 'dist', '.vercel/output/static'))
|
112
|
+
await ensureDir(vercelOutputStaticDir)
|
113
|
+
|
114
|
+
postBuildLogs.push(
|
115
|
+
`[one.build][vercel] copying static files from ${clientDir} to ${vercelOutputStaticDir}`
|
116
|
+
)
|
117
|
+
await moveAllFiles(clientDir, vercelOutputStaticDir)
|
118
|
+
|
119
|
+
// Documentation - Vercel Build Output v3 config.json
|
120
|
+
// https://vercel.com/docs/build-output-api/v3/configuration#config.json-supported-properties
|
121
|
+
const vercelConfigFilePath = resolve(
|
122
|
+
join(oneOptionsRoot, 'dist', '.vercel/output', 'config.json')
|
123
|
+
)
|
124
|
+
await writeJSON(vercelConfigFilePath, vercelBuildOutputConfig)
|
125
|
+
postBuildLogs.push(`[one.build] wrote vercel config to: ${vercelConfigFilePath}`)
|
126
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// Documentation - Vercel Build Output v3 Config
|
2
|
+
// https://vercel.com/docs/build-output-api/v3/configuration#config.json-supported-properties
|
3
|
+
export const vercelBuildOutputConfig = {
|
4
|
+
version: 3,
|
5
|
+
// https://vercel.com/docs/build-output-api/v3/configuration#routes
|
6
|
+
routes: [
|
7
|
+
{
|
8
|
+
src: '/(.*)',
|
9
|
+
status: 200,
|
10
|
+
},
|
11
|
+
],
|
12
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// Documentation - Vercel Build Output v3 Node.js Config
|
2
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#node.js-config
|
3
|
+
export const serverlessVercelNodeJsConfig = {
|
4
|
+
environment: {},
|
5
|
+
runtime: 'nodejs20.x',
|
6
|
+
handler: 'entrypoint/index.js',
|
7
|
+
launcherType: 'Nodejs',
|
8
|
+
shouldAddHelpers: true,
|
9
|
+
shouldAddSourceMapSupport: true,
|
10
|
+
// @TODO: We could support edge functions in the future.
|
11
|
+
// Requires a larger discusion of how to handle edge functions in general.
|
12
|
+
// +ssr-edge.tsx or +edge.tsx down the road.
|
13
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#edge-functions
|
14
|
+
// runtime: 'edge',
|
15
|
+
// regions: 'all',
|
16
|
+
// @TODO: We could support ISR in the future as well.
|
17
|
+
// Requires a larger discusion of how to handle ISR in general.
|
18
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#prerender-functions
|
19
|
+
// We would need to generate the bypassToken and copy *.html fallback files to the *.func folder.
|
20
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#fallback-static-file
|
21
|
+
// bypassToken?: string;
|
22
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export const serverlessVercelPackageJson = { type: 'module' }
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { join, resolve } from 'node:path'
|
2
|
+
|
3
|
+
import fs from 'fs-extra'
|
4
|
+
|
5
|
+
import { serverlessVercelPackageJson } from '../config/vc-package-base'
|
6
|
+
import { serverlessVercelNodeJsConfig } from '../config/vc-config-base'
|
7
|
+
|
8
|
+
// Documentation - Vercel Build Output v3
|
9
|
+
// https://vercel.com/docs/build-output-api/v3#build-output-api-v3
|
10
|
+
export async function createApiServerlessFunction(
|
11
|
+
pageName: string,
|
12
|
+
code: string,
|
13
|
+
oneOptionsRoot: string,
|
14
|
+
postBuildLogs: string[]
|
15
|
+
) {
|
16
|
+
try {
|
17
|
+
postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`)
|
18
|
+
|
19
|
+
const funcFolder = join(oneOptionsRoot, 'dist', `.vercel/output/functions/${pageName}.func`)
|
20
|
+
await fs.ensureDir(funcFolder)
|
21
|
+
|
22
|
+
if (code.includes('react')) {
|
23
|
+
postBuildLogs.push(
|
24
|
+
`[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${pageName}`
|
25
|
+
)
|
26
|
+
await fs.copy(
|
27
|
+
resolve(join(oneOptionsRoot, '..', '..', 'node_modules', 'react')),
|
28
|
+
resolve(join(funcFolder, 'node_modules', 'react'))
|
29
|
+
)
|
30
|
+
}
|
31
|
+
|
32
|
+
const distAssetsFolder = resolve(join(funcFolder, 'assets'))
|
33
|
+
postBuildLogs.push(
|
34
|
+
`[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`
|
35
|
+
)
|
36
|
+
await fs.copy(resolve(join(oneOptionsRoot, 'dist', 'api', 'assets')), distAssetsFolder)
|
37
|
+
|
38
|
+
await fs.ensureDir(resolve(join(funcFolder, 'entrypoint')))
|
39
|
+
const entrypointFilePath = resolve(join(funcFolder, 'entrypoint', 'index.js'))
|
40
|
+
postBuildLogs.push(
|
41
|
+
`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`
|
42
|
+
)
|
43
|
+
await fs.writeFile(entrypointFilePath, code)
|
44
|
+
|
45
|
+
const packageJsonFilePath = resolve(join(funcFolder, 'package.json'))
|
46
|
+
postBuildLogs.push(
|
47
|
+
`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`
|
48
|
+
)
|
49
|
+
await fs.writeJSON(packageJsonFilePath, serverlessVercelPackageJson)
|
50
|
+
|
51
|
+
postBuildLogs.push(
|
52
|
+
`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${join(funcFolder, '.vc-config.json')}`
|
53
|
+
)
|
54
|
+
// Documentation - Vercel Build Output v3 Node.js Config
|
55
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#node.js-config
|
56
|
+
return fs.writeJson(join(funcFolder, '.vc-config.json'), {
|
57
|
+
...serverlessVercelNodeJsConfig,
|
58
|
+
handler: 'entrypoint/index.js',
|
59
|
+
})
|
60
|
+
} catch (e) {
|
61
|
+
console.error(
|
62
|
+
`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`,
|
63
|
+
e
|
64
|
+
)
|
65
|
+
}
|
66
|
+
}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
import fs from 'fs-extra'
|
2
|
+
import { join, resolve } from 'node:path'
|
3
|
+
import { serverlessVercelNodeJsConfig } from '../config/vc-config-base'
|
4
|
+
import { serverlessVercelPackageJson } from '../config/vc-package-base'
|
5
|
+
import type { One } from '../../../vite/types'
|
6
|
+
|
7
|
+
// Documentation - Vercel Build Output v3
|
8
|
+
// https://vercel.com/docs/build-output-api/v3#build-output-api-v3
|
9
|
+
export async function createSsrServerlessFunction(
|
10
|
+
pageName: string,
|
11
|
+
buildInfo: One.BuildInfo,
|
12
|
+
oneOptionsRoot: string,
|
13
|
+
postBuildLogs: string[]
|
14
|
+
) {
|
15
|
+
try {
|
16
|
+
postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`)
|
17
|
+
|
18
|
+
const buildInfoAsString = JSON.stringify(buildInfo)
|
19
|
+
const funcFolder = resolve(
|
20
|
+
join(oneOptionsRoot, 'dist', `.vercel/output/functions/${pageName}.func`)
|
21
|
+
)
|
22
|
+
await fs.ensureDir(funcFolder)
|
23
|
+
|
24
|
+
const distServerFrom = resolve(join(oneOptionsRoot, 'dist', 'server'))
|
25
|
+
const distServerTo = resolve(join(funcFolder, 'server'))
|
26
|
+
await fs.ensureDir(distServerTo)
|
27
|
+
postBuildLogs.push(
|
28
|
+
`[one.build][vercel.createSsrServerlessFunction] copy server dist files from ${distServerFrom} to ${distServerTo}`
|
29
|
+
)
|
30
|
+
await fs.copy(distServerFrom, distServerTo)
|
31
|
+
|
32
|
+
postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing buildInfo.json`)
|
33
|
+
await fs.writeFile(join(funcFolder, 'buildInfo.js'), `export default ${buildInfoAsString}`)
|
34
|
+
|
35
|
+
await fs.ensureDir(join(funcFolder, 'entrypoint'))
|
36
|
+
const entrypointFilePath = resolve(join(funcFolder, 'entrypoint', 'index.js'))
|
37
|
+
postBuildLogs.push(
|
38
|
+
`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`
|
39
|
+
)
|
40
|
+
await fs.writeFile(
|
41
|
+
entrypointFilePath,
|
42
|
+
`
|
43
|
+
const buildInfoConfig = await import('../buildInfo.js');
|
44
|
+
const entry = await import('../server/_virtual_one-entry.js');
|
45
|
+
|
46
|
+
const handler = async (req, res) => {
|
47
|
+
// console.debug("req.url", req.url);
|
48
|
+
const url = new URL(req.url, \`https://\${process.env.VERCEL_URL}\`);
|
49
|
+
const loaderProps = {
|
50
|
+
path: url.pathname,
|
51
|
+
params: Object.fromEntries(url.searchParams.entries())
|
52
|
+
}
|
53
|
+
const postfix = url.pathname.endsWith('/') ? 'index.tsx' : '+ssr.tsx';
|
54
|
+
const routeFile = \`.\${url.pathname}\${postfix}\`;
|
55
|
+
const route = buildInfoConfig.default.routeToBuildInfo[routeFile];
|
56
|
+
|
57
|
+
const render = entry.default.render;
|
58
|
+
const exported = await import(route.serverJsPath.replace('dist/','../'))
|
59
|
+
const loaderData = await exported.loader?.(loaderProps)
|
60
|
+
const preloads = route.preloads
|
61
|
+
const rendered = await render({
|
62
|
+
mode: route.type,
|
63
|
+
loaderData,
|
64
|
+
loaderProps,
|
65
|
+
path: loaderProps?.path || '/',
|
66
|
+
preloads,
|
67
|
+
})
|
68
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8')
|
69
|
+
// https://vercel.com/docs/deployments/skew-protection#supported-frameworks__
|
70
|
+
if (process.env.VERCEL_SKEW_PROTECTION_ENABLED === '1') {
|
71
|
+
res.setHeader('Set-Cookie', [
|
72
|
+
\`__vdpl=\${process.env.VERCEL_DEPLOYMENT_ID}; HttpOnly\`,
|
73
|
+
]);
|
74
|
+
}
|
75
|
+
res.end(rendered)
|
76
|
+
}
|
77
|
+
|
78
|
+
export default handler;
|
79
|
+
`
|
80
|
+
)
|
81
|
+
|
82
|
+
const packageJsonFilePath = resolve(join(funcFolder, 'package.json'))
|
83
|
+
postBuildLogs.push(
|
84
|
+
`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`
|
85
|
+
)
|
86
|
+
await fs.writeJSON(packageJsonFilePath, serverlessVercelPackageJson)
|
87
|
+
|
88
|
+
// Documentation - Vercel Build Output v3 Node.js Config
|
89
|
+
// https://vercel.com/docs/build-output-api/v3/primitives#node.js-config
|
90
|
+
const vcConfigFilePath = resolve(join(funcFolder, '.vc-config.json'))
|
91
|
+
postBuildLogs.push(
|
92
|
+
`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${vcConfigFilePath}`
|
93
|
+
)
|
94
|
+
return fs.writeJson(vcConfigFilePath, {
|
95
|
+
...serverlessVercelNodeJsConfig,
|
96
|
+
handler: 'entrypoint/index.js',
|
97
|
+
environment: {
|
98
|
+
...serverlessVercelNodeJsConfig.environment,
|
99
|
+
ONE_DEFAULT_RENDER_MODE: 'ssr',
|
100
|
+
},
|
101
|
+
})
|
102
|
+
} catch (e) {
|
103
|
+
console.error(
|
104
|
+
`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`,
|
105
|
+
e
|
106
|
+
)
|
107
|
+
}
|
108
|
+
}
|
@@ -61,7 +61,12 @@ export function mergeHeaders(onto: Headers, from: Headers) {
|
|
61
61
|
}
|
62
62
|
|
63
63
|
export function ensureAsyncLocalID() {
|
64
|
-
|
64
|
+
// NOTE: this is a hack to get around AsyncLocalStorage.getStore() being undefined on Vercel
|
65
|
+
// We don't think there's a need to invoke runWithAsyncLocalContext to handle multiple requests
|
66
|
+
// since Vercel ultimately deploys to AWS Lambda, which does not have this issue
|
67
|
+
// The Error you willl see is something like this:
|
68
|
+
// Error: Internal One error, no AsyncLocalStorage id! at ensureAsyncLocalID (file:///var/task/server/_virtual_one-entry.js:37411:64)
|
69
|
+
const id = process.env.VERCEL ? { _id: Math.random() } : requestAsyncLocalStore?.getStore()
|
65
70
|
|
66
71
|
if (!id) {
|
67
72
|
throw new Error(`Internal One error, no AsyncLocalStorage id!`)
|