vxrn 1.4.10 → 1.4.12
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/config/getBaseVitePlugins.js +7 -3
- package/dist/config/getBaseVitePlugins.js.map +1 -1
- package/dist/config/getBaseVitePlugins.mjs +4 -3
- package/dist/config/getBaseVitePlugins.mjs.map +1 -1
- package/dist/config/getBaseVitePlugins.native.js +4 -3
- package/dist/config/getBaseVitePlugins.native.js.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +3 -2
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js +3 -2
- package/dist/constants.native.js.map +1 -1
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.js +54 -0
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.js.map +6 -0
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.mjs +49 -0
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.mjs.map +1 -0
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.native.js +45 -0
- package/dist/plugins/autoPreBundleDepsForSsrPlugin.native.js.map +6 -0
- package/dist/plugins/babelReanimated.js +53 -0
- package/dist/plugins/babelReanimated.js.map +6 -0
- package/dist/plugins/babelReanimated.mjs +28 -0
- package/dist/plugins/babelReanimated.mjs.map +1 -0
- package/dist/plugins/babelReanimated.native.js +53 -0
- package/dist/plugins/babelReanimated.native.js.map +6 -0
- package/dist/plugins/serverExtensions.test.js +54 -0
- package/dist/plugins/serverExtensions.test.js.map +6 -0
- package/dist/plugins/serverExtensions.test.mjs +66 -0
- package/dist/plugins/serverExtensions.test.mjs.map +1 -0
- package/dist/plugins/serverExtensions.test.native.js +87 -0
- package/dist/plugins/serverExtensions.test.native.js.map +1 -0
- package/dist/serve/vercel.js +16 -0
- package/dist/serve/vercel.js.map +6 -0
- package/dist/serve/vercel.mjs +14 -0
- package/dist/serve/vercel.mjs.map +1 -0
- package/dist/serve/vercel.native.js +16 -0
- package/dist/serve/vercel.native.js.map +6 -0
- package/dist/utils/depPatches.js +266 -0
- package/dist/utils/depPatches.js.map +6 -0
- package/dist/utils/depPatches.mjs +219 -0
- package/dist/utils/depPatches.mjs.map +1 -0
- package/dist/utils/depPatches.native.js +264 -0
- package/dist/utils/depPatches.native.js.map +6 -0
- package/dist/utils/fork/vite/build.js +285 -0
- package/dist/utils/fork/vite/build.js.map +6 -0
- package/dist/utils/fork/vite/build.mjs +257 -0
- package/dist/utils/fork/vite/build.mjs.map +1 -0
- package/dist/utils/fork/vite/build.native.js +339 -0
- package/dist/utils/fork/vite/build.native.js.map +6 -0
- package/dist/utils/fork/vite/constants.js +31 -0
- package/dist/utils/fork/vite/constants.js.map +6 -0
- package/dist/utils/fork/vite/constants.mjs +3 -0
- package/dist/utils/fork/vite/constants.mjs.map +1 -0
- package/dist/utils/fork/vite/constants.native.js +31 -0
- package/dist/utils/fork/vite/constants.native.js.map +6 -0
- package/dist/utils/fork/vite/plugins.js +7 -0
- package/dist/utils/fork/vite/plugins.js.map +6 -0
- package/dist/utils/fork/vite/plugins.mjs +5 -0
- package/dist/utils/fork/vite/plugins.mjs.map +1 -0
- package/dist/utils/fork/vite/plugins.native.js +7 -0
- package/dist/utils/fork/vite/plugins.native.js.map +6 -0
- package/dist/utils/fork/vite/typeUtils.js +1 -0
- package/dist/utils/fork/vite/typeUtils.js.map +6 -0
- package/dist/utils/fork/vite/typeUtils.mjs +2 -0
- package/dist/utils/fork/vite/typeUtils.mjs.map +1 -0
- package/dist/utils/fork/vite/typeUtils.native.js +1 -0
- package/dist/utils/fork/vite/typeUtils.native.js.map +6 -0
- package/dist/utils/fork/vite/utils.js +12 -0
- package/dist/utils/fork/vite/utils.js.map +6 -0
- package/dist/utils/fork/vite/utils.mjs +9 -0
- package/dist/utils/fork/vite/utils.mjs.map +1 -0
- package/dist/utils/fork/vite/utils.native.js +12 -0
- package/dist/utils/fork/vite/utils.native.js.map +6 -0
- package/dist/utils/getBaseViteConfig.js +88 -0
- package/dist/utils/getBaseViteConfig.js.map +6 -0
- package/dist/utils/getBaseViteConfig.mjs +67 -0
- package/dist/utils/getBaseViteConfig.mjs.map +1 -0
- package/dist/utils/getBaseViteConfig.native.js +92 -0
- package/dist/utils/getBaseViteConfig.native.js.map +6 -0
- package/dist/utils/getOptimizeDeps.js +164 -0
- package/dist/utils/getOptimizeDeps.js.map +6 -0
- package/dist/utils/getOptimizeDeps.mjs +24 -0
- package/dist/utils/getOptimizeDeps.mjs.map +1 -0
- package/dist/utils/getOptimizeDeps.native.js +169 -0
- package/dist/utils/getOptimizeDeps.native.js.map +6 -0
- package/dist/utils/getOptionsFilled.js +64 -0
- package/dist/utils/getOptionsFilled.js.map +6 -0
- package/dist/utils/getOptionsFilled.mjs +75 -0
- package/dist/utils/getOptionsFilled.mjs.map +1 -0
- package/dist/utils/getOptionsFilled.native.js +74 -0
- package/dist/utils/getOptionsFilled.native.js.map +6 -0
- package/dist/utils/getReactNativeConfig.js +191 -0
- package/dist/utils/getReactNativeConfig.js.map +6 -0
- package/dist/utils/getReactNativeConfig.mjs +177 -0
- package/dist/utils/getReactNativeConfig.mjs.map +1 -0
- package/dist/utils/getReactNativeConfig.native.js +209 -0
- package/dist/utils/getReactNativeConfig.native.js.map +6 -0
- package/dist/utils/getViteServerConfig.js +106 -0
- package/dist/utils/getViteServerConfig.js.map +6 -0
- package/dist/utils/getViteServerConfig.mjs +101 -0
- package/dist/utils/getViteServerConfig.mjs.map +1 -0
- package/dist/utils/getViteServerConfig.native.js +105 -0
- package/dist/utils/getViteServerConfig.native.js.map +6 -0
- package/dist/utils/mergeUserConfig.js +46 -0
- package/dist/utils/mergeUserConfig.js.map +6 -0
- package/dist/utils/mergeUserConfig.mjs +21 -0
- package/dist/utils/mergeUserConfig.mjs.map +1 -0
- package/dist/utils/mergeUserConfig.native.js +48 -0
- package/dist/utils/mergeUserConfig.native.js.map +6 -0
- package/dist/utils/prependMiddleware.js +7 -0
- package/dist/utils/prependMiddleware.js.map +6 -0
- package/dist/utils/prependMiddleware.mjs +5 -0
- package/dist/utils/prependMiddleware.mjs.map +1 -0
- package/dist/utils/prependMiddleware.native.js +7 -0
- package/dist/utils/prependMiddleware.native.js.map +6 -0
- package/dist/utils/readVXRNConfig.js +32 -0
- package/dist/utils/readVXRNConfig.js.map +6 -0
- package/dist/utils/readVXRNConfig.mjs +29 -0
- package/dist/utils/readVXRNConfig.mjs.map +1 -0
- package/dist/utils/readVXRNConfig.native.js +34 -0
- package/dist/utils/readVXRNConfig.native.js.map +6 -0
- package/dist/utils/scanDepsToPreBundleForSsr.js +94 -0
- package/dist/utils/scanDepsToPreBundleForSsr.js.map +6 -0
- package/dist/utils/scanDepsToPreBundleForSsr.mjs +65 -0
- package/dist/utils/scanDepsToPreBundleForSsr.mjs.map +1 -0
- package/dist/utils/scanDepsToPreBundleForSsr.native.js +99 -0
- package/dist/utils/scanDepsToPreBundleForSsr.native.js.map +6 -0
- package/package.json +14 -14
- package/src/config/getBaseVitePlugins.ts +10 -3
- package/src/constants.ts +2 -0
- package/src/plugins/serverExtensions.test.ts +124 -0
- package/types/config/getBaseVitePlugins.d.ts.map +1 -1
- package/types/constants.d.ts +1 -0
- package/types/constants.d.ts.map +1 -1
- package/types/plugins/autoPreBundleDepsForSsrPlugin.d.ts.map +1 -0
- package/types/plugins/babelReanimated.d.ts.map +1 -0
- package/types/plugins/serverExtensions.test.d.ts +2 -0
- package/types/plugins/serverExtensions.test.d.ts.map +1 -0
- package/types/serve/vercel.d.ts.map +1 -0
- package/types/utils/depPatches.d.ts.map +1 -0
- package/types/utils/fork/vite/build.d.ts.map +1 -0
- package/types/utils/fork/vite/constants.d.ts.map +1 -0
- package/types/utils/fork/vite/plugins.d.ts.map +1 -0
- package/types/utils/fork/vite/typeUtils.d.ts.map +1 -0
- package/types/utils/fork/vite/utils.d.ts.map +1 -0
- package/types/utils/getBaseViteConfig.d.ts.map +1 -0
- package/types/utils/getOptimizeDeps.d.ts.map +1 -0
- package/types/utils/getOptionsFilled.d.ts.map +1 -0
- package/types/utils/getReactNativeConfig.d.ts.map +1 -0
- package/types/utils/getViteServerConfig.d.ts.map +1 -0
- package/types/utils/mergeUserConfig.d.ts.map +1 -0
- package/types/utils/prependMiddleware.d.ts.map +1 -0
- package/types/utils/readVXRNConfig.d.ts.map +1 -0
- package/types/utils/scanDepsToPreBundleForSsr.d.ts.map +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { webExtensions } from "../constants";
|
|
1
|
+
import { ssrExtensions, webExtensions } from "../constants";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
3
|
import { extname } from "node:path";
|
|
4
4
|
import { createVXRNCompilerPlugin } from "@vxrn/compiler";
|
|
@@ -18,7 +18,7 @@ function getBaseVitePlugins() {
|
|
|
18
18
|
environments: {
|
|
19
19
|
ssr: {
|
|
20
20
|
resolve: {
|
|
21
|
-
extensions:
|
|
21
|
+
extensions: ssrExtensions,
|
|
22
22
|
conditions: ["vxrn-web"],
|
|
23
23
|
externalConditions: ["vxrn-web"]
|
|
24
24
|
}
|
|
@@ -38,9 +38,13 @@ function getBaseVitePlugins() {
|
|
|
38
38
|
const resolved = await this.resolve(source, importer, options);
|
|
39
39
|
if (!resolved || resolved.id.includes("node_modules"))
|
|
40
40
|
return resolved;
|
|
41
|
+
if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id))
|
|
42
|
+
throw new Error(
|
|
43
|
+
`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`
|
|
44
|
+
);
|
|
41
45
|
const jsExtension = extname(resolved.id), withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""), platformSpecificExtension = {
|
|
42
46
|
client: ["web"],
|
|
43
|
-
ssr: ["web"],
|
|
47
|
+
ssr: ["server", "web"],
|
|
44
48
|
ios: ["ios", "native"],
|
|
45
49
|
android: ["android", "native"]
|
|
46
50
|
}[this.environment.name];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/config/getBaseVitePlugins.ts"],
|
|
4
|
-
"mappings": "AACA,SAAS,qBAAqB;
|
|
4
|
+
"mappings": "AACA,SAAS,eAAe,qBAAqB;AAC7C,OAAO,aAAa;AACpB,SAAS,eAAe;AACxB,SAAS,gCAAgC;AAIlC,SAAS,qBAAqC;AACnD,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AACP,eAAO;AAAA,UACL,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKT;AAAA,UAEA,cAAc;AAAA,YACZ,KAAK;AAAA,cACH,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,gBACvB,oBAAoB,CAAC,UAAU;AAAA,cACjC;AAAA,YACF;AAAA,YAEA,QAAQ;AAAA,cACN,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,cACzB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA,MAGA,MAAM,UAAU,QAAQ,UAAU,SAAS;AAKzC,YAAI,SAAS,KAAM;AAOnB,cAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ,UAAU,OAAO;AAE7D,YAAI,CAAC,YAAY,SAAS,GAAG,SAAS,cAAc;AAClD,iBAAO;AAIT,YAAI,KAAK,YAAY,SAAS,SAAS,iBAAiB,KAAK,SAAS,EAAE;AACtE,gBAAM,IAAI;AAAA,YACR,4CAA4C,KAAK,YAAY,IAAI,KAAK,MAAM,iBAAiB,QAAQ;AAAA,UACvG;AAIF,cAAM,cAAc,QAAQ,SAAS,EAAE,GACjC,aAAa,SAAS,GAAG,QAAQ,IAAI,OAAO,KAAK,WAAW,GAAG,GAAG,EAAE,GASpE,4BAP0B;AAAA,UAC9B,QAAQ,CAAC,KAAK;AAAA,UACd,KAAK,CAAC,UAAU,KAAK;AAAA,UACrB,KAAK,CAAC,OAAO,QAAQ;AAAA,UACrB,SAAS,CAAC,WAAW,QAAQ;AAAA,QAC/B,EAE0D,KAAK,YAAY,IAAI;AAE/E,YAAI;AACF,qBAAW,qBAAqB,2BAA2B;AACzD,kBAAM,WAAW,GAAG,UAAU,IAAI,iBAAiB,GAAG,WAAW;AACjE,gBAAI,MAAM,QAAQ,WAAW,QAAQ;AACnC,qBAAO;AAAA,gBACL,IAAI;AAAA,cACN;AAAA,UAEJ;AAAA,MAEJ;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,MACE,MAAM;AAAA,MAEN,kBAAkB;AAChB,cAAM,SAAS,QAAQ;AACvB,gBAAQ,OAAO,IAAI,SAAgB;AACjC,cACE,SAAO,KAAK,CAAC,KAAM,YACnB,KAAK,CAAC,EAAE,WAAW,+BAA+B;AAIpD,mBAAO,OAAO,GAAG,IAAI;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,yBAAyB,CAAC,CAAC;AAAA,EAC7B;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { webExtensions } from "../constants.mjs";
|
|
1
|
+
import { ssrExtensions, webExtensions } from "../constants.mjs";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
3
|
import { extname } from "node:path";
|
|
4
4
|
import { createVXRNCompilerPlugin } from "@vxrn/compiler";
|
|
@@ -17,7 +17,7 @@ function getBaseVitePlugins() {
|
|
|
17
17
|
environments: {
|
|
18
18
|
ssr: {
|
|
19
19
|
resolve: {
|
|
20
|
-
extensions:
|
|
20
|
+
extensions: ssrExtensions,
|
|
21
21
|
conditions: ["vxrn-web"],
|
|
22
22
|
externalConditions: ["vxrn-web"]
|
|
23
23
|
}
|
|
@@ -36,11 +36,12 @@ function getBaseVitePlugins() {
|
|
|
36
36
|
if (options?.scan) return;
|
|
37
37
|
const resolved = await this.resolve(source, importer, options);
|
|
38
38
|
if (!resolved || resolved.id.includes("node_modules")) return resolved;
|
|
39
|
+
if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id)) throw new Error(`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`);
|
|
39
40
|
const jsExtension = extname(resolved.id),
|
|
40
41
|
withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""),
|
|
41
42
|
platformSpecificExtension = {
|
|
42
43
|
client: ["web"],
|
|
43
|
-
ssr: ["web"],
|
|
44
|
+
ssr: ["server", "web"],
|
|
44
45
|
ios: ["ios", "native"],
|
|
45
46
|
android: ["android", "native"]
|
|
46
47
|
}[this.environment.name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","jsExtension","withoutExt","replace","RegExp","platformSpecificExtension","ios","android","
|
|
1
|
+
{"version":3,"names":["ssrExtensions","webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","environment","test","Error","jsExtension","withoutExt","replace","RegExp","platformSpecificExtension","ios","android","platformExtension","fullPath","pathExists","configureServer","ogWarn","console","warn","args","startsWith"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,aAAA,QAAqB;AAC7C,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;UAAA;UAAA;UAAA;UAAA;QAAA,CAKT;QAEAC,YAAA,EAAc;UACZC,GAAA,EAAK;YACHF,OAAA,EAAS;cACPG,UAAA,EAAYZ,aAAA;cACZa,UAAA,EAAY,CAAC,UAAU;cACvBC,kBAAA,EAAoB,CAAC,UAAU;YACjC;UACF;UAEAC,MAAA,EAAQ;YACNN,OAAA,EAAS;cACPG,UAAA,EAAYX,aAAA;cACZY,UAAA,EAAY,CAAC,UAAU;YACzB;UACF;QACF;MACF;IACF;IAAA;IAGA,MAAMG,UAAUC,MAAA,EAAQC,QAAA,EAAUC,OAAA,EAAS;MAKzC,IAAIA,OAAA,EAASC,IAAA,EAAM;MAOnB,MAAMC,QAAA,GAAW,MAAM,KAAKZ,OAAA,CAAQQ,MAAA,EAAQC,QAAA,EAAUC,OAAO;MAE7D,IAAI,CAACE,QAAA,IAAYA,QAAA,CAASC,EAAA,CAAGC,QAAA,CAAS,cAAc,GAClD,OAAOF,QAAA;MAIT,IAAI,KAAKG,WAAA,CAAYlB,IAAA,KAAS,SAAS,iBAAiBmB,IAAA,CAAKJ,QAAA,CAASC,EAAE,GACtE,MAAM,IAAII,KAAA,CACR,4CAA4C,KAAKF,WAAA,CAAYlB,IAAI,KAAKW,MAAM,iBAAiBC,QAAQ,GACvG;MAIF,MAAMS,WAAA,GAAcxB,OAAA,CAAQkB,QAAA,CAASC,EAAE;QACjCM,UAAA,GAAaP,QAAA,CAASC,EAAA,CAAGO,OAAA,CAAQ,IAAIC,MAAA,CAAO,KAAKH,WAAW,GAAG,GAAG,EAAE;QASpEI,yBAAA,GAP0B;UAC9BhB,MAAA,EAAQ,CAAC,KAAK;UACdJ,GAAA,EAAK,CAAC,UAAU,KAAK;UACrBqB,GAAA,EAAK,CAAC,OAAO,QAAQ;UACrBC,OAAA,EAAS,CAAC,WAAW,QAAQ;QAC/B,EAE0D,KAAKT,WAAA,CAAYlB,IAAI;MAE/E,IAAIyB,yBAAA,EACF,WAAWG,iBAAA,IAAqBH,yBAAA,EAA2B;QACzD,MAAMI,QAAA,GAAW,GAAGP,UAAU,IAAIM,iBAAiB,GAAGP,WAAW;QACjE,IAAI,MAAMzB,OAAA,CAAQkC,UAAA,CAAWD,QAAQ,GACnC,OAAO;UACLb,EAAA,EAAIa;QACN;MAEJ;IAEJ;EACF;EAAA;EAAA;EAAA;EAKA;IACE7B,IAAA,EAAM;IAEN+B,gBAAA,EAAkB;MAChB,MAAMC,MAAA,GAASC,OAAA,CAAQC,IAAA;MACvBD,OAAA,CAAQC,IAAA,GAAO,IAAIC,IAAA,KAAgB;QACjC,IACE,SAAOA,IAAA,CAAK,CAAC,KAAM,YACnBA,IAAA,CAAK,CAAC,EAAEC,UAAA,CAAW,+BAA+B,IAIpD,OAAOJ,MAAA,CAAO,GAAGG,IAAI;MACvB;IACF;EACF,GAEArC,wBAAA,CAAyB,CAAC,CAAC,EAC7B;AACF","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { webExtensions } from "../constants.native.js";
|
|
1
|
+
import { ssrExtensions, webExtensions } from "../constants.native.js";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
3
|
import { extname } from "path";
|
|
4
4
|
import { createVXRNCompilerPlugin } from "@vxrn/compiler";
|
|
@@ -16,7 +16,7 @@ function getBaseVitePlugins() {
|
|
|
16
16
|
environments: {
|
|
17
17
|
ssr: {
|
|
18
18
|
resolve: {
|
|
19
|
-
extensions:
|
|
19
|
+
extensions: ssrExtensions,
|
|
20
20
|
conditions: ["vxrn-web"],
|
|
21
21
|
externalConditions: ["vxrn-web"]
|
|
22
22
|
}
|
|
@@ -35,11 +35,12 @@ function getBaseVitePlugins() {
|
|
|
35
35
|
if (!options?.scan) {
|
|
36
36
|
var resolved = await this.resolve(source, importer, options);
|
|
37
37
|
if (!resolved || resolved.id.includes("node_modules")) return resolved;
|
|
38
|
+
if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id)) throw new Error(`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`);
|
|
38
39
|
var jsExtension = extname(resolved.id),
|
|
39
40
|
withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""),
|
|
40
41
|
extensionsByEnvironment = {
|
|
41
42
|
client: ["web"],
|
|
42
|
-
ssr: ["web"],
|
|
43
|
+
ssr: ["server", "web"],
|
|
43
44
|
ios: ["ios", "native"],
|
|
44
45
|
android: ["android", "native"]
|
|
45
46
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","jsExtension","withoutExt","replace","RegExp","extensionsByEnvironment","ios","android","platformSpecificExtension","
|
|
1
|
+
{"version":3,"names":["ssrExtensions","webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","environment","test","Error","jsExtension","withoutExt","replace","RegExp","extensionsByEnvironment","ios","android","platformSpecificExtension","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","platformExtension","value","fullPath","pathExists","err"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,aAAA,QAAqB;AAC7C,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;QAAA;QAAA;QAAA;QAAA;QAKTC,YAAA;UAEAC,GAAA;YACEF,OAAK;cACHG,UAAS,EAAAZ,aAAA;cACPa,UAAA,EAAY,CACZ,UAAY,CACZ;cACFC,kBAAA,GACF;YAGE;UAAS;UACKC,MACZ;YACFN,OAAA;cACFG,UAAA,EAAAX,aAAA;cACFY,UAAA,GACF;YACF;UAGM;QAKJ;MAOA;IAEA;IACE;IAIF,MAAIG,SAAKA,CAAAC,MAAA,EAAYC,QAAS,EAAAC,OAAS;MACrC,KAAAA,OAAU,EAAAC,IAAA;QAAA,IACRC,QAAA,cAAAZ,OAAA,CAAAQ,MAAA,EAAAC,QAA4C,EAAKC,OAAA;QACnD,KAAAE,QAAA,IAAAA,QAAA,CAAAC,EAAA,CAAAC,QAAA,kBAIF,OAAMF,QAAA;QAIJ,QAAQ,CAACG,WAAK,CAAAlB,IAAA,+BAAAmB,IAAA,CAAAJ,QAAA,CAAAC,EAAA,GACd,MAAM,IAAAI,KAAU,6CAAK,KAAAF,WAAA,CAAAlB,IAAA,KAAAW,MAAA,iBAAAC,QAAA;QACrB,IAAAS,WAAa,GAAAxB,OAAQ,CAAAkB,QAAA,CAAAC,EAAA;UAAAM,UAAA,GAAAP,QAAA,CAAAC,EAAA,CAAAO,OAAA,KAAAC,MAAA,MAAAH,WAAA;UAAAI,uBAAA;YACrBhB,MAAA,EAAU,CAG8C,KAAK,CAE3D;YACFJ,GAAA,GACE,QAAM,EACN,KAAI,CACF;YAAOqB,GAAA,EACL,CACF,OAEJ,SAEJ;YACFC,OAAA;UAKA;UAAAC,yBAAA,GAAAH,uBAAA,MAAAP,WAAA,CAAAlB,IAAA;QACE,IAAM4B,yBAAA;UAEN,IAAAC,yBAAkB;YAAAC,iBAAA;YAAAC,cAAA;UAChB,IAAM;YACN,KAAQ,IAAOC,SAAI,GAAAJ,yBAAgB,CAAAK,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;cAE/B,IAAAS,iBAAmB,GAAAH,KAAA,CACnBI,KAAK;gBAACC,QAAE,MAAWlB,UAAA,IAAAgB,iBAA+B,GAAAjB,WAAA;cAIpD,IAAO,MAAOzB,OAAO,CAAA6C,UAAA,CAAAD,QAAA,GACvB;gBACFxB,EAAA,EAAAwB;cACF;YAEA;UACF,SAAAE,GAAA;YACFZ,iBAAA,OAAAC,cAAA,GAAAW,GAAA","ignoreList":[]}
|
package/dist/constants.js
CHANGED
|
@@ -11,9 +11,10 @@ const DEFAULT_PORT = 8081, viteDefaultExtensions = [
|
|
|
11
11
|
".web.mjs",
|
|
12
12
|
".web.js",
|
|
13
13
|
...viteDefaultExtensions
|
|
14
|
-
];
|
|
14
|
+
], ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
|
|
15
15
|
export {
|
|
16
16
|
DEFAULT_PORT,
|
|
17
|
+
ssrExtensions,
|
|
17
18
|
webExtensions
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/constants.ts"],
|
|
4
|
-
"mappings": "AAAO,MAAM,eAAe,MAEtB,wBAAwB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;",
|
|
4
|
+
"mappings": "AAAO,MAAM,eAAe,MAEtB,wBAAwB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEa,gBAAgB,CAAC,eAAe,cAAc,GAAG,aAAa;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/constants.mjs
CHANGED
|
@@ -2,6 +2,7 @@ const DEFAULT_PORT = 8081,
|
|
|
2
2
|
viteDefaultExtensions = [
|
|
3
3
|
// keep indent
|
|
4
4
|
".mjs", ".js", ".ts", ".tsx", ".json"],
|
|
5
|
-
webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions]
|
|
6
|
-
|
|
5
|
+
webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions],
|
|
6
|
+
ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
|
|
7
|
+
export { DEFAULT_PORT, ssrExtensions, webExtensions };
|
|
7
8
|
//# sourceMappingURL=constants.mjs.map
|
package/dist/constants.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,YAAA,GAAe;EAEtBC,qBAAA,GAAwB;EAAA;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions","ssrExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,YAAA,GAAe;EAEtBC,qBAAA,GAAwB;EAAA;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB,CAAC,eAAe,cAAc,GAAGD,aAAa","ignoreList":[]}
|
package/dist/constants.native.js
CHANGED
|
@@ -2,6 +2,7 @@ var DEFAULT_PORT = 8081,
|
|
|
2
2
|
viteDefaultExtensions = [
|
|
3
3
|
// keep indent
|
|
4
4
|
".mjs", ".js", ".ts", ".tsx", ".json"],
|
|
5
|
-
webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions]
|
|
6
|
-
|
|
5
|
+
webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions],
|
|
6
|
+
ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
|
|
7
|
+
export { DEFAULT_PORT, ssrExtensions, webExtensions };
|
|
7
8
|
//# sourceMappingURL=constants.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,YAAM,OAAe;EAAAC,qBAEtB;EAAwB;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions","ssrExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,YAAM,OAAe;EAAAC,qBAEtB;EAAwB;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB,C","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import FSExtra from "fs-extra";
|
|
3
|
+
import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr";
|
|
4
|
+
import { getFileHash, lookupFile } from "../utils/utils";
|
|
5
|
+
import { createDebugger } from "@vxrn/debug";
|
|
6
|
+
const name = "auto-pre-bundle-deps-for-ssr", { debug, debugDetails } = createDebugger(name);
|
|
7
|
+
function autoPreBundleDepsForSsrPlugin({ root }) {
|
|
8
|
+
return {
|
|
9
|
+
name: `vxrn:${name}`,
|
|
10
|
+
enforce: "pre",
|
|
11
|
+
async config(_cfg, env) {
|
|
12
|
+
debug?.("Config hook called");
|
|
13
|
+
const startedAt = debug ? Date.now() : 0, noCache = env.command === "build", lockFile = await lookupFile(root, [
|
|
14
|
+
"yarn.lock",
|
|
15
|
+
"package-lock.json",
|
|
16
|
+
"pnpm-lock.yaml",
|
|
17
|
+
"bun.lockb"
|
|
18
|
+
]), lockFileHash = lockFile ? await getFileHash(lockFile) : void 0, noExternalDepsForSsrCacheFilePath = path.join(
|
|
19
|
+
root,
|
|
20
|
+
"node_modules",
|
|
21
|
+
".vxrn",
|
|
22
|
+
"deps-to-pre-bundle-for-ssr-cache.json"
|
|
23
|
+
);
|
|
24
|
+
let depsToPreBundleForSsr;
|
|
25
|
+
if (lockFileHash && !noCache)
|
|
26
|
+
try {
|
|
27
|
+
const { lockFileHash: cachedLockFileHash, depsToPreBundleForSsr: cachedDepsToPreBundle } = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
|
|
28
|
+
lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
|
|
29
|
+
} catch {
|
|
30
|
+
}
|
|
31
|
+
return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
|
|
32
|
+
lockFileHash,
|
|
33
|
+
depsToPreBundleForSsr
|
|
34
|
+
})), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(
|
|
35
|
+
`${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)
|
|
36
|
+
), debugDetails?.(
|
|
37
|
+
`Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`
|
|
38
|
+
), {
|
|
39
|
+
ssr: {
|
|
40
|
+
optimizeDeps: {
|
|
41
|
+
include: depsToPreBundleForSsr,
|
|
42
|
+
// Known packages that will fail to pre-bundle
|
|
43
|
+
exclude: EXCLUDE_LIST
|
|
44
|
+
},
|
|
45
|
+
noExternal: depsToPreBundleForSsr
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
autoPreBundleDepsForSsrPlugin
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=autoPreBundleDepsForSsrPlugin.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/autoPreBundleDepsForSsrPlugin.ts"],
|
|
4
|
+
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,aAAa;AAEpB,SAAS,cAAc,iCAAiC;AACxD,SAAS,aAAa,kBAAkB;AACxC,SAAS,sBAAsB;AAE/B,MAAM,OAAO,gCACP,EAAE,OAAO,aAAa,IAAI,eAAe,IAAI;AAE5C,SAAS,8BAA8B,EAAE,KAAK,GAAqB;AACxE,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI;AAAA,IAClB,SAAS;AAAA,IACT,MAAM,OAAO,MAAM,KAAK;AACtB,cAAQ,oBAAoB;AAC5B,YAAM,YAAY,QAAQ,KAAK,IAAI,IAAI,GAGjC,UAAU,IAAI,YAAY,SAE1B,WAAW,MAAM,WAAW,MAAM;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GACK,eAAe,WAAW,MAAM,YAAY,QAAQ,IAAI,QAExD,oCAAoC,KAAK;AAAA,QAC7C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI;AACJ,UAAI,gBAAgB,CAAC;AACnB,YAAI;AACF,gBAAM,EAAE,cAAc,oBAAoB,uBAAuB,sBAAsB,IACrF,MAAM,QAAQ,SAAS,iCAAiC;AAE1D,UAAI,iBAAiB,sBAAsB,MAAM,QAAQ,qBAAqB,MAC5E,wBAAwB,uBACxB,QAAQ,kCAAkC,iCAAiC,EAAE;AAAA,QAEjF,QAAQ;AAAA,QAAC;AAGX,aAAK,0BACH,wBAAwB,MAAM,0BAA0B,GAAG,IAAI,eAAe,GAEzE,WAEH,QAAQ,WAAW,mCAAmC;AAAA,QACpD;AAAA,QACA;AAAA,MACF,CAAC,IAIL,QAAQ,yBAAyB,KAAK,IAAI,IAAI,SAAS,IAAI,GAC3D;AAAA,QACE,GAAG,sBAAsB,MAAM,2DAC5B,eACG,KACA,uCAAuC,MAAM,SAAS;AAAA,MAC9D,GACA;AAAA,QACE,8CAA8C,sBAAsB,KAAK,IAAI,CAAC;AAAA,MAChF,GAEO;AAAA,QACL,KAAK;AAAA,UACH,cAAc;AAAA,YACZ,SAAS;AAAA;AAAA,YAET,SAAS;AAAA,UACX;AAAA,UACA,YAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import FSExtra from "fs-extra";
|
|
3
|
+
import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr.mjs";
|
|
4
|
+
import { getFileHash, lookupFile } from "../utils/utils.mjs";
|
|
5
|
+
import { createDebugger } from "@vxrn/debug";
|
|
6
|
+
const name = "auto-pre-bundle-deps-for-ssr",
|
|
7
|
+
{
|
|
8
|
+
debug,
|
|
9
|
+
debugDetails
|
|
10
|
+
} = createDebugger(name);
|
|
11
|
+
function autoPreBundleDepsForSsrPlugin({
|
|
12
|
+
root
|
|
13
|
+
}) {
|
|
14
|
+
return {
|
|
15
|
+
name: `vxrn:${name}`,
|
|
16
|
+
enforce: "pre",
|
|
17
|
+
async config(_cfg, env) {
|
|
18
|
+
debug?.("Config hook called");
|
|
19
|
+
const startedAt = debug ? Date.now() : 0,
|
|
20
|
+
noCache = env.command === "build",
|
|
21
|
+
lockFile = await lookupFile(root, ["yarn.lock", "package-lock.json", "pnpm-lock.yaml", "bun.lockb"]),
|
|
22
|
+
lockFileHash = lockFile ? await getFileHash(lockFile) : void 0,
|
|
23
|
+
noExternalDepsForSsrCacheFilePath = path.join(root, "node_modules", ".vxrn", "deps-to-pre-bundle-for-ssr-cache.json");
|
|
24
|
+
let depsToPreBundleForSsr;
|
|
25
|
+
if (lockFileHash && !noCache) try {
|
|
26
|
+
const {
|
|
27
|
+
lockFileHash: cachedLockFileHash,
|
|
28
|
+
depsToPreBundleForSsr: cachedDepsToPreBundle
|
|
29
|
+
} = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
|
|
30
|
+
lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
|
|
31
|
+
} catch {}
|
|
32
|
+
return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
|
|
33
|
+
lockFileHash,
|
|
34
|
+
depsToPreBundleForSsr
|
|
35
|
+
})), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(`${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)), debugDetails?.(`Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`), {
|
|
36
|
+
ssr: {
|
|
37
|
+
optimizeDeps: {
|
|
38
|
+
include: depsToPreBundleForSsr,
|
|
39
|
+
// Known packages that will fail to pre-bundle
|
|
40
|
+
exclude: EXCLUDE_LIST
|
|
41
|
+
},
|
|
42
|
+
noExternal: depsToPreBundleForSsr
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export { autoPreBundleDepsForSsrPlugin };
|
|
49
|
+
//# sourceMappingURL=autoPreBundleDepsForSsrPlugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","FSExtra","EXCLUDE_LIST","scanDepsToPreBundleForSsr","getFileHash","lookupFile","createDebugger","name","debug","debugDetails","autoPreBundleDepsForSsrPlugin","root","enforce","config","_cfg","env","startedAt","Date","now","noCache","command","lockFile","lockFileHash","noExternalDepsForSsrCacheFilePath","join","depsToPreBundleForSsr","cachedLockFileHash","cachedDepsToPreBundle","readJSON","Array","isArray","outputJSON","length","namespace","ssr","optimizeDeps","include","exclude","noExternal"],"sources":["../../src/plugins/autoPreBundleDepsForSsrPlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,OAAOC,OAAA,MAAa;AAEpB,SAASC,YAAA,EAAcC,yBAAA,QAAiC;AACxD,SAASC,WAAA,EAAaC,UAAA,QAAkB;AACxC,SAASC,cAAA,QAAsB;AAE/B,MAAMC,IAAA,GAAO;EACP;IAAEC,KAAA;IAAOC;EAAa,IAAIH,cAAA,CAAeC,IAAI;AAE5C,SAASG,8BAA8B;EAAEC;AAAK,GAAqB;EACxE,OAAO;IACLJ,IAAA,EAAM,QAAQA,IAAI;IAClBK,OAAA,EAAS;IACT,MAAMC,OAAOC,IAAA,EAAMC,GAAA,EAAK;MACtBP,KAAA,GAAQ,oBAAoB;MAC5B,MAAMQ,SAAA,GAAYR,KAAA,GAAQS,IAAA,CAAKC,GAAA,CAAI,IAAI;QAGjCC,OAAA,GAAUJ,GAAA,CAAIK,OAAA,KAAY;QAE1BC,QAAA,GAAW,MAAMhB,UAAA,CAAWM,IAAA,EAAM,CACtC,aACA,qBACA,kBACA,YACD;QACKW,YAAA,GAAeD,QAAA,GAAW,MAAMjB,WAAA,CAAYiB,QAAQ,IAAI;QAExDE,iCAAA,GAAoCvB,IAAA,CAAKwB,IAAA,CAC7Cb,IAAA,EACA,gBACA,SACA,uCACF;MAEA,IAAIc,qBAAA;MACJ,IAAIH,YAAA,IAAgB,CAACH,OAAA,EACnB,IAAI;QACF,MAAM;UAAEG,YAAA,EAAcI,kBAAA;UAAoBD,qBAAA,EAAuBE;QAAsB,IACrF,MAAM1B,OAAA,CAAQ2B,QAAA,CAASL,iCAAiC;QAEtDD,YAAA,KAAiBI,kBAAA,IAAsBG,KAAA,CAAMC,OAAA,CAAQH,qBAAqB,MAC5EF,qBAAA,GAAwBE,qBAAA,EACxBnB,KAAA,GAAQ,kCAAkCe,iCAAiC,EAAE;MAEjF,QAAQ,CAAC;MAGX,OAAKE,qBAAA,KACHA,qBAAA,GAAwB,MAAMtB,yBAAA,CAA0B,GAAGQ,IAAI,eAAe,GAEzEQ,OAAA,IAEHlB,OAAA,CAAQ8B,UAAA,CAAWR,iCAAA,EAAmC;QACpDD,YAAA;QACAG;MACF,CAAC,IAILjB,KAAA,GAAQ,yBAAyBS,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAS,IAAI,GAC3DR,KAAA,GACE,GAAGiB,qBAAA,CAAsBO,MAAM,2DAC5BvB,YAAA,GACG,KACA,uCAAuCD,KAAA,CAAMyB,SAAS,2BAC9D,GACAxB,YAAA,GACE,8CAA8CgB,qBAAA,CAAsBD,IAAA,CAAK,IAAI,CAAC,EAChF,GAEO;QACLU,GAAA,EAAK;UACHC,YAAA,EAAc;YACZC,OAAA,EAASX,qBAAA;YAAA;YAETY,OAAA,EAASnC;UACX;UACAoC,UAAA,EAAYb;QACd;MACF;IACF;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import FSExtra from "fs-extra";
|
|
3
|
+
import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr";
|
|
4
|
+
import { getFileHash, lookupFile } from "../utils/utils";
|
|
5
|
+
import { createDebugger } from "@vxrn/debug";
|
|
6
|
+
var name = "auto-pre-bundle-deps-for-ssr", { debug, debugDetails } = createDebugger(name);
|
|
7
|
+
function autoPreBundleDepsForSsrPlugin(param) {
|
|
8
|
+
var { root } = param;
|
|
9
|
+
return {
|
|
10
|
+
name: `vxrn:${name}`,
|
|
11
|
+
enforce: "pre",
|
|
12
|
+
async config(_cfg, env) {
|
|
13
|
+
debug?.("Config hook called");
|
|
14
|
+
var startedAt = debug ? Date.now() : 0, noCache = env.command === "build", lockFile = await lookupFile(root, [
|
|
15
|
+
"yarn.lock",
|
|
16
|
+
"package-lock.json",
|
|
17
|
+
"pnpm-lock.yaml",
|
|
18
|
+
"bun.lockb"
|
|
19
|
+
]), lockFileHash = lockFile ? await getFileHash(lockFile) : void 0, noExternalDepsForSsrCacheFilePath = path.join(root, "node_modules", ".vxrn", "deps-to-pre-bundle-for-ssr-cache.json"), depsToPreBundleForSsr = void 0;
|
|
20
|
+
if (lockFileHash && !noCache)
|
|
21
|
+
try {
|
|
22
|
+
var { lockFileHash: cachedLockFileHash, depsToPreBundleForSsr: cachedDepsToPreBundle } = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
|
|
23
|
+
lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
|
|
24
|
+
} catch {
|
|
25
|
+
}
|
|
26
|
+
return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
|
|
27
|
+
lockFileHash,
|
|
28
|
+
depsToPreBundleForSsr
|
|
29
|
+
})), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(`${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)), debugDetails?.(`Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`), {
|
|
30
|
+
ssr: {
|
|
31
|
+
optimizeDeps: {
|
|
32
|
+
include: depsToPreBundleForSsr,
|
|
33
|
+
// Known packages that will fail to pre-bundle
|
|
34
|
+
exclude: EXCLUDE_LIST
|
|
35
|
+
},
|
|
36
|
+
noExternal: depsToPreBundleForSsr
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
autoPreBundleDepsForSsrPlugin
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=autoPreBundleDepsForSsrPlugin.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/Users/n8/one2/packages/vxrn/src/plugins/autoPreBundleDepsForSsrPlugin.ts"],
|
|
4
|
+
"mappings": "AAAA,OAAOA,UAAU;AACjB,OAAOC,aAAa;AAEpB,SAASC,cAAcC,iCAAiC;AACxD,SAASC,aAAaC,kBAAkB;AACxC,SAASC,sBAAsB;AAE/B,IAAMC,OAAO,gCACP,EAAEC,OAAOC,aAAY,IAAKH,eAAeC,IAAAA;AAExC,SAASG,8BAA8B,OAA0B;MAA1B,EAAEC,KAAI,IAAN;AAC5C,SAAO;IACLJ,MAAM,QAAQA,IAAAA;IACdK,SAAS;IACT,MAAMC,OAAOC,MAAMC,KAAG;AACpBP,MAAAA,QAAQ,oBAAA;AACR,UAAMQ,YAAYR,QAAQS,KAAKC,IAAG,IAAK,GAGjCC,UAAUJ,IAAIK,YAAY,SAE1BC,WAAW,MAAMhB,WAAWM,MAAM;QACtC;QACA;QACA;QACA;OACD,GACKW,eAAeD,WAAW,MAAMjB,YAAYiB,QAAAA,IAAYE,QAExDC,oCAAoCxB,KAAKyB,KAC7Cd,MACA,gBACA,SACA,uCAAA,GAGEe,wBAA8CH;AAClD,UAAID,gBAAgB,CAACH;AACnB,YAAI;AACF,cAAM,EAAEG,cAAcK,oBAAoBD,uBAAuBE,sBAAqB,IACpF,MAAM3B,QAAQ4B,SAASL,iCAAAA;AAEzB,UAAIF,iBAAiBK,sBAAsBG,MAAMC,QAAQH,qBAAAA,MACvDF,wBAAwBE,uBACxBpB,QAAQ,kCAAkCgB,iCAAAA,EAAmC;QAEjF,QAAQ;QAAC;AAGX,aAAKE,0BACHA,wBAAwB,MAAMvB,0BAA0B,GAAGQ,IAAAA,eAAmB,GAEzEQ,WAEHlB,QAAQ+B,WAAWR,mCAAmC;QACpDF;QACAI;MACF,CAAA,IAIJlB,QAAQ,yBAAyBS,KAAKC,IAAG,IAAKF,SAAAA,IAAa,GAC3DR,QACE,GAAGkB,sBAAsBO,MAAM,2DAC5BxB,eACG,KACA,uCAAuCD,MAAM0B,SAAS,2BAAyB,GAEvFzB,eACE,8CAA8CiB,sBAAsBD,KAAK,IAAA,CAAA,EAAO,GAG3E;QACLU,KAAK;UACHC,cAAc;YACZC,SAASX;;YAETY,SAASpC;UACX;UACAqC,YAAYb;QACd;MACF;IACF;EACF;AACF;",
|
|
5
|
+
"names": ["path", "FSExtra", "EXCLUDE_LIST", "scanDepsToPreBundleForSsr", "getFileHash", "lookupFile", "createDebugger", "name", "debug", "debugDetails", "autoPreBundleDepsForSsrPlugin", "root", "enforce", "config", "_cfg", "env", "startedAt", "Date", "now", "noCache", "command", "lockFile", "lockFileHash", "undefined", "noExternalDepsForSsrCacheFilePath", "join", "depsToPreBundleForSsr", "cachedLockFileHash", "cachedDepsToPreBundle", "readJSON", "Array", "isArray", "outputJSON", "length", "namespace", "ssr", "optimizeDeps", "include", "exclude", "noExternal"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as babel from "@babel/core";
|
|
2
|
+
const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [
|
|
3
|
+
"worklet",
|
|
4
|
+
"useAnimatedGestureHandler",
|
|
5
|
+
"useAnimatedScrollHandler",
|
|
6
|
+
"useFrameCallback",
|
|
7
|
+
"useAnimatedStyle",
|
|
8
|
+
"useAnimatedProps",
|
|
9
|
+
"createAnimatedPropAdapter",
|
|
10
|
+
"useDerivedValue",
|
|
11
|
+
"useAnimatedReaction",
|
|
12
|
+
"useWorkletCallback",
|
|
13
|
+
"withTiming",
|
|
14
|
+
"withSpring",
|
|
15
|
+
"withDecay",
|
|
16
|
+
"withRepeat",
|
|
17
|
+
"runOnUI",
|
|
18
|
+
"executeOnUIRuntimeSync"
|
|
19
|
+
], REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")), REANIMATED_IGNORED_PATHS = [
|
|
20
|
+
// React and React Native libraries are not likely to use reanimated.
|
|
21
|
+
// This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
|
|
22
|
+
"react-native-prebuilt/vendor",
|
|
23
|
+
"node_modules/.vxrn/react-native"
|
|
24
|
+
], REANIMATED_IGNORED_PATHS_REGEX = new RegExp(
|
|
25
|
+
REANIMATED_IGNORED_PATHS.map((s) => s.replace(/\//g, "/")).join("|")
|
|
26
|
+
);
|
|
27
|
+
async function babelReanimated(input, filename) {
|
|
28
|
+
return await new Promise((res, rej) => {
|
|
29
|
+
babel.transform(
|
|
30
|
+
input,
|
|
31
|
+
{
|
|
32
|
+
plugins: ["react-native-reanimated/plugin"],
|
|
33
|
+
filename
|
|
34
|
+
},
|
|
35
|
+
(err, result) => {
|
|
36
|
+
(!result || err) && rej(err || "no res"), res(result.code);
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function getBabelReanimatedPlugin() {
|
|
42
|
+
return {
|
|
43
|
+
name: "babel-reanimated",
|
|
44
|
+
async transform(code, id) {
|
|
45
|
+
if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code))
|
|
46
|
+
return await babelReanimated(code, id);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
getBabelReanimatedPlugin
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=babelReanimated.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/babelReanimated.ts"],
|
|
4
|
+
"mappings": "AAAA,YAAY,WAAW;AAMvB,MAAM,yCAAyC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKM,mBAAmB,IAAI,OAAO,uCAAuC,KAAK,GAAG,CAAC,GAE9E,2BAA2B;AAAA;AAAA;AAAA,EAG/B;AAAA,EACA;AACF,GAEM,iCAAiC,IAAI;AAAA,EACzC,yBAAyB,IAAI,CAAC,MAAM,EAAE,QAAQ,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG;AACrE;AAEA,eAAe,gBAAgB,OAAe,UAAkB;AAC9D,SAAO,MAAM,IAAI,QAAgB,CAAC,KAAK,QAAQ;AAC7C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,QACE,SAAS,CAAC,gCAAgC;AAAA,QAC1C;AAAA,MACF;AAAA,MACA,CAAC,KAAU,WAAW;AACpB,SAAI,CAAC,UAAU,QAAK,IAAI,OAAO,QAAQ,GACvC,IAAI,OAAQ,IAAK;AAAA,MACnB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU,MAAM,IAAI;AACxB,UAAI,IAAG,SAAS,uBAAuB,KAInC,CAAC,+BAA+B,KAAK,EAAE,KAAK,iBAAiB,KAAK,IAAI;AAExE,eADY,MAAM,gBAAgB,MAAM,EAAE;AAAA,IAG9C;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as babel from "@babel/core";
|
|
2
|
+
const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = ["worklet", "useAnimatedGestureHandler", "useAnimatedScrollHandler", "useFrameCallback", "useAnimatedStyle", "useAnimatedProps", "createAnimatedPropAdapter", "useDerivedValue", "useAnimatedReaction", "useWorkletCallback", "withTiming", "withSpring", "withDecay", "withRepeat", "runOnUI", "executeOnUIRuntimeSync"],
|
|
3
|
+
REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")),
|
|
4
|
+
REANIMATED_IGNORED_PATHS = [
|
|
5
|
+
// React and React Native libraries are not likely to use reanimated.
|
|
6
|
+
// This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
|
|
7
|
+
"react-native-prebuilt/vendor", "node_modules/.vxrn/react-native"],
|
|
8
|
+
REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.map(s => s.replace(/\//g, "/")).join("|"));
|
|
9
|
+
async function babelReanimated(input, filename) {
|
|
10
|
+
return await new Promise((res, rej) => {
|
|
11
|
+
babel.transform(input, {
|
|
12
|
+
plugins: ["react-native-reanimated/plugin"],
|
|
13
|
+
filename
|
|
14
|
+
}, (err, result) => {
|
|
15
|
+
(!result || err) && rej(err || "no res"), res(result.code);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function getBabelReanimatedPlugin() {
|
|
20
|
+
return {
|
|
21
|
+
name: "babel-reanimated",
|
|
22
|
+
async transform(code, id) {
|
|
23
|
+
if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code)) return await babelReanimated(code, id);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export { getBabelReanimatedPlugin };
|
|
28
|
+
//# sourceMappingURL=babelReanimated.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["babel","REANIMATED_AUTOWORKLETIZATION_KEYWORDS","REANIMATED_REGEX","RegExp","join","REANIMATED_IGNORED_PATHS","REANIMATED_IGNORED_PATHS_REGEX","map","s","replace","babelReanimated","input","filename","Promise","res","rej","transform","plugins","err","result","code","getBabelReanimatedPlugin","name","id","includes","test"],"sources":["../../src/plugins/babelReanimated.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAMvB,MAAMC,sCAAA,GAAyC,CAC7C,WACA,6BACA,4BACA,oBACA,oBACA,oBACA,6BACA,mBACA,uBACA,sBACA,cACA,cACA,aACA,cACA,WACA,yBACF;EAKMC,gBAAA,GAAmB,IAAIC,MAAA,CAAOF,sCAAA,CAAuCG,IAAA,CAAK,GAAG,CAAC;EAE9EC,wBAAA,GAA2B;EAAA;EAAA;EAG/B,gCACA,kCACF;EAEMC,8BAAA,GAAiC,IAAIH,MAAA,CACzCE,wBAAA,CAAyBE,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,OAAA,CAAQ,OAAO,GAAG,CAAC,EAAEL,IAAA,CAAK,GAAG,CACrE;AAEA,eAAeM,gBAAgBC,KAAA,EAAeC,QAAA,EAAkB;EAC9D,OAAO,MAAM,IAAIC,OAAA,CAAgB,CAACC,GAAA,EAAKC,GAAA,KAAQ;IAC7Cf,KAAA,CAAMgB,SAAA,CACJL,KAAA,EACA;MACEM,OAAA,EAAS,CAAC,gCAAgC;MAC1CL;IACF,GACA,CAACM,GAAA,EAAUC,MAAA,KAAW;MACpB,CAAI,CAACA,MAAA,IAAUD,GAAA,KAAKH,GAAA,CAAIG,GAAA,IAAO,QAAQ,GACvCJ,GAAA,CAAIK,MAAA,CAAQC,IAAK;IACnB,CACF;EACF,CAAC;AACH;AAEO,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAM;IACN,MAAMN,UAAUI,IAAA,EAAMG,EAAA,EAAI;MACxB,IAAI,CAAAA,EAAA,CAAGC,QAAA,CAAS,uBAAuB,KAInC,CAAClB,8BAAA,CAA+BmB,IAAA,CAAKF,EAAE,KAAKrB,gBAAA,CAAiBuB,IAAA,CAAKL,IAAI,GAExE,OADY,MAAMV,eAAA,CAAgBU,IAAA,EAAMG,EAAE;IAG9C;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as babel from "@babel/core";
|
|
2
|
+
var REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [
|
|
3
|
+
"worklet",
|
|
4
|
+
"useAnimatedGestureHandler",
|
|
5
|
+
"useAnimatedScrollHandler",
|
|
6
|
+
"useFrameCallback",
|
|
7
|
+
"useAnimatedStyle",
|
|
8
|
+
"useAnimatedProps",
|
|
9
|
+
"createAnimatedPropAdapter",
|
|
10
|
+
"useDerivedValue",
|
|
11
|
+
"useAnimatedReaction",
|
|
12
|
+
"useWorkletCallback",
|
|
13
|
+
"withTiming",
|
|
14
|
+
"withSpring",
|
|
15
|
+
"withDecay",
|
|
16
|
+
"withRepeat",
|
|
17
|
+
"runOnUI",
|
|
18
|
+
"executeOnUIRuntimeSync"
|
|
19
|
+
], REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")), REANIMATED_IGNORED_PATHS = [
|
|
20
|
+
// React and React Native libraries are not likely to use reanimated.
|
|
21
|
+
// This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
|
|
22
|
+
"react-native-prebuilt/vendor",
|
|
23
|
+
"node_modules/.vxrn/react-native"
|
|
24
|
+
], REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.map(function(s) {
|
|
25
|
+
return s.replace(/\//g, "/");
|
|
26
|
+
}).join("|"));
|
|
27
|
+
async function babelReanimated(input, filename) {
|
|
28
|
+
return await new Promise(function(res, rej) {
|
|
29
|
+
babel.transform(input, {
|
|
30
|
+
plugins: [
|
|
31
|
+
"react-native-reanimated/plugin"
|
|
32
|
+
],
|
|
33
|
+
filename
|
|
34
|
+
}, function(err, result) {
|
|
35
|
+
(!result || err) && rej(err || "no res"), res(result.code);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function getBabelReanimatedPlugin() {
|
|
40
|
+
return {
|
|
41
|
+
name: "babel-reanimated",
|
|
42
|
+
async transform(code, id) {
|
|
43
|
+
if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code)) {
|
|
44
|
+
var out = await babelReanimated(code, id);
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
getBabelReanimatedPlugin
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=babelReanimated.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/Users/n8/one2/packages/vxrn/src/plugins/babelReanimated.ts"],
|
|
4
|
+
"mappings": "AAAA,YAAYA,WAAW;AAMvB,IAAMC,yCAAyC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAMIC,mBAAmB,IAAIC,OAAOF,uCAAuCG,KAAK,GAAA,CAAA,GAE1EC,2BAA2B;;;EAG/B;EACA;GAGIC,iCAAiC,IAAIH,OACzCE,yBAAyBE,IAAI,SAACC,GAAAA;SAAMA,EAAEC,QAAQ,OAAO,GAAA;GAAML,KAAK,GAAA,CAAA;AAGlE,eAAeM,gBAAgBC,OAAeC,UAAgB;AAC5D,SAAO,MAAM,IAAIC,QAAgB,SAACC,KAAKC,KAAAA;AACrCf,UAAMgB,UACJL,OACA;MACEM,SAAS;QAAC;;MACVL;IACF,GACA,SAACM,KAAUC,QAAAA;AACT,OAAI,CAACA,UAAUD,QAAKH,IAAIG,OAAO,QAAA,GAC/BJ,IAAIK,OAAQC,IAAI;IAClB,CAAA;EAEJ,CAAA;AACF;AAEO,SAASC,2BAAAA;AACd,SAAO;IACLC,MAAM;IACN,MAAMN,UAAUI,MAAMG,IAAE;AACtB,UAAIA,IAAGC,SAAS,uBAAA,KAIZ,CAAClB,+BAA+BmB,KAAKF,EAAAA,KAAOrB,iBAAiBuB,KAAKL,IAAAA,GAAO;AAC3E,YAAMM,MAAM,MAAMhB,gBAAgBU,MAAMG,EAAAA;AACxC,eAAOG;MACT;IACF;EACF;AACF;",
|
|
5
|
+
"names": ["babel", "REANIMATED_AUTOWORKLETIZATION_KEYWORDS", "REANIMATED_REGEX", "RegExp", "join", "REANIMATED_IGNORED_PATHS", "REANIMATED_IGNORED_PATHS_REGEX", "map", "s", "replace", "babelReanimated", "input", "filename", "Promise", "res", "rej", "transform", "plugins", "err", "result", "code", "getBabelReanimatedPlugin", "name", "id", "includes", "test", "out"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
async function getPlatformResolvePlugin() {
|
|
3
|
+
const { getBaseVitePlugins } = await import("../config/getBaseVitePlugins"), plugin = getBaseVitePlugins().find(
|
|
4
|
+
(p) => typeof p == "object" && p !== null && "name" in p && p.name === "platform-specific-resolve"
|
|
5
|
+
);
|
|
6
|
+
if (!plugin || typeof plugin != "object" || !("resolveId" in plugin))
|
|
7
|
+
throw new Error("platform-specific-resolve plugin not found");
|
|
8
|
+
return plugin;
|
|
9
|
+
}
|
|
10
|
+
function createMockContext(envName, resolvedId) {
|
|
11
|
+
return {
|
|
12
|
+
resolve: vi.fn().mockResolvedValue(resolvedId ? { id: resolvedId } : null),
|
|
13
|
+
environment: { name: envName }
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
describe("platform-specific-resolve", () => {
|
|
17
|
+
describe(".server extension", () => {
|
|
18
|
+
it("ssr resolves .server files", async () => {
|
|
19
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
|
|
20
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async (path) => String(path).includes(".server."));
|
|
21
|
+
const ctx = createMockContext("ssr", "/src/db.ts"), result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
22
|
+
expect(result).toEqual({ id: "/src/db.server.ts" }), vi.restoreAllMocks();
|
|
23
|
+
}), it("client does not resolve .server files", async () => {
|
|
24
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
|
|
25
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async (path) => String(path).includes(".web."));
|
|
26
|
+
const ctx = createMockContext("client", "/src/db.ts"), result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
27
|
+
expect(result).toEqual({ id: "/src/db.web.ts" }), vi.restoreAllMocks();
|
|
28
|
+
}), it("errors when .server file is explicitly imported on client", async () => {
|
|
29
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId, ctx = createMockContext("client", "/src/db.server.ts");
|
|
30
|
+
await expect(
|
|
31
|
+
resolveId.call(ctx, "./db.server", "/src/page.tsx", {})
|
|
32
|
+
).rejects.toThrow(".server file cannot be imported on client");
|
|
33
|
+
}), it("errors when .server file is explicitly imported on ios", async () => {
|
|
34
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId, ctx = createMockContext("ios", "/src/db.server.ts");
|
|
35
|
+
await expect(
|
|
36
|
+
resolveId.call(ctx, "./db.server", "/src/page.tsx", {})
|
|
37
|
+
).rejects.toThrow(".server file cannot be imported on ios");
|
|
38
|
+
}), it("allows .server file import on ssr", async () => {
|
|
39
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
|
|
40
|
+
vi.spyOn(FSExtra.default, "pathExists").mockResolvedValue(!1);
|
|
41
|
+
const ctx = createMockContext("ssr", "/src/db.server.ts"), result = await resolveId.call(ctx, "./db.server", "/src/page.tsx", {});
|
|
42
|
+
expect(result).toBeUndefined(), vi.restoreAllMocks();
|
|
43
|
+
});
|
|
44
|
+
}), describe("config extensions", () => {
|
|
45
|
+
it("ssr includes .server extensions", async () => {
|
|
46
|
+
const ssrExts = (await getPlatformResolvePlugin()).config().environments.ssr.resolve.extensions;
|
|
47
|
+
expect(ssrExts).toContain(".server.ts"), expect(ssrExts).toContain(".server.tsx"), expect(ssrExts).toContain(".web.ts");
|
|
48
|
+
}), it("client does not include .server extensions", async () => {
|
|
49
|
+
const clientExts = (await getPlatformResolvePlugin()).config().environments.client.resolve.extensions;
|
|
50
|
+
expect(clientExts).not.toContain(".server.ts"), expect(clientExts).not.toContain(".server.tsx");
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=serverExtensions.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/serverExtensions.test.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|