one 1.16.12 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/babel-preset/index.cjs +154 -0
- package/dist/cjs/babel-preset/index.native.js +186 -0
- package/dist/cjs/babel-preset/index.native.js.map +1 -0
- package/dist/cjs/babel-preset/index.test.cjs +143 -0
- package/dist/cjs/babel-preset/index.test.native.js +165 -0
- package/dist/cjs/babel-preset/index.test.native.js.map +1 -0
- package/dist/cjs/babel-preset/integration.test.cjs +94 -0
- package/dist/cjs/babel-preset/integration.test.native.js +97 -0
- package/dist/cjs/babel-preset/integration.test.native.js.map +1 -0
- package/dist/cjs/cli/generateBundlerConfig.cjs +247 -0
- package/dist/cjs/cli/generateBundlerConfig.native.js +316 -0
- package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -0
- package/dist/cjs/cli/generateBundlerConfig.test.cjs +350 -0
- package/dist/cjs/cli/generateBundlerConfig.test.native.js +380 -0
- package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -0
- package/dist/cjs/cli/patch.cjs +19 -2
- package/dist/cjs/cli/patch.native.js +26 -2
- package/dist/cjs/cli/patch.native.js.map +1 -1
- package/dist/cjs/cli/patch.test.cjs +56 -0
- package/dist/cjs/cli/patch.test.native.js +65 -0
- package/dist/cjs/cli/patch.test.native.js.map +1 -0
- package/dist/cjs/cli.cjs +39 -2
- package/dist/cjs/cli.native.js +40 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +102 -0
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +109 -0
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +17 -150
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.cjs +84 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js +90 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +17 -158
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.cjs +82 -0
- package/dist/cjs/metro-config/withOne.native.js +88 -0
- package/dist/cjs/metro-config/withOne.native.js.map +1 -0
- package/dist/cjs/metro-config/withOne.test.cjs +129 -0
- package/dist/cjs/metro-config/withOne.test.native.js +156 -0
- package/dist/cjs/metro-config/withOne.test.native.js.map +1 -0
- package/dist/cjs/vite/loadConfig.cjs +20 -1
- package/dist/cjs/vite/loadConfig.native.js +20 -1
- package/dist/cjs/vite/loadConfig.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +13 -7
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +13 -7
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/dist/esm/babel-preset/index.mjs +116 -0
- package/dist/esm/babel-preset/index.mjs.map +1 -0
- package/dist/esm/babel-preset/index.native.js +145 -0
- package/dist/esm/babel-preset/index.native.js.map +1 -0
- package/dist/esm/babel-preset/index.test.mjs +120 -0
- package/dist/esm/babel-preset/index.test.mjs.map +1 -0
- package/dist/esm/babel-preset/index.test.native.js +139 -0
- package/dist/esm/babel-preset/index.test.native.js.map +1 -0
- package/dist/esm/babel-preset/integration.test.mjs +71 -0
- package/dist/esm/babel-preset/integration.test.mjs.map +1 -0
- package/dist/esm/babel-preset/integration.test.native.js +71 -0
- package/dist/esm/babel-preset/integration.test.native.js.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.mjs +207 -0
- package/dist/esm/cli/generateBundlerConfig.mjs.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.native.js +273 -0
- package/dist/esm/cli/generateBundlerConfig.native.js.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.test.mjs +327 -0
- package/dist/esm/cli/generateBundlerConfig.test.mjs.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.test.native.js +354 -0
- package/dist/esm/cli/generateBundlerConfig.test.native.js.map +1 -0
- package/dist/esm/cli/patch.mjs +19 -2
- package/dist/esm/cli/patch.mjs.map +1 -1
- package/dist/esm/cli/patch.native.js +26 -2
- package/dist/esm/cli/patch.native.js.map +1 -1
- package/dist/esm/cli/patch.test.mjs +57 -0
- package/dist/esm/cli/patch.test.mjs.map +1 -0
- package/dist/esm/cli/patch.test.native.js +63 -0
- package/dist/esm/cli/patch.test.native.js.map +1 -0
- package/dist/esm/cli.mjs +39 -2
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +40 -2
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +66 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +70 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs +61 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js +64 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +17 -138
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +17 -146
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/metro-config/withOne.mjs +45 -0
- package/dist/esm/metro-config/withOne.mjs.map +1 -0
- package/dist/esm/metro-config/withOne.native.js +48 -0
- package/dist/esm/metro-config/withOne.native.js.map +1 -0
- package/dist/esm/metro-config/withOne.test.mjs +106 -0
- package/dist/esm/metro-config/withOne.test.mjs.map +1 -0
- package/dist/esm/metro-config/withOne.test.native.js +130 -0
- package/dist/esm/metro-config/withOne.test.native.js.map +1 -0
- package/dist/esm/vite/loadConfig.mjs +20 -1
- package/dist/esm/vite/loadConfig.mjs.map +1 -1
- package/dist/esm/vite/loadConfig.native.js +20 -1
- package/dist/esm/vite/loadConfig.native.js.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +13 -7
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +13 -7
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/package.json +20 -9
- package/src/babel-preset/index.test.ts +148 -0
- package/src/babel-preset/index.ts +250 -0
- package/src/babel-preset/integration.test.ts +91 -0
- package/src/cli/generateBundlerConfig.test.ts +343 -0
- package/src/cli/generateBundlerConfig.ts +339 -0
- package/src/cli/patch.test.ts +65 -0
- package/src/cli/patch.ts +30 -2
- package/src/cli.ts +31 -0
- package/src/metro-config/buildOneMetroResolverOverrides.ts +104 -0
- package/src/metro-config/getViteMetroPluginOptions.integration.test.ts +75 -0
- package/src/metro-config/getViteMetroPluginOptions.ts +15 -230
- package/src/metro-config/withOne.test.ts +120 -0
- package/src/metro-config/withOne.ts +112 -0
- package/src/vite/loadConfig.ts +22 -0
- package/src/vite/plugins/warmRoutesPlugin.ts +22 -6
- package/types/babel-preset/index.d.ts +68 -0
- package/types/babel-preset/index.d.ts.map +1 -0
- package/types/babel-preset/index.test.d.ts +2 -0
- package/types/babel-preset/index.test.d.ts.map +1 -0
- package/types/babel-preset/integration.test.d.ts +2 -0
- package/types/babel-preset/integration.test.d.ts.map +1 -0
- package/types/cli/generateBundlerConfig.d.ts +61 -0
- package/types/cli/generateBundlerConfig.d.ts.map +1 -0
- package/types/cli/generateBundlerConfig.test.d.ts +2 -0
- package/types/cli/generateBundlerConfig.test.d.ts.map +1 -0
- package/types/cli/patch.d.ts.map +1 -1
- package/types/cli/patch.test.d.ts +2 -0
- package/types/cli/patch.test.d.ts.map +1 -0
- package/types/metro-config/buildOneMetroResolverOverrides.d.ts +20 -0
- package/types/metro-config/buildOneMetroResolverOverrides.d.ts.map +1 -0
- package/types/metro-config/getViteMetroPluginOptions.d.ts +0 -5
- package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
- package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts +2 -0
- package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts.map +1 -0
- package/types/metro-config/withOne.d.ts +44 -0
- package/types/metro-config/withOne.d.ts.map +1 -0
- package/types/metro-config/withOne.test.d.ts +2 -0
- package/types/metro-config/withOne.test.d.ts.map +1 -0
- package/types/vite/loadConfig.d.ts +1 -0
- package/types/vite/loadConfig.d.ts.map +1 -1
- package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.cjs +0 -23
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js +0 -26
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs +0 -24
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs.map +0 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js +0 -24
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
- package/src/metro-config/getViteMetroPluginOptions.test.ts +0 -34
- package/types/metro-config/getViteMetroPluginOptions.test.d.ts +0 -2
- package/types/metro-config/getViteMetroPluginOptions.test.d.ts.map +0 -1
|
@@ -11,10 +11,18 @@ function getUserOneOptions() {
|
|
|
11
11
|
async function loadUserOneOptions(command) {
|
|
12
12
|
var silent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
13
13
|
var originalConsoleError = console.error;
|
|
14
|
+
var previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
15
|
+
var previousOneOptions = globalThis["__oneOptions"];
|
|
16
|
+
var previousVxrnPluginConfig = globalThis["__vxrnPluginConfig__"];
|
|
17
|
+
var previousVxrnMetroOptions = globalThis["__vxrnMetroOptions__"];
|
|
14
18
|
if (silent) {
|
|
15
19
|
console.error = function () {};
|
|
16
20
|
}
|
|
17
21
|
try {
|
|
22
|
+
process.env.IS_VXRN_CLI = "true";
|
|
23
|
+
delete globalThis["__oneOptions"];
|
|
24
|
+
delete globalThis["__vxrnPluginConfig__"];
|
|
25
|
+
delete globalThis["__vxrnMetroOptions__"];
|
|
18
26
|
var config = await loadConfigFromFile({
|
|
19
27
|
mode: command === "serve" ? "dev" : "prod",
|
|
20
28
|
command
|
|
@@ -28,9 +36,20 @@ async function loadUserOneOptions(command) {
|
|
|
28
36
|
}
|
|
29
37
|
return {
|
|
30
38
|
config,
|
|
31
|
-
oneOptions
|
|
39
|
+
oneOptions,
|
|
40
|
+
metroOptions: globalThis["__vxrnMetroOptions__"]
|
|
32
41
|
};
|
|
42
|
+
} catch (error) {
|
|
43
|
+
globalThis["__oneOptions"] = previousOneOptions;
|
|
44
|
+
globalThis["__vxrnPluginConfig__"] = previousVxrnPluginConfig;
|
|
45
|
+
globalThis["__vxrnMetroOptions__"] = previousVxrnMetroOptions;
|
|
46
|
+
throw error;
|
|
33
47
|
} finally {
|
|
48
|
+
if (previousIsVxrnCli === void 0) {
|
|
49
|
+
delete process.env.IS_VXRN_CLI;
|
|
50
|
+
} else {
|
|
51
|
+
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
52
|
+
}
|
|
34
53
|
if (silent) {
|
|
35
54
|
console.error = originalConsoleError;
|
|
36
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","arguments","length","originalConsoleError","console","error","
|
|
1
|
+
{"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","arguments","length","originalConsoleError","console","error","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousOneOptions","previousVxrnPluginConfig","previousVxrnMetroOptions","config","mode","cwd","oneOptions","metroOptions"],"sources":["../../../src/vite/loadConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AAM5B,SAASC,cAAcC,IAAA,EAAyB;EACrDC,UAAA,CAAWC,YAAA,GAAeF,IAAA;AAC5B;AAEA,SAASG,kBAAA,EAAoB;EAC3B,IAAI,CAACF,UAAA,CAAWC,YAAA,EAAc;IAC5B,MAAM,IAAIE,KAAA;EAAA;EACR,OACFH,UAAA,CAAAC,YAAA;AAAA;AAEF,eAAOG,kBAAWA,CAAAC,OAAA;EACpB,IAAAC,MAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAEA,IAAAE,oBAAsB,GAAAC,OAAmB,CAAAC,KAAA;EAEvC,IAAAC,iBAAM,GAAAC,OAAuB,CAAAC,GAAA,CAAAC,WAAQ;EACrC,IAAAC,kBAAM,GAAAhB,UAA4B,eAAI;EACtC,IAAAiB,wBAA2B,GAAAjB,UAAW,uBAAc;EACpD,IAAAkB,wBAAM,GAAAlB,UAA2B,uBAAW;EAC5C,IAAAM,MAAM;IAENI,OAAI,CAAAC,KAAQ,gBACV;EAAsB;EACxB;IAEAE,OAAI,CAAAC,GAAA,CAAAC,WAAA;IACF,OAAAf,UAAY,eAAc;IAC1B,OAAOA,UAAA,CAAW,sBAAc;IAChC,OAAOA,UAAA,CAAW,sBAAsB;IACxC,IAAAmB,MAAO,SAAWtB,kBAAA;MAElBuB,IAAM,EAAAf,OAAS,YAAM,iBAAmB;MACtCA;IAAoC,EACpC;IACF,IAAC,CAAAc,MAAA;MAED,MAAK,IAAAhB,KAAQ,wBAAAU,OAAA,CAAAQ,GAAA;IACX;IAAU,IACRC,UAAA,GAAApB,iBAAuB,CAAQ;IAAK,IACtC,CAAAoB,UAAA;MACF,UAAAnB,KAAA;IAEA;IAEA,OAAK;MACHgB,MAAM;MACRG,UAAA;MAEAC,YAAO,EAAAvB,UAAA;IAAA;EACL,SACAW,KAAA;IAAAX,UACA,eAAc,IAAWgB,kBAAA;IAC3BhB,UAAA,2BAAAiB,wBAAA;IACFjB,UAAS,uBAAO,IAAAkB,wBAAA;IACd,MAAAP,KAAW;EACX;IACA,IAAAC,iBAAW,aAAsB;MACjC,OAAMC,OAAA,CAAAC,GAAA,CAAAC,WAAA;IACR;MACEF,OAAI,CAAAC,GAAA,CAAAC,WAAA,GAAsBH,iBAAW;IACnC;IACF,IAAAN,MAAO;MACLI,OAAA,CAAQC,KAAI,GAAAF,oBAAc;IAC5B;EAEA;AACE;AAAgB,SAEpBL,kBAAA,EACFN,aAAA","ignoreList":[]}
|
|
@@ -55,24 +55,30 @@ function autoWarmPlugin(persistPath) {
|
|
|
55
55
|
lastDepsCount = currentDeps.length;
|
|
56
56
|
const depsToCache = currentDeps.filter(d => !userInclude.has(d) && !excludeSet.has(d));
|
|
57
57
|
const allDeps = new Set(depsToCache);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
let existingRaw;
|
|
59
|
+
if (existsSync(cacheFile)) {
|
|
60
|
+
try {
|
|
61
|
+
existingRaw = readFileSync(cacheFile, "utf-8");
|
|
62
|
+
const existing = JSON.parse(existingRaw);
|
|
61
63
|
if (Array.isArray(existing.deps)) {
|
|
62
64
|
for (const d of existing.deps) {
|
|
63
65
|
if (!excludeSet.has(d)) allDeps.add(d);
|
|
64
66
|
}
|
|
65
67
|
}
|
|
68
|
+
} catch {
|
|
69
|
+
return;
|
|
66
70
|
}
|
|
67
|
-
}
|
|
71
|
+
}
|
|
68
72
|
const sorted = [...allDeps].sort();
|
|
73
|
+
const nextRaw = JSON.stringify({
|
|
74
|
+
deps: sorted
|
|
75
|
+
}, null, 2);
|
|
76
|
+
if (existingRaw === nextRaw) return;
|
|
69
77
|
const dir = dirname(cacheFile);
|
|
70
78
|
if (!existsSync(dir)) mkdirSync(dir, {
|
|
71
79
|
recursive: true
|
|
72
80
|
});
|
|
73
|
-
writeFileSync(cacheFile,
|
|
74
|
-
deps: sorted
|
|
75
|
-
}, null, 2));
|
|
81
|
+
writeFileSync(cacheFile, nextRaw);
|
|
76
82
|
console.info(`[one] cached ${sorted.length} deps for next startup`);
|
|
77
83
|
} catch {}
|
|
78
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","readFileSync","writeFileSync","mkdirSync","join","dirname","WARM_DEPS_FILE","TRACKING_WINDOW","autoWarmPlugin","persistPath","cacheFile","cachedDeps","excludeSet","name","apply","config","volatileCache","process","cwd","cached","JSON","parse","Array","isArray","deps","length","console","info","optimizeDeps","include","configResolved","Set","exclude","size","conflicts","filter","d","has","configureServer","server","lastDepsCount","timer","userInclude","includes","snapshotDeps","optimizer","environments","client","depsOptimizer","_depsOptimizer","metadata","optimized","discovered","currentDeps","Object","keys","depsToCache","allDeps","existing","add","sorted","sort","
|
|
1
|
+
{"version":3,"names":["existsSync","readFileSync","writeFileSync","mkdirSync","join","dirname","WARM_DEPS_FILE","TRACKING_WINDOW","autoWarmPlugin","persistPath","cacheFile","cachedDeps","excludeSet","name","apply","config","volatileCache","process","cwd","cached","JSON","parse","Array","isArray","deps","length","console","info","optimizeDeps","include","configResolved","Set","exclude","size","conflicts","filter","d","has","configureServer","server","lastDepsCount","timer","userInclude","includes","snapshotDeps","optimizer","environments","client","depsOptimizer","_depsOptimizer","metadata","optimized","discovered","currentDeps","Object","keys","depsToCache","allDeps","existingRaw","existing","add","sorted","sort","nextRaw","stringify","dir","recursive","httpServer","once","setInterval","setTimeout","clearInterval","origClose","close","bind","warmRoutesPlugin"],"sources":["../../../../src/vite/plugins/warmRoutesPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -67,9 +67,11 @@ function autoWarmPlugin(persistPath) {
|
|
|
67
67
|
return !userInclude.has(d2) && !excludeSet.has(d2);
|
|
68
68
|
});
|
|
69
69
|
var allDeps = new Set(depsToCache);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
var existingRaw;
|
|
71
|
+
if (existsSync(cacheFile)) {
|
|
72
|
+
try {
|
|
73
|
+
existingRaw = readFileSync(cacheFile, "utf-8");
|
|
74
|
+
var existing = JSON.parse(existingRaw);
|
|
73
75
|
if (Array.isArray(existing.deps)) {
|
|
74
76
|
var _iteratorNormalCompletion = true,
|
|
75
77
|
_didIteratorError = false,
|
|
@@ -94,16 +96,20 @@ function autoWarmPlugin(persistPath) {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
}
|
|
99
|
+
} catch (unused) {
|
|
100
|
+
return;
|
|
97
101
|
}
|
|
98
|
-
}
|
|
102
|
+
}
|
|
99
103
|
var sorted = [...allDeps].sort();
|
|
104
|
+
var nextRaw = JSON.stringify({
|
|
105
|
+
deps: sorted
|
|
106
|
+
}, null, 2);
|
|
107
|
+
if (existingRaw === nextRaw) return;
|
|
100
108
|
var dir = dirname(cacheFile);
|
|
101
109
|
if (!existsSync(dir)) mkdirSync(dir, {
|
|
102
110
|
recursive: true
|
|
103
111
|
});
|
|
104
|
-
writeFileSync(cacheFile,
|
|
105
|
-
deps: sorted
|
|
106
|
-
}, null, 2));
|
|
112
|
+
writeFileSync(cacheFile, nextRaw);
|
|
107
113
|
console.info(`[one] cached ${sorted.length} deps for next startup`);
|
|
108
114
|
} catch (unused) {}
|
|
109
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","readFileSync","writeFileSync","mkdirSync","join","dirname","WARM_DEPS_FILE","TRACKING_WINDOW","autoWarmPlugin","persistPath","cacheFile","cachedDeps","excludeSet","name","apply","config","volatileCache","process","cwd","cached","JSON","parse","Array","isArray","deps","length","console","info","optimizeDeps","include","unused","configResolved","Set","exclude","size","conflicts","filter","d","has","configureServer","server","_server_httpServer","lastDepsCount","timer","userInclude","includes","snapshotDeps","_ref","_server_environments_client","_server_environments","optimizer","environments","client","depsOptimizer","_depsOptimizer","metadata","optimized","discovered","currentDeps","Object","keys","depsToCache","d2","allDeps","existing","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","add","err","return","sorted"],"sources":["../../../../src/vite/plugins/warmRoutesPlugin.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"names":["existsSync","readFileSync","writeFileSync","mkdirSync","join","dirname","WARM_DEPS_FILE","TRACKING_WINDOW","autoWarmPlugin","persistPath","cacheFile","cachedDeps","excludeSet","name","apply","config","volatileCache","process","cwd","cached","JSON","parse","Array","isArray","deps","length","console","info","optimizeDeps","include","unused","configResolved","Set","exclude","size","conflicts","filter","d","has","configureServer","server","_server_httpServer","lastDepsCount","timer","userInclude","includes","snapshotDeps","_ref","_server_environments_client","_server_environments","optimizer","environments","client","depsOptimizer","_depsOptimizer","metadata","optimized","discovered","currentDeps","Object","keys","depsToCache","d2","allDeps","existingRaw","existing","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","add","err","return","sorted","sort","nextRaw","stringify"],"sources":["../../../../src/vite/plugins/warmRoutesPlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,YAAA,EAAcC,aAAA,EAAeC,SAAA,QAAiB;AACnE,SAASC,IAAA,EAAMC,OAAA,QAAe;AAG9B,IAAAC,cAAM,uBAAiB;AAGvB,IAAAC,eAAM,OAAkB,EAAI,MAAK;AAe1B,SAASC,eAAeC,WAAA,EAA8B;EAC3D,IAAIC,SAAA;EACJ,IAAIC,UAAA,GAAuB,EAAC;EAC5B,IAAIC,UAAA;EAEJ,OAAO;IACLC,IAAA,EAAM;IACNC,KAAA,EAAO;IAEPC,OAAA,EAAS;MACP,IAAAC,aAAM,GAAAZ,IAAgB,CAAAa,OAAK,CAAAC,GAAQ,IAAI,cAAG,SAAgB,EAAAZ,cAAS;MACnEI,SAAA,GACE,OAAOD,WAAA,KAAgB,WAAWL,IAAA,CAAKa,OAAA,CAAQC,GAAA,CAAI,GAAGT,WAAW,IAAIO,aAAA;MAEvE,IAAI;QACF,IAAIhB,UAAA,CAAWU,SAAS,GAAG;UACzB,IAAAS,MAAM,GAAAC,IAAS,CAAAC,KAAK,CAAApB,YAAM,CAAAS,SAAa,SAAW,EAAO;UACzD,IAAIY,KAAA,CAAMC,OAAA,CAAQJ,MAAA,CAAOK,IAAI,KAAKL,MAAA,CAAOK,IAAA,CAAKC,MAAA,GAAS,GAAG;YACxDd,UAAA,GAAaQ,MAAA,CAAOK,IAAA;YACpBE,OAAA,CAAQC,IAAA,CAAK,iBAAiBR,MAAA,CAAOK,IAAA,CAAKC,MAAM,mBAAmB;YAEnE,OAAO;cACLG,YAAA,EAAc;gBACZC,OAAA,EAASV,MAAA,CAAOK;cAClB;YACF;UACF;QACF;MACF,SAAQM,MAAA,GAER;IACF;IAEA;IAEEC,eAAahB,MAAI,EAAI;MAErBH,UAAI,OAAWoB,GAAA,CAAAjB,MAAS,CAAAa,YAAgB,CAAAK,OAAO,IAAG;MAEhD,IAAAtB,UAAM,CAAAc,MAAY,QAAAb,UAAmB,CAAAsB,IAAA,GAAM;QAC3C,IAAIC,SAAA,GAAUxB,UAAY,CAAAyB,MAAA,WAAAC,CAAA;UACxB,OAAAzB,UAAa,CAAA0B,GAAA,CAAAD,CAAA;QAGb;QACE,IAAAF,SAAA,CAAAV,MAAA;UAACC,OAAC,CAAAC,IAAO,mBAAqBQ,SAAiB,CAAAV,MAAA,gCAAqB;UAAA,IAClEV,MAAC,CAAca,YAAY,CAAAC,OAAK;YAClC;YACFd,MAAA,CAAAa,YAAA,CAAAC,OAAA,GAAAd,MAAA,CAAAa,YAAA,CAAAC,OAAA,CAAAO,MAAA,WAAAC,CAAA;cACF,QAAAzB,UAAA,CAAA0B,GAAA,CAAAD,CAAA;YACF;UACF;QAEA;MACE;IACA;IAGAE,eAAMA,CAAAC,MAAc;MAAI,IACrBC,kBAAc;MACjB,IAAAC,aAAA;MAEA,IAAAC,KAAS;MACP,IAAAC,WAAI,OAAAZ,GAAA,EAAAQ,MAAA,CAAAzB,MAAA,CAAAa,YAAA,CAAAC,OAAA,QAAAO,MAAA,WAAAC,CAAA;QACF,QAAM1B,UAAA,CAAAkC,QACY,CAAAR,CAAA;MAGlB;MAEA,SAAAS,YAAMA,CAAA,EAAY;QAClB;UAEA,IAAAC,IAAM;UAAc,IAClBC,2BAA6B,EAACC,oBAAA;UAAA,IAC9BC,SAAU,IAAKH,IAAA,IAAAE,oBAAgB,GAAAT,MAAA,CAAAW,YAAA,cAAAF,oBAAA,wBAAAD,2BAAA,GAAAC,oBAAA,CAAAG,MAAA,cAAAJ,2BAAA,uBAAAA,2BAAA,CAAAK,aAAA,cAAAN,IAAA,cAAAA,IAAA,GAAAP,MAAA,CAAAc,cAAA;UACjC,MAAAJ,SAAA,aAAAA,SAAA,uBAAAA,SAAA,CAAAK,QAAA;UAEA,IAAIC,SAAA,GAAYN,SAAA,CAAAK,QAAgB,CAAAC,SAAY;UAC5C,IAAAC,UAAA,GAAgBP,SAAA,CAAAK,QAAY,CAAAE,UAAA;UAK5B,IAAAC,WAAM,IACJ,GAACC,MAAO,CAAAC,IAAA,CAAAJ,SAAgB,IAAC,EAAK,CAAC,EACjC,GAAAG,MAAA,CAAAC,IAAA,CAAAH,UAAA,QAMA;UACA,IAAIC,WAAA,CAAAjC,MAAA,UAAAiC,WAAA,CAAAjC,MAAA,KAAAiB,aAAA;UACJA,aAAI,GAAWgB,WAAY,CAAAjC,MAAA;UACzB,IAAAoC,WAAI,GAAAH,WAAA,CAAAtB,MAAA,WAAA0B,EAAA;YACF,QAAAlB,WAAc,CAAAN,GAAA,CAAAwB,EAAA,KAAa,CAAAlD,UAAW,CAAA0B,GAAA,CAAOwB,EAAA;UAC7C;UACA,IAAAC,OAAI,GAAM,IAAA/B,GAAA,CAAQ6B,WAAS;UACzB,IAAAG,WAAA;UACE,IAAAhE,UAAK,CAAAU,SAAW;YAAqB,IACvC;cACFsD,WAAA,GAAA/D,YAAA,CAAAS,SAAA;cACF,IAAAuD,QAAQ,GAAA7C,IAAA,CAAAC,KAAA,CAAA2C,WAAA;cACN,IAAA1C,KAAA,CAAAC,OAAA,CAAA0C,QAAA,CAAAzC,IAAA;gBACF,IAAA0C,yBAAA;kBAAAC,iBAAA;kBAAAC,cAAA;gBACF;kBAEM,SAAUC,SAAU,GAAEJ,QAAK,CAAAzC,IAAA,CAAA8C,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;oBAC3B,IAAA7B,CAAA,GAAUmC,KAAK,CAAAG,KAAA;oBAOjB,KAAA/D,UAAgB,CAAA0B,GAAS,CAAAD,CAAA,GAAA0B,OAAA,CAAAa,GAAA,CAAAvC,CAAA;kBAEvB;gBACD,SAAAwC,GAAW,EAAG;kBAEnBV,iBAAyB,OAAO;kBACxBC,cAAK,GAAAS,GAAA;gBACP;kBAER;oBACF,KAAAX,yBAAA,IAAAG,SAAA,CAAAS,MAAA;sBAEOT,SAAiB,CAAAS,MAAA;oBACd;kBAER,CAAW,SAAM;oBACf,IAAcX,iBAAK;sBACnB,MAAaC,cAAA;oBACZ;kBACJ;gBAGK;cACC;YACL,SAAAtC,MAAmB;cACnB;YACA;UACF;UACF,IAAAiD,MAAA,IACF,GAAAhB,OAAA,CACF,CAAAiB,IAAA;UAGa,IAAAC,OAAA,GAAA7D,IAAmB,CAAA8D,SAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -86,6 +86,16 @@
|
|
|
86
86
|
"import": "./dist/esm/babel-plugins/inline-one-server-url.mjs",
|
|
87
87
|
"require": "./dist/cjs/babel-plugins/inline-one-server-url.cjs"
|
|
88
88
|
},
|
|
89
|
+
"./babel-preset": {
|
|
90
|
+
"types": "./types/babel-preset/index.d.ts",
|
|
91
|
+
"import": "./dist/esm/babel-preset/index.mjs",
|
|
92
|
+
"require": "./dist/cjs/babel-preset/index.cjs"
|
|
93
|
+
},
|
|
94
|
+
"./metro-config": {
|
|
95
|
+
"types": "./types/metro-config/withOne.d.ts",
|
|
96
|
+
"import": "./dist/esm/metro-config/withOne.mjs",
|
|
97
|
+
"require": "./dist/cjs/metro-config/withOne.cjs"
|
|
98
|
+
},
|
|
89
99
|
"./getViteMetroPluginOptions": {
|
|
90
100
|
"types": "./types/metro-config/getViteMetroPluginOptions.d.ts",
|
|
91
101
|
"import": "./dist/esm/metro-config/getViteMetroPluginOptions.mjs",
|
|
@@ -170,17 +180,18 @@
|
|
|
170
180
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
171
181
|
"@swc/core": "^1.14.0",
|
|
172
182
|
"@ungap/structured-clone": "^1.2.0",
|
|
173
|
-
"@vxrn/color-scheme": "1.
|
|
174
|
-
"@vxrn/compiler": "1.
|
|
175
|
-
"@vxrn/resolve": "1.
|
|
176
|
-
"@vxrn/tslib-lite": "1.
|
|
177
|
-
"@vxrn/use-isomorphic-layout-effect": "1.
|
|
178
|
-
"@vxrn/vite-plugin-metro": "1.
|
|
183
|
+
"@vxrn/color-scheme": "1.17.0",
|
|
184
|
+
"@vxrn/compiler": "1.17.0",
|
|
185
|
+
"@vxrn/resolve": "1.17.0",
|
|
186
|
+
"@vxrn/tslib-lite": "1.17.0",
|
|
187
|
+
"@vxrn/use-isomorphic-layout-effect": "1.17.0",
|
|
188
|
+
"@vxrn/vite-plugin-metro": "1.17.0",
|
|
179
189
|
"babel-dead-code-elimination": "1.0.10",
|
|
180
190
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
191
|
+
"babel-preset-expo": "*",
|
|
181
192
|
"citty": "^0.1.6",
|
|
182
193
|
"core-js": "^3.38.1",
|
|
183
|
-
"create-vxrn": "1.
|
|
194
|
+
"create-vxrn": "1.17.0",
|
|
184
195
|
"escape-string-regexp": "^5.0.0",
|
|
185
196
|
"expo-linking": "~55.0.7",
|
|
186
197
|
"expo-modules-core": "~55.0.16",
|
|
@@ -200,7 +211,7 @@
|
|
|
200
211
|
"tsconfig-paths": "^4",
|
|
201
212
|
"use-latest-callback": "^0.2.3",
|
|
202
213
|
"vite": "^8.0.0",
|
|
203
|
-
"vxrn": "1.
|
|
214
|
+
"vxrn": "1.17.0",
|
|
204
215
|
"ws": "^8.18.0",
|
|
205
216
|
"xxhashjs": "^0.2.2"
|
|
206
217
|
},
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import path from 'node:path'
|
|
2
|
+
import { describe, expect, it } from 'vitest'
|
|
3
|
+
import oneBabelPreset, { buildOneBabelPlugins } from './index'
|
|
4
|
+
|
|
5
|
+
const projectRoot = path.resolve(__dirname, '../../')
|
|
6
|
+
|
|
7
|
+
const fakeApi = (cwd: string) => ({
|
|
8
|
+
cache: () => {},
|
|
9
|
+
cwd: () => cwd,
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
describe('one/babel-preset', () => {
|
|
13
|
+
it('returns presets and plugins', () => {
|
|
14
|
+
const result = oneBabelPreset(fakeApi(projectRoot), {
|
|
15
|
+
projectRoot,
|
|
16
|
+
// skip the babel-preset-expo lookup so this test runs without the
|
|
17
|
+
// expo SDK installed in the workspace root
|
|
18
|
+
includeExpoPreset: false,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
expect(result).toHaveProperty('plugins')
|
|
22
|
+
expect(Array.isArray(result.plugins)).toBe(true)
|
|
23
|
+
// 5 One plugins + import-meta-env-plugin baked in for standalone Metro
|
|
24
|
+
expect(result.plugins).toHaveLength(6)
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('orders the plugin chain so server code is removed before router transforms', () => {
|
|
28
|
+
const { plugins } = oneBabelPreset(fakeApi(projectRoot), {
|
|
29
|
+
projectRoot,
|
|
30
|
+
includeExpoPreset: false,
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
const names = (plugins ?? []).map((p) => (Array.isArray(p) ? p[0] : p))
|
|
34
|
+
expect(names).toEqual([
|
|
35
|
+
'@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin',
|
|
36
|
+
'one/babel-plugin-environment-guard',
|
|
37
|
+
'one/babel-plugin-remove-server-code',
|
|
38
|
+
'babel-plugin-module-resolver',
|
|
39
|
+
'one/babel-plugin-one-router-metro',
|
|
40
|
+
'one/babel-plugin-inline-one-server-url',
|
|
41
|
+
])
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('defaults routerRoot to "app"', () => {
|
|
45
|
+
const { plugins } = oneBabelPreset(fakeApi(projectRoot), {
|
|
46
|
+
projectRoot,
|
|
47
|
+
includeExpoPreset: false,
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const removeServer = (plugins ?? []).find(
|
|
51
|
+
(p): p is [string, Record<string, unknown>] =>
|
|
52
|
+
Array.isArray(p) && p[0] === 'one/babel-plugin-remove-server-code'
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
expect(removeServer?.[1].routerRoot).toBe('app')
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
it('threads custom routerRoot through', () => {
|
|
59
|
+
const { plugins } = oneBabelPreset(fakeApi(projectRoot), {
|
|
60
|
+
projectRoot,
|
|
61
|
+
routerRoot: 'src/routes',
|
|
62
|
+
includeExpoPreset: false,
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
const removeServer = (plugins ?? []).find(
|
|
66
|
+
(p): p is [string, Record<string, unknown>] =>
|
|
67
|
+
Array.isArray(p) && p[0] === 'one/babel-plugin-remove-server-code'
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
expect(removeServer?.[1].routerRoot).toBe('src/routes')
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
it('skips the One plugin chain when the Vite Metro caller already injected it', () => {
|
|
74
|
+
const result = oneBabelPreset(
|
|
75
|
+
{
|
|
76
|
+
cache: () => {},
|
|
77
|
+
cwd: () => projectRoot,
|
|
78
|
+
caller: <T>(cb: (caller: unknown) => T): T =>
|
|
79
|
+
cb({ oneViteMetroBabelConfig: true }),
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
projectRoot,
|
|
83
|
+
includeExpoPreset: false,
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
expect(result.plugins).toEqual([])
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
describe('buildOneBabelPlugins', () => {
|
|
92
|
+
it('produces the canonical One plugin chain (no env plugin)', () => {
|
|
93
|
+
const plugins = buildOneBabelPlugins({
|
|
94
|
+
projectRoot,
|
|
95
|
+
relativeRouterRoot: 'app',
|
|
96
|
+
ignoredRouteFiles: [],
|
|
97
|
+
linking: undefined,
|
|
98
|
+
setupFile: undefined,
|
|
99
|
+
// skip the import-meta-env plugin so the assertion covers the One-only chain
|
|
100
|
+
includeImportMetaEnv: false,
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
expect(plugins).toHaveLength(5)
|
|
104
|
+
expect(plugins[0]).toBe('one/babel-plugin-environment-guard')
|
|
105
|
+
expect(plugins[1]).toEqual([
|
|
106
|
+
'one/babel-plugin-remove-server-code',
|
|
107
|
+
{ routerRoot: 'app' },
|
|
108
|
+
])
|
|
109
|
+
expect(plugins[2]).toMatchObject(['babel-plugin-module-resolver', { alias: {} }])
|
|
110
|
+
|
|
111
|
+
const oneRouterMetro = plugins[3] as [string, Record<string, unknown>]
|
|
112
|
+
expect(oneRouterMetro[0]).toBe('one/babel-plugin-one-router-metro')
|
|
113
|
+
expect(oneRouterMetro[1]).toMatchObject({
|
|
114
|
+
ONE_ROUTER_ROOT_FOLDER_NAME: 'app',
|
|
115
|
+
ONE_ROUTER_LINKING_CONFIG: undefined,
|
|
116
|
+
ONE_SETUP_FILE_NATIVE: undefined,
|
|
117
|
+
})
|
|
118
|
+
expect(typeof oneRouterMetro[1].ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY).toBe('string')
|
|
119
|
+
expect(typeof oneRouterMetro[1].ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING).toBe('string')
|
|
120
|
+
|
|
121
|
+
expect(plugins[4]).toBe('one/babel-plugin-inline-one-server-url')
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
it('threads setupFile through as a path relative to the metro entry', () => {
|
|
125
|
+
const plugins = buildOneBabelPlugins({
|
|
126
|
+
projectRoot,
|
|
127
|
+
relativeRouterRoot: 'app',
|
|
128
|
+
setupFile: 'src/setup-native.ts',
|
|
129
|
+
includeImportMetaEnv: false,
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
const oneRouterMetro = plugins[3] as [string, Record<string, unknown>]
|
|
133
|
+
expect(oneRouterMetro[1].ONE_SETUP_FILE_NATIVE).toMatch(/setup-native\.ts$/)
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
it('passes the linking config through', () => {
|
|
137
|
+
const linking = { prefixes: ['myapp://'] }
|
|
138
|
+
const plugins = buildOneBabelPlugins({
|
|
139
|
+
projectRoot,
|
|
140
|
+
relativeRouterRoot: 'app',
|
|
141
|
+
linking,
|
|
142
|
+
includeImportMetaEnv: false,
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
const oneRouterMetro = plugins[3] as [string, Record<string, unknown>]
|
|
146
|
+
expect(oneRouterMetro[1].ONE_ROUTER_LINKING_CONFIG).toBe(linking)
|
|
147
|
+
})
|
|
148
|
+
})
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import module from 'node:module'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import type { PluginItem, TransformOptions } from '@babel/core'
|
|
4
|
+
import mm from 'micromatch'
|
|
5
|
+
import tsconfigPaths from 'tsconfig-paths'
|
|
6
|
+
import {
|
|
7
|
+
API_ROUTE_GLOB_PATTERN,
|
|
8
|
+
ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS,
|
|
9
|
+
} from '../router/glob-patterns'
|
|
10
|
+
|
|
11
|
+
// Babel's `ConfigAPI` shape: cache mutator, env helper, and a cwd accessor.
|
|
12
|
+
// The public @babel/core typing omits `cwd()` so we describe it locally.
|
|
13
|
+
type BabelConfigAPI = {
|
|
14
|
+
cache?: ((forever?: boolean) => void) & {
|
|
15
|
+
forever?: () => void
|
|
16
|
+
never?: () => void
|
|
17
|
+
using?: (cb: () => unknown) => void
|
|
18
|
+
invalidate?: (cb: () => unknown) => void
|
|
19
|
+
}
|
|
20
|
+
cwd?: () => string
|
|
21
|
+
env?: (...args: unknown[]) => string | undefined
|
|
22
|
+
caller?: <T>(cb: (caller: unknown) => T) => T
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type OneBabelPresetOptions = {
|
|
26
|
+
/** Absolute path to the project root. Defaults to the babel `cwd`. */
|
|
27
|
+
projectRoot?: string
|
|
28
|
+
/** Router root folder relative to the project root. Defaults to `'app'`. */
|
|
29
|
+
routerRoot?: string
|
|
30
|
+
/** Route file patterns to exclude (same shape as `one({ router: { ignoredRouteFiles } })`). */
|
|
31
|
+
ignoredRouteFiles?: Array<`**/*${string}`>
|
|
32
|
+
/** Routing linking config, mirrors `one({ router: { linking } })`. */
|
|
33
|
+
linking?: unknown
|
|
34
|
+
/** Path to a native setup file, relative to the project root. */
|
|
35
|
+
setupFile?: string | { native?: string; ios?: string; android?: string }
|
|
36
|
+
/** Whether to include `babel-preset-expo` as the base preset. Defaults to true. */
|
|
37
|
+
includeExpoPreset?: boolean
|
|
38
|
+
/**
|
|
39
|
+
* Whether to include `@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin`.
|
|
40
|
+
* Defaults to true. The Vite-driven Metro server injects this separately via
|
|
41
|
+
* `patchMetroServerWithViteConfigAndMetroPluginOptions` using the user's Vite
|
|
42
|
+
* `define` config — so the Vite path passes `false`. Re-applying is idempotent.
|
|
43
|
+
*/
|
|
44
|
+
includeImportMetaEnv?: boolean
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Standalone babel preset that drops the same plugin chain that the
|
|
49
|
+
* Vite-driven Metro path applies into any `babel.config.{cjs,js,mjs}` file.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```js
|
|
53
|
+
* // babel.config.cjs
|
|
54
|
+
* module.exports = require('one/babel-preset')
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export default function oneBabelPreset(
|
|
58
|
+
api: BabelConfigAPI,
|
|
59
|
+
options: OneBabelPresetOptions = {}
|
|
60
|
+
): TransformOptions {
|
|
61
|
+
const hasViteInjectedOnePlugins =
|
|
62
|
+
typeof api?.caller === 'function'
|
|
63
|
+
? api.caller((caller) => !!(caller as any)?.oneViteMetroBabelConfig)
|
|
64
|
+
: false
|
|
65
|
+
|
|
66
|
+
if (!api?.caller && typeof api?.cache === 'function') {
|
|
67
|
+
api.cache(true)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const projectRoot = path.resolve(
|
|
71
|
+
options.projectRoot ?? (typeof api?.cwd === 'function' ? api.cwd() : process.cwd())
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
const presets: PluginItem[] = []
|
|
75
|
+
|
|
76
|
+
if (options.includeExpoPreset !== false) {
|
|
77
|
+
const require = module.createRequire(projectRoot + '/')
|
|
78
|
+
try {
|
|
79
|
+
const expoPresetPath = require.resolve('babel-preset-expo')
|
|
80
|
+
presets.push(require(expoPresetPath))
|
|
81
|
+
} catch (e) {
|
|
82
|
+
throw new Error(
|
|
83
|
+
`[one/babel-preset] Could not resolve 'babel-preset-expo' from ${projectRoot}. ` +
|
|
84
|
+
`Install it as a project dependency (it ships with the Expo SDK). ` +
|
|
85
|
+
`If you don't want the Expo base preset, pass { includeExpoPreset: false }.`
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
presets,
|
|
92
|
+
plugins: hasViteInjectedOnePlugins
|
|
93
|
+
? []
|
|
94
|
+
: buildOneBabelPlugins({
|
|
95
|
+
projectRoot,
|
|
96
|
+
relativeRouterRoot: options.routerRoot ?? 'app',
|
|
97
|
+
ignoredRouteFiles: options.ignoredRouteFiles,
|
|
98
|
+
linking: options.linking,
|
|
99
|
+
setupFile: options.setupFile,
|
|
100
|
+
includeImportMetaEnv: options.includeImportMetaEnv,
|
|
101
|
+
}),
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export type BuildOneBabelPluginsOptions = {
|
|
106
|
+
projectRoot: string
|
|
107
|
+
relativeRouterRoot: string
|
|
108
|
+
ignoredRouteFiles?: Array<`**/*${string}`>
|
|
109
|
+
linking?: unknown
|
|
110
|
+
setupFile?: string | { native?: string; ios?: string; android?: string }
|
|
111
|
+
includeImportMetaEnv?: boolean
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* The plugin chain shared between the Vite-driven Metro path
|
|
116
|
+
* (`getViteMetroPluginOptions`) and the standalone preset above.
|
|
117
|
+
*/
|
|
118
|
+
export function buildOneBabelPlugins({
|
|
119
|
+
projectRoot,
|
|
120
|
+
relativeRouterRoot,
|
|
121
|
+
ignoredRouteFiles,
|
|
122
|
+
linking,
|
|
123
|
+
setupFile,
|
|
124
|
+
includeImportMetaEnv = true,
|
|
125
|
+
}: BuildOneBabelPluginsOptions): PluginItem[] {
|
|
126
|
+
const tsconfig = tsconfigPaths.loadConfig(projectRoot)
|
|
127
|
+
if (tsconfig.resultType === 'failed') {
|
|
128
|
+
throw new Error('[one/babel-preset] tsconfig.json paths could not be loaded')
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const require = module.createRequire(projectRoot + '/')
|
|
132
|
+
const metroEntryPath = require.resolve('one/metro-entry', { paths: [projectRoot] })
|
|
133
|
+
|
|
134
|
+
const setupFileRelativeToMetroEntry = (() => {
|
|
135
|
+
if (!setupFile) return undefined
|
|
136
|
+
const file =
|
|
137
|
+
typeof setupFile === 'string'
|
|
138
|
+
? setupFile
|
|
139
|
+
: setupFile.native || setupFile.ios || setupFile.android
|
|
140
|
+
if (!file) return undefined
|
|
141
|
+
return path.relative(path.dirname(metroEntryPath), path.join(projectRoot, file))
|
|
142
|
+
})()
|
|
143
|
+
|
|
144
|
+
return [
|
|
145
|
+
// standalone Metro CLI (expo export, eas update) needs `import.meta.env.*` /
|
|
146
|
+
// `process.env.*` baked in. The Vite path passes `false` here and injects
|
|
147
|
+
// its own version with the user's `define` env via the server hook.
|
|
148
|
+
...(includeImportMetaEnv
|
|
149
|
+
? [
|
|
150
|
+
[
|
|
151
|
+
'@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin',
|
|
152
|
+
{ env: buildStandaloneImportMetaEnv() },
|
|
153
|
+
] as PluginItem,
|
|
154
|
+
]
|
|
155
|
+
: []),
|
|
156
|
+
'one/babel-plugin-environment-guard',
|
|
157
|
+
['one/babel-plugin-remove-server-code', { routerRoot: relativeRouterRoot }],
|
|
158
|
+
[
|
|
159
|
+
'babel-plugin-module-resolver',
|
|
160
|
+
// "vite-tsconfig-paths" for Metro
|
|
161
|
+
{
|
|
162
|
+
alias: Object.fromEntries(
|
|
163
|
+
Object.entries(tsconfig.paths).map(([k, v]) => {
|
|
164
|
+
// exact-match aliases need a trailing `$`, prefix aliases drop `/*`
|
|
165
|
+
const key = k.endsWith('/*') ? k.replace(/\/\*$/, '') : `${k}$`
|
|
166
|
+
let value = v[0].replace(/\/\*$/, '')
|
|
167
|
+
if (!value.startsWith('./')) value = `./${value}`
|
|
168
|
+
return [key, value]
|
|
169
|
+
})
|
|
170
|
+
),
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
[
|
|
174
|
+
'one/babel-plugin-one-router-metro',
|
|
175
|
+
{
|
|
176
|
+
ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY: path.relative(
|
|
177
|
+
path.dirname(metroEntryPath),
|
|
178
|
+
path.join(projectRoot, relativeRouterRoot)
|
|
179
|
+
),
|
|
180
|
+
ONE_ROUTER_ROOT_FOLDER_NAME: relativeRouterRoot,
|
|
181
|
+
ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING:
|
|
182
|
+
buildRouterRequireContextRegexString(ignoredRouteFiles),
|
|
183
|
+
ONE_ROUTER_LINKING_CONFIG: linking,
|
|
184
|
+
ONE_SETUP_FILE_NATIVE: setupFileRelativeToMetroEntry,
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
'one/babel-plugin-inline-one-server-url',
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Build the `import.meta.env` substitution map for standalone Metro use.
|
|
193
|
+
* Mirrors Vite's default `define`: MODE/BASE_URL/PROD/DEV/SSR plus any
|
|
194
|
+
* `EXPO_PUBLIC_*` / `ONE_*` / `VITE_*` env var from `process.env`.
|
|
195
|
+
*/
|
|
196
|
+
function buildStandaloneImportMetaEnv(): Record<string, unknown> {
|
|
197
|
+
const isProduction = process.env.NODE_ENV !== 'development'
|
|
198
|
+
const env: Record<string, unknown> = {
|
|
199
|
+
MODE: isProduction ? 'production' : 'development',
|
|
200
|
+
BASE_URL: '/',
|
|
201
|
+
PROD: isProduction,
|
|
202
|
+
DEV: !isProduction,
|
|
203
|
+
SSR: false,
|
|
204
|
+
}
|
|
205
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
206
|
+
if (key.startsWith('EXPO_PUBLIC_') || key.startsWith('ONE_') || key.startsWith('VITE_')) {
|
|
207
|
+
env[key] = value
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return env
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* On Windows, micromatch.makeRe() produces `[\\/]` / `[^\\/]` instead of `\/` / `[^/]`.
|
|
215
|
+
* Normalize so the prefix/suffix check below works cross-platform.
|
|
216
|
+
*/
|
|
217
|
+
function normalizeReSource(source: string): string {
|
|
218
|
+
return source.replace(/\[\\\\\/\]/g, '\\/').replace(/\[\^\\\\\/\]/g, '[^/]')
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export function buildRouterRequireContextRegexString(
|
|
222
|
+
ignoredRouteFiles?: Array<`**/*${string}`>
|
|
223
|
+
): string {
|
|
224
|
+
const excludeRes = [
|
|
225
|
+
...(ignoredRouteFiles || []).map((pattern) => mm.makeRe(pattern)),
|
|
226
|
+
...ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map((pattern) => mm.makeRe(pattern)),
|
|
227
|
+
mm.makeRe(API_ROUTE_GLOB_PATTERN),
|
|
228
|
+
]
|
|
229
|
+
|
|
230
|
+
const mustStartWith = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?`
|
|
231
|
+
// biome-ignore lint/complexity/noUselessStringRaw: keep original code
|
|
232
|
+
const mustEndWith = String.raw`)$`
|
|
233
|
+
|
|
234
|
+
const negatives = excludeRes.map((re, i) => {
|
|
235
|
+
const reSource = normalizeReSource(re.source)
|
|
236
|
+
if (!(reSource.startsWith(mustStartWith) && reSource.endsWith(mustEndWith))) {
|
|
237
|
+
const pattern = ignoredRouteFiles?.[i]
|
|
238
|
+
throw new Error(
|
|
239
|
+
pattern
|
|
240
|
+
? `[one/metro] ignoredRouteFile pattern "${pattern}" is not supported. We cannot process the corresponding regex "${reSource}" for now.`
|
|
241
|
+
: `Unsupported regex "${reSource}" in "ignoredRouteFiles".`
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
const inner = reSource.slice(mustStartWith.length, reSource.length - mustEndWith.length)
|
|
245
|
+
// biome-ignore lint/complexity/noUselessStringRaw: keep original code
|
|
246
|
+
return String.raw`(?:.*${inner})`
|
|
247
|
+
})
|
|
248
|
+
|
|
249
|
+
return String.raw`^(?:\.\/)(?!${negatives.join('|')}$).*\.tsx?$`
|
|
250
|
+
}
|