vxrn 1.4.11 → 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/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/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/serverExtensions.test.d.ts +2 -0
- package/types/plugins/serverExtensions.test.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 { 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
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
async function getPlatformResolvePlugin() {
|
|
3
|
+
const {
|
|
4
|
+
getBaseVitePlugins
|
|
5
|
+
} = await import("../config/getBaseVitePlugins.mjs"),
|
|
6
|
+
plugin = getBaseVitePlugins().find(p => typeof p == "object" && p !== null && "name" in p && p.name === "platform-specific-resolve");
|
|
7
|
+
if (!plugin || typeof plugin != "object" || !("resolveId" in plugin)) 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 ? {
|
|
13
|
+
id: resolvedId
|
|
14
|
+
} : null),
|
|
15
|
+
environment: {
|
|
16
|
+
name: envName
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
describe("platform-specific-resolve", () => {
|
|
21
|
+
describe(".server extension", () => {
|
|
22
|
+
it("ssr resolves .server files", async () => {
|
|
23
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId,
|
|
24
|
+
FSExtra = await import("fs-extra");
|
|
25
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async path => String(path).includes(".server."));
|
|
26
|
+
const ctx = createMockContext("ssr", "/src/db.ts"),
|
|
27
|
+
result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
28
|
+
expect(result).toEqual({
|
|
29
|
+
id: "/src/db.server.ts"
|
|
30
|
+
}), vi.restoreAllMocks();
|
|
31
|
+
}), it("client does not resolve .server files", async () => {
|
|
32
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId,
|
|
33
|
+
FSExtra = await import("fs-extra");
|
|
34
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async path => String(path).includes(".web."));
|
|
35
|
+
const ctx = createMockContext("client", "/src/db.ts"),
|
|
36
|
+
result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
37
|
+
expect(result).toEqual({
|
|
38
|
+
id: "/src/db.web.ts"
|
|
39
|
+
}), vi.restoreAllMocks();
|
|
40
|
+
}), it("errors when .server file is explicitly imported on client", async () => {
|
|
41
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId,
|
|
42
|
+
ctx = createMockContext("client", "/src/db.server.ts");
|
|
43
|
+
await expect(resolveId.call(ctx, "./db.server", "/src/page.tsx", {})).rejects.toThrow(".server file cannot be imported on client");
|
|
44
|
+
}), it("errors when .server file is explicitly imported on ios", async () => {
|
|
45
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId,
|
|
46
|
+
ctx = createMockContext("ios", "/src/db.server.ts");
|
|
47
|
+
await expect(resolveId.call(ctx, "./db.server", "/src/page.tsx", {})).rejects.toThrow(".server file cannot be imported on ios");
|
|
48
|
+
}), it("allows .server file import on ssr", async () => {
|
|
49
|
+
const resolveId = (await getPlatformResolvePlugin()).resolveId,
|
|
50
|
+
FSExtra = await import("fs-extra");
|
|
51
|
+
vi.spyOn(FSExtra.default, "pathExists").mockResolvedValue(!1);
|
|
52
|
+
const ctx = createMockContext("ssr", "/src/db.server.ts"),
|
|
53
|
+
result = await resolveId.call(ctx, "./db.server", "/src/page.tsx", {});
|
|
54
|
+
expect(result).toBeUndefined(), vi.restoreAllMocks();
|
|
55
|
+
});
|
|
56
|
+
}), describe("config extensions", () => {
|
|
57
|
+
it("ssr includes .server extensions", async () => {
|
|
58
|
+
const ssrExts = (await getPlatformResolvePlugin()).config().environments.ssr.resolve.extensions;
|
|
59
|
+
expect(ssrExts).toContain(".server.ts"), expect(ssrExts).toContain(".server.tsx"), expect(ssrExts).toContain(".web.ts");
|
|
60
|
+
}), it("client does not include .server extensions", async () => {
|
|
61
|
+
const clientExts = (await getPlatformResolvePlugin()).config().environments.client.resolve.extensions;
|
|
62
|
+
expect(clientExts).not.toContain(".server.ts"), expect(clientExts).not.toContain(".server.tsx");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=serverExtensions.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","vi","getPlatformResolvePlugin","getBaseVitePlugins","plugin","find","p","name","Error","createMockContext","envName","resolvedId","resolve","fn","mockResolvedValue","id","environment","resolveId","FSExtra","spyOn","default","mockImplementation","path","String","includes","ctx","result","call","toEqual","restoreAllMocks","rejects","toThrow","toBeUndefined","ssrExts","config","environments","ssr","extensions","toContain","clientExts","client","not"],"sources":["../../src/plugins/serverExtensions.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
function _type_of(obj) {
|
|
3
|
+
"@swc/helpers - typeof";
|
|
4
|
+
|
|
5
|
+
return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
6
|
+
}
|
|
7
|
+
async function getPlatformResolvePlugin() {
|
|
8
|
+
var {
|
|
9
|
+
getBaseVitePlugins
|
|
10
|
+
} = await import("../config/getBaseVitePlugins.native.js"),
|
|
11
|
+
plugins = getBaseVitePlugins(),
|
|
12
|
+
plugin = plugins.find(function (p) {
|
|
13
|
+
return (typeof p > "u" ? "undefined" : _type_of(p)) === "object" && p !== null && "name" in p && p.name === "platform-specific-resolve";
|
|
14
|
+
});
|
|
15
|
+
if (!plugin || (typeof plugin > "u" ? "undefined" : _type_of(plugin)) !== "object" || !("resolveId" in plugin)) throw new Error("platform-specific-resolve plugin not found");
|
|
16
|
+
return plugin;
|
|
17
|
+
}
|
|
18
|
+
function createMockContext(envName, resolvedId) {
|
|
19
|
+
return {
|
|
20
|
+
resolve: vi.fn().mockResolvedValue(resolvedId ? {
|
|
21
|
+
id: resolvedId
|
|
22
|
+
} : null),
|
|
23
|
+
environment: {
|
|
24
|
+
name: envName
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
describe("platform-specific-resolve", function () {
|
|
29
|
+
describe(".server extension", function () {
|
|
30
|
+
it("ssr resolves .server files", async function () {
|
|
31
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
32
|
+
resolveId = plugin.resolveId,
|
|
33
|
+
FSExtra = await import("fs-extra");
|
|
34
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async function (path) {
|
|
35
|
+
return String(path).includes(".server.");
|
|
36
|
+
});
|
|
37
|
+
var ctx = createMockContext("ssr", "/src/db.ts"),
|
|
38
|
+
result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
39
|
+
expect(result).toEqual({
|
|
40
|
+
id: "/src/db.server.ts"
|
|
41
|
+
}), vi.restoreAllMocks();
|
|
42
|
+
}), it("client does not resolve .server files", async function () {
|
|
43
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
44
|
+
resolveId = plugin.resolveId,
|
|
45
|
+
FSExtra = await import("fs-extra");
|
|
46
|
+
vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async function (path) {
|
|
47
|
+
return String(path).includes(".web.");
|
|
48
|
+
});
|
|
49
|
+
var ctx = createMockContext("client", "/src/db.ts"),
|
|
50
|
+
result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
|
|
51
|
+
expect(result).toEqual({
|
|
52
|
+
id: "/src/db.web.ts"
|
|
53
|
+
}), vi.restoreAllMocks();
|
|
54
|
+
}), it("errors when .server file is explicitly imported on client", async function () {
|
|
55
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
56
|
+
resolveId = plugin.resolveId,
|
|
57
|
+
ctx = createMockContext("client", "/src/db.server.ts");
|
|
58
|
+
await expect(resolveId.call(ctx, "./db.server", "/src/page.tsx", {})).rejects.toThrow(".server file cannot be imported on client");
|
|
59
|
+
}), it("errors when .server file is explicitly imported on ios", async function () {
|
|
60
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
61
|
+
resolveId = plugin.resolveId,
|
|
62
|
+
ctx = createMockContext("ios", "/src/db.server.ts");
|
|
63
|
+
await expect(resolveId.call(ctx, "./db.server", "/src/page.tsx", {})).rejects.toThrow(".server file cannot be imported on ios");
|
|
64
|
+
}), it("allows .server file import on ssr", async function () {
|
|
65
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
66
|
+
resolveId = plugin.resolveId,
|
|
67
|
+
FSExtra = await import("fs-extra");
|
|
68
|
+
vi.spyOn(FSExtra.default, "pathExists").mockResolvedValue(!1);
|
|
69
|
+
var ctx = createMockContext("ssr", "/src/db.server.ts"),
|
|
70
|
+
result = await resolveId.call(ctx, "./db.server", "/src/page.tsx", {});
|
|
71
|
+
expect(result).toBeUndefined(), vi.restoreAllMocks();
|
|
72
|
+
});
|
|
73
|
+
}), describe("config extensions", function () {
|
|
74
|
+
it("ssr includes .server extensions", async function () {
|
|
75
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
76
|
+
config = plugin.config(),
|
|
77
|
+
ssrExts = config.environments.ssr.resolve.extensions;
|
|
78
|
+
expect(ssrExts).toContain(".server.ts"), expect(ssrExts).toContain(".server.tsx"), expect(ssrExts).toContain(".web.ts");
|
|
79
|
+
}), it("client does not include .server extensions", async function () {
|
|
80
|
+
var plugin = await getPlatformResolvePlugin(),
|
|
81
|
+
config = plugin.config(),
|
|
82
|
+
clientExts = config.environments.client.resolve.extensions;
|
|
83
|
+
expect(clientExts).not.toContain(".server.ts"), expect(clientExts).not.toContain(".server.tsx");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=serverExtensions.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","vi","_type_of","obj","Symbol","constructor","getPlatformResolvePlugin","getBaseVitePlugins","plugins","plugin","find","p","name","Error","createMockContext","envName","resolvedId","resolve","fn","mockResolvedValue","id","environment","resolveId","FSExtra","spyOn","default","mockImplementation","path","String","includes","ctx","result","call","toEqual","restoreAllMocks","rejects","toThrow"],"sources":["../../src/plugins/serverExtensions.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxrn",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.12",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -66,17 +66,17 @@
|
|
|
66
66
|
"@hono/node-server": "^1.19.6",
|
|
67
67
|
"@react-native/dev-middleware": "^0.83.0",
|
|
68
68
|
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
69
|
-
"@vxrn/compiler": "1.4.
|
|
70
|
-
"@vxrn/debug": "1.4.
|
|
71
|
-
"@vxrn/query-string": "1.4.
|
|
72
|
-
"@vxrn/react-native-prebuilt": "1.4.
|
|
73
|
-
"@vxrn/resolve": "1.4.
|
|
74
|
-
"@vxrn/safe-area": "1.4.
|
|
75
|
-
"@vxrn/url-parse": "1.4.
|
|
76
|
-
"@vxrn/utils": "1.4.
|
|
77
|
-
"@vxrn/vendor": "1.4.
|
|
78
|
-
"@vxrn/vite-flow": "1.4.
|
|
79
|
-
"@vxrn/vite-plugin-metro": "1.4.
|
|
69
|
+
"@vxrn/compiler": "1.4.12",
|
|
70
|
+
"@vxrn/debug": "1.4.12",
|
|
71
|
+
"@vxrn/query-string": "1.4.12",
|
|
72
|
+
"@vxrn/react-native-prebuilt": "1.4.12",
|
|
73
|
+
"@vxrn/resolve": "1.4.12",
|
|
74
|
+
"@vxrn/safe-area": "1.4.12",
|
|
75
|
+
"@vxrn/url-parse": "1.4.12",
|
|
76
|
+
"@vxrn/utils": "1.4.12",
|
|
77
|
+
"@vxrn/vendor": "1.4.12",
|
|
78
|
+
"@vxrn/vite-flow": "1.4.12",
|
|
79
|
+
"@vxrn/vite-plugin-metro": "1.4.12",
|
|
80
80
|
"citty": "^0.1.6",
|
|
81
81
|
"dotenv": "^17.2.1",
|
|
82
82
|
"dotenv-expand": "^12.0.2",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"find-node-modules": "^2.1.3",
|
|
87
87
|
"fs-extra": "^11.2.0",
|
|
88
88
|
"get-port-please": "^3.1.2",
|
|
89
|
-
"hono": "^4.
|
|
89
|
+
"hono": "^4.11.8",
|
|
90
90
|
"lightningcss": "^1.30.1",
|
|
91
91
|
"perfect-debounce": "^1.0.0",
|
|
92
92
|
"picocolors": "^1.0.0",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@biomejs/biome": "2.3.3",
|
|
102
102
|
"@react-native-community/cli": "^20.0.2",
|
|
103
|
-
"@tamagui/build": "^
|
|
103
|
+
"@tamagui/build": "^2.0.0-rc.6",
|
|
104
104
|
"@types/find-node-modules": "^2.1.2",
|
|
105
105
|
"@types/node": "^24.10.0",
|
|
106
106
|
"@types/qrcode-terminal": "^0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PluginOption } from 'vite'
|
|
2
|
-
import { webExtensions } from '../constants'
|
|
2
|
+
import { ssrExtensions, webExtensions } from '../constants'
|
|
3
3
|
import FSExtra from 'fs-extra'
|
|
4
4
|
import { extname } from 'node:path'
|
|
5
5
|
import { createVXRNCompilerPlugin } from '@vxrn/compiler'
|
|
@@ -23,7 +23,7 @@ export function getBaseVitePlugins(): PluginOption[] {
|
|
|
23
23
|
environments: {
|
|
24
24
|
ssr: {
|
|
25
25
|
resolve: {
|
|
26
|
-
extensions:
|
|
26
|
+
extensions: ssrExtensions,
|
|
27
27
|
conditions: ['vxrn-web'],
|
|
28
28
|
externalConditions: ['vxrn-web'],
|
|
29
29
|
},
|
|
@@ -58,13 +58,20 @@ export function getBaseVitePlugins(): PluginOption[] {
|
|
|
58
58
|
return resolved
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
// error if .server. files are explicitly imported on client/native
|
|
62
|
+
if (this.environment.name !== 'ssr' && /\.server\.\w+$/.test(resolved.id)) {
|
|
63
|
+
throw new Error(
|
|
64
|
+
`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
61
68
|
// not in node_modules, vite doesn't apply extensions! we need to manually
|
|
62
69
|
const jsExtension = extname(resolved.id)
|
|
63
70
|
const withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), '')
|
|
64
71
|
|
|
65
72
|
const extensionsByEnvironment = {
|
|
66
73
|
client: ['web'],
|
|
67
|
-
ssr: ['web'],
|
|
74
|
+
ssr: ['server', 'web'],
|
|
68
75
|
ios: ['ios', 'native'],
|
|
69
76
|
android: ['android', 'native'],
|
|
70
77
|
}
|
package/src/constants.ts
CHANGED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
+
import type { PluginOption } from 'vite'
|
|
3
|
+
|
|
4
|
+
async function getPlatformResolvePlugin() {
|
|
5
|
+
const { getBaseVitePlugins } = await import('../config/getBaseVitePlugins')
|
|
6
|
+
const plugins = getBaseVitePlugins() as PluginOption[]
|
|
7
|
+
|
|
8
|
+
const plugin = plugins.find(
|
|
9
|
+
(p) =>
|
|
10
|
+
typeof p === 'object' &&
|
|
11
|
+
p !== null &&
|
|
12
|
+
'name' in p &&
|
|
13
|
+
p.name === 'platform-specific-resolve'
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
if (!plugin || typeof plugin !== 'object' || !('resolveId' in plugin)) {
|
|
17
|
+
throw new Error('platform-specific-resolve plugin not found')
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return plugin
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function createMockContext(envName: string, resolvedId?: string) {
|
|
24
|
+
return {
|
|
25
|
+
resolve: vi.fn().mockResolvedValue(resolvedId ? { id: resolvedId } : null),
|
|
26
|
+
environment: { name: envName },
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
describe('platform-specific-resolve', () => {
|
|
31
|
+
describe('.server extension', () => {
|
|
32
|
+
it('ssr resolves .server files', async () => {
|
|
33
|
+
const plugin = await getPlatformResolvePlugin()
|
|
34
|
+
const resolveId = plugin.resolveId as Function
|
|
35
|
+
|
|
36
|
+
const FSExtra = await import('fs-extra')
|
|
37
|
+
vi.spyOn(FSExtra.default, 'pathExists').mockImplementation(async (path: any) => {
|
|
38
|
+
return String(path).includes('.server.')
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const ctx = createMockContext('ssr', '/src/db.ts')
|
|
42
|
+
const result = await resolveId.call(ctx, './db', '/src/app.tsx', {})
|
|
43
|
+
|
|
44
|
+
expect(result).toEqual({ id: '/src/db.server.ts' })
|
|
45
|
+
|
|
46
|
+
vi.restoreAllMocks()
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it('client does not resolve .server files', async () => {
|
|
50
|
+
const plugin = await getPlatformResolvePlugin()
|
|
51
|
+
const resolveId = plugin.resolveId as Function
|
|
52
|
+
|
|
53
|
+
const FSExtra = await import('fs-extra')
|
|
54
|
+
vi.spyOn(FSExtra.default, 'pathExists').mockImplementation(async (path: any) => {
|
|
55
|
+
return String(path).includes('.web.')
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
const ctx = createMockContext('client', '/src/db.ts')
|
|
59
|
+
const result = await resolveId.call(ctx, './db', '/src/app.tsx', {})
|
|
60
|
+
|
|
61
|
+
expect(result).toEqual({ id: '/src/db.web.ts' })
|
|
62
|
+
|
|
63
|
+
vi.restoreAllMocks()
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
it('errors when .server file is explicitly imported on client', async () => {
|
|
67
|
+
const plugin = await getPlatformResolvePlugin()
|
|
68
|
+
const resolveId = plugin.resolveId as Function
|
|
69
|
+
|
|
70
|
+
const ctx = createMockContext('client', '/src/db.server.ts')
|
|
71
|
+
|
|
72
|
+
await expect(
|
|
73
|
+
resolveId.call(ctx, './db.server', '/src/page.tsx', {})
|
|
74
|
+
).rejects.toThrow('.server file cannot be imported on client')
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
it('errors when .server file is explicitly imported on ios', async () => {
|
|
78
|
+
const plugin = await getPlatformResolvePlugin()
|
|
79
|
+
const resolveId = plugin.resolveId as Function
|
|
80
|
+
|
|
81
|
+
const ctx = createMockContext('ios', '/src/db.server.ts')
|
|
82
|
+
|
|
83
|
+
await expect(
|
|
84
|
+
resolveId.call(ctx, './db.server', '/src/page.tsx', {})
|
|
85
|
+
).rejects.toThrow('.server file cannot be imported on ios')
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
it('allows .server file import on ssr', async () => {
|
|
89
|
+
const plugin = await getPlatformResolvePlugin()
|
|
90
|
+
const resolveId = plugin.resolveId as Function
|
|
91
|
+
|
|
92
|
+
const FSExtra = await import('fs-extra')
|
|
93
|
+
vi.spyOn(FSExtra.default, 'pathExists').mockResolvedValue(false as any)
|
|
94
|
+
|
|
95
|
+
const ctx = createMockContext('ssr', '/src/db.server.ts')
|
|
96
|
+
// should not throw
|
|
97
|
+
const result = await resolveId.call(ctx, './db.server', '/src/page.tsx', {})
|
|
98
|
+
expect(result).toBeUndefined()
|
|
99
|
+
|
|
100
|
+
vi.restoreAllMocks()
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
describe('config extensions', () => {
|
|
105
|
+
it('ssr includes .server extensions', async () => {
|
|
106
|
+
const plugin = await getPlatformResolvePlugin()
|
|
107
|
+
const config = (plugin.config as Function)()
|
|
108
|
+
|
|
109
|
+
const ssrExts = config.environments.ssr.resolve.extensions
|
|
110
|
+
expect(ssrExts).toContain('.server.ts')
|
|
111
|
+
expect(ssrExts).toContain('.server.tsx')
|
|
112
|
+
expect(ssrExts).toContain('.web.ts')
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
it('client does not include .server extensions', async () => {
|
|
116
|
+
const plugin = await getPlatformResolvePlugin()
|
|
117
|
+
const config = (plugin.config as Function)()
|
|
118
|
+
|
|
119
|
+
const clientExts = config.environments.client.resolve.extensions
|
|
120
|
+
expect(clientExts).not.toContain('.server.ts')
|
|
121
|
+
expect(clientExts).not.toContain('.server.tsx')
|
|
122
|
+
})
|
|
123
|
+
})
|
|
124
|
+
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBaseVitePlugins.d.ts","sourceRoot":"","sources":["../../src/config/getBaseVitePlugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAQxC,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"getBaseVitePlugins.d.ts","sourceRoot":"","sources":["../../src/config/getBaseVitePlugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAQxC,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CA2GnD"}
|
package/types/constants.d.ts
CHANGED
package/types/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAA;AAWhC,eAAO,MAAM,aAAa,UAMzB,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAA;AAWhC,eAAO,MAAM,aAAa,UAMzB,CAAA;AAED,eAAO,MAAM,aAAa,UAAkD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverExtensions.test.d.ts","sourceRoot":"","sources":["../../src/plugins/serverExtensions.test.ts"],"names":[],"mappings":""}
|