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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["buildOneBabelPlugins","buildOneMetroResolverOverrides","getViteMetroPluginOptions","projectRoot","relativeRouterRoot","ignoredRouteFiles","linking","userDefaultConfigOverrides","setupFile","applyOneResolverOverrides","oneViteMetroBabelConfig","defaultConfigOverrides","defaultConfig","config","babelConfig","plugins","includeImportMetaEnv"],"sources":["../../../src/metro-config/getViteMetroPluginOptions.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;AACrC,SAASC,8BAAA,QAAsC;AAExC,SAASC,0BAA0B;EACxCC,WAAA;EACAC,kBAAA;EACAC,iBAAA;EACAC,OAAA;EACAC,0BAAA;EACAC;AACF,GASsC;EACpC,MAAMC,yBAAA,GAA4BR,8BAAA,CAA+B;IAAEE;EAAY,CAAC;EAEhF,OAAO;IACLO,uBAAA,EAAyB;IACzBC,sBAAA,EAAyBC,aAAA,IAAkB;MACzC,IAAIC,MAAA,GAASJ,yBAAA,CAA0BG,aAAa;MAEpD,IAAI,OAAOL,0BAAA,KAA+B,YAAY;QACpDM,MAAA,GAASN,0BAAA,CAA2BM,MAAM;MAC5C;MAEA,OAAOA,MAAA;IACT;IACAC,WAAA,EAAa;MACXC,OAAA,EAASf,oBAAA,CAAqB;QAC5BG,WAAA;QACAC,kBAAA;QACAC,iBAAA;QACAC,OAAA;QACAE,SAAA;QAAA;QAAA;QAGAQ,oBAAA,EAAsB;MACxB,CAAC;IACH;EACF;AACF","ignoreList":[]}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import mm from "micromatch";
|
|
4
|
-
import tsconfigPaths from "tsconfig-paths";
|
|
5
|
-
import { API_ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS } from "../router/glob-patterns.native.js";
|
|
6
|
-
function normalizeReSource(source) {
|
|
7
|
-
return source.replace(/\[\\\\\/\]/g, "\\/").replace(/\[\^\\\\\/\]/g, "[^/]");
|
|
8
|
-
}
|
|
1
|
+
import { buildOneBabelPlugins } from "../babel-preset/index.native.js";
|
|
2
|
+
import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.native.js";
|
|
9
3
|
function getViteMetroPluginOptions(param) {
|
|
10
4
|
var {
|
|
11
5
|
projectRoot,
|
|
@@ -15,154 +9,31 @@ function getViteMetroPluginOptions(param) {
|
|
|
15
9
|
userDefaultConfigOverrides,
|
|
16
10
|
setupFile
|
|
17
11
|
} = param;
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
throw new Error("tsconfigPathsConfigLoadResult.resultType is not success");
|
|
21
|
-
}
|
|
22
|
-
var require2 = module.createRequire(projectRoot);
|
|
23
|
-
var emptyPath = require2.resolve("@vxrn/vite-plugin-metro/empty", {
|
|
24
|
-
paths: [projectRoot]
|
|
25
|
-
});
|
|
26
|
-
var metroEntryPath = require2.resolve("one/metro-entry", {
|
|
27
|
-
paths: [projectRoot]
|
|
12
|
+
var applyOneResolverOverrides = buildOneMetroResolverOverrides({
|
|
13
|
+
projectRoot
|
|
28
14
|
});
|
|
29
|
-
var routerRequireContextRegexString = function () {
|
|
30
|
-
var excludeRes = [...(ignoredRouteFiles || []).map(function (pattern) {
|
|
31
|
-
return mm.makeRe(pattern);
|
|
32
|
-
}), ...ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map(function (pattern) {
|
|
33
|
-
return mm.makeRe(pattern);
|
|
34
|
-
}), mm.makeRe(API_ROUTE_GLOB_PATTERN)];
|
|
35
|
-
var supportedRegexMustStartWith = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?`;
|
|
36
|
-
var supportedRegexMustEndWith = String.raw`)$`;
|
|
37
|
-
var negativeLookaheadGroups = excludeRes.map(function (re, i) {
|
|
38
|
-
var reSource = normalizeReSource(re.source);
|
|
39
|
-
if (!(reSource.startsWith(supportedRegexMustStartWith) && reSource.endsWith(supportedRegexMustEndWith))) {
|
|
40
|
-
var ignoredRouteFile = ignoredRouteFiles === null || ignoredRouteFiles === void 0 ? void 0 : ignoredRouteFiles[i];
|
|
41
|
-
if (ignoredRouteFile) {
|
|
42
|
-
throw new Error(`[one/metro] ignoredRouteFile pattern "${ignoredRouteFile}" is not supported. We cannot process the corresponding regex "${reSource}" for now.`);
|
|
43
|
-
}
|
|
44
|
-
throw new Error(`Unsupported regex "${reSource}" in "ignoredRouteFiles".`);
|
|
45
|
-
}
|
|
46
|
-
var rePart = reSource.slice(supportedRegexMustStartWith.length, reSource.length - supportedRegexMustEndWith.length);
|
|
47
|
-
return String.raw`(?:.*${rePart})`;
|
|
48
|
-
});
|
|
49
|
-
return String.raw`^(?:\.\/)(?!${negativeLookaheadGroups.join("|")}$).*\.tsx?$`;
|
|
50
|
-
}();
|
|
51
15
|
return {
|
|
16
|
+
oneViteMetroBabelConfig: true,
|
|
52
17
|
defaultConfigOverrides: function (defaultConfig) {
|
|
53
|
-
var
|
|
54
|
-
var config = {
|
|
55
|
-
...defaultConfig,
|
|
56
|
-
resolver: {
|
|
57
|
-
...(defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.resolver),
|
|
58
|
-
extraNodeModules: {
|
|
59
|
-
...(defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver = defaultConfig.resolver) === null || _defaultConfig_resolver === void 0 ? void 0 : _defaultConfig_resolver.extraNodeModules)
|
|
60
|
-
},
|
|
61
|
-
// "vite-tsconfig-paths" for Metro
|
|
62
|
-
// Commenting out since we are using babel-plugin-module-resolver alias instead
|
|
63
|
-
// ...Object.fromEntries(
|
|
64
|
-
// Object.entries(tsconfigPathsConfigLoadResult.paths)
|
|
65
|
-
// .map(([k, v]) => {
|
|
66
|
-
// if (k.endsWith('/*') && v[0]?.endsWith('/*')) {
|
|
67
|
-
// const key = k.replace(/\/\*$/, '')
|
|
68
|
-
// let value = v[0].replace(/\/\*$/, '')
|
|
69
|
-
// value = path.join(tsconfigPathsConfigLoadResult.absoluteBaseUrl, value)
|
|
70
|
-
// return [key, value]
|
|
71
|
-
// }
|
|
72
|
-
// })
|
|
73
|
-
// .filter((i): i is NonNullable<typeof i> => !!i)
|
|
74
|
-
// ),
|
|
75
|
-
nodeModulesPaths: defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver1 = defaultConfig.resolver) === null || _defaultConfig_resolver1 === void 0 ? void 0 : _defaultConfig_resolver1.nodeModulesPaths,
|
|
76
|
-
resolveRequest: function (context, moduleName, platform) {
|
|
77
|
-
var _defaultConfig_resolver2;
|
|
78
|
-
if (moduleName.endsWith(".css")) {
|
|
79
|
-
return {
|
|
80
|
-
type: "sourceFile",
|
|
81
|
-
filePath: emptyPath
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
if (/_middleware.tsx?$/.test(moduleName)) {
|
|
85
|
-
return {
|
|
86
|
-
type: "sourceFile",
|
|
87
|
-
filePath: emptyPath
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
if (/\.server(\.[jt]sx?)?$/.test(moduleName)) {
|
|
91
|
-
return {
|
|
92
|
-
type: "sourceFile",
|
|
93
|
-
filePath: emptyPath
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
if (moduleName === "react-native-svg") {
|
|
97
|
-
var _defaultConfig_resolver12;
|
|
98
|
-
var defaultResolveRequest = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver12 = defaultConfig.resolver) === null || _defaultConfig_resolver12 === void 0 ? void 0 : _defaultConfig_resolver12.resolveRequest) || context.resolveRequest;
|
|
99
|
-
var res = defaultResolveRequest(context, moduleName, platform);
|
|
100
|
-
var svgSrcSuffix = `${path.sep}src${path.sep}index.ts`;
|
|
101
|
-
if (res && "filePath" in res && res.filePath.includes(svgSrcSuffix)) {
|
|
102
|
-
return {
|
|
103
|
-
...res,
|
|
104
|
-
filePath: res.filePath.replace(svgSrcSuffix, `${path.sep}lib${path.sep}commonjs${path.sep}index.js`)
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
return res;
|
|
108
|
-
}
|
|
109
|
-
var defaultResolveRequest1 = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;
|
|
110
|
-
var res1 = defaultResolveRequest1(context, moduleName, platform);
|
|
111
|
-
if (res1 && "filePath" in res1 && /\.server\.[jt]sx?$/.test(res1.filePath)) {
|
|
112
|
-
return {
|
|
113
|
-
type: "sourceFile",
|
|
114
|
-
filePath: emptyPath
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
return res1;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
18
|
+
var config = applyOneResolverOverrides(defaultConfig);
|
|
121
19
|
if (typeof userDefaultConfigOverrides === "function") {
|
|
122
20
|
config = userDefaultConfigOverrides(config);
|
|
123
21
|
}
|
|
124
22
|
return config;
|
|
125
23
|
},
|
|
126
24
|
babelConfig: {
|
|
127
|
-
plugins:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
var [k, v] = param2;
|
|
138
|
-
var key = function () {
|
|
139
|
-
if (k.endsWith("/*")) {
|
|
140
|
-
return k.replace(/\/\*$/, "");
|
|
141
|
-
}
|
|
142
|
-
return `${k}$`;
|
|
143
|
-
}();
|
|
144
|
-
var value = v[0].replace(/\/\*$/, "");
|
|
145
|
-
if (!value.startsWith("./")) {
|
|
146
|
-
value = `./${value}`;
|
|
147
|
-
}
|
|
148
|
-
return [key, value];
|
|
149
|
-
}))
|
|
150
|
-
}], ["one/babel-plugin-one-router-metro", {
|
|
151
|
-
ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY: path.relative(path.dirname(metroEntryPath), path.join(projectRoot, relativeRouterRoot)),
|
|
152
|
-
ONE_ROUTER_ROOT_FOLDER_NAME: relativeRouterRoot,
|
|
153
|
-
ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING: routerRequireContextRegexString,
|
|
154
|
-
ONE_ROUTER_LINKING_CONFIG: linking,
|
|
155
|
-
ONE_SETUP_FILE_NATIVE: function () {
|
|
156
|
-
if (!setupFile) return void 0;
|
|
157
|
-
var nativeSetupFile = typeof setupFile === "string" ? setupFile : setupFile.native || setupFile.ios || setupFile.android;
|
|
158
|
-
if (!nativeSetupFile) return void 0;
|
|
159
|
-
return path.relative(path.dirname(metroEntryPath), path.join(projectRoot, nativeSetupFile));
|
|
160
|
-
}()
|
|
161
|
-
}],
|
|
162
|
-
// inline ONE_SERVER_URL so native prod bundles know where to fetch loaders
|
|
163
|
-
"one/babel-plugin-inline-one-server-url"]
|
|
25
|
+
plugins: buildOneBabelPlugins({
|
|
26
|
+
projectRoot,
|
|
27
|
+
relativeRouterRoot,
|
|
28
|
+
ignoredRouteFiles,
|
|
29
|
+
linking,
|
|
30
|
+
setupFile,
|
|
31
|
+
// vite path injects import-meta-env-plugin separately via the
|
|
32
|
+
// metro server transformFile hook using the user's vite `define`.
|
|
33
|
+
includeImportMetaEnv: false
|
|
34
|
+
})
|
|
164
35
|
}
|
|
165
36
|
};
|
|
166
37
|
}
|
|
167
|
-
export { getViteMetroPluginOptions
|
|
38
|
+
export { getViteMetroPluginOptions };
|
|
168
39
|
//# sourceMappingURL=getViteMetroPluginOptions.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["buildOneBabelPlugins","buildOneMetroResolverOverrides","getViteMetroPluginOptions","param","projectRoot","relativeRouterRoot","ignoredRouteFiles","linking","userDefaultConfigOverrides","setupFile","applyOneResolverOverrides","oneViteMetroBabelConfig","defaultConfigOverrides","defaultConfig","config","babelConfig","plugins","includeImportMetaEnv"],"sources":["../../../src/metro-config/getViteMetroPluginOptions.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;AACrC,SAASC,8BAAA,QAAsC;AAExC,SAASC,0BAA0BC,KAAA;EACxC;IAAAC,WAAA;IAAAC,kBAAA;IAAAC,iBAAA;IAAAC,OAAA;IAAAC,0BAAA;IAAAC;EAAA,IAAAN,KAAA;EACA,IAAAO,yBAAA,GAAAT,8BAAA;IACAG;EACA;EACA;IACAO,uBAAA;IAUoCC,sBAAA,WAAAA,CAAAC,aAAA;MACpC,IAAMC,MAAA,GAAAJ,yBAA4B,CAAAG,aAAA;MAElC,IAAO,OAAAL,0BAAA;QACLM,MAAA,GAAAN,0BAAyB,CAAAM,MAAA;MACzB;MACE,OAAIA,MAAS;IAEb;IACEC,WAAA,EAAS;MACXC,OAAA,EAAAhB,oBAAA;QAEAI,WAAO;QACTC,kBAAA;QACAC,iBAAa;QACXC,OAAS;QACPE,SAAA;QACA;QACA;QACAQ,oBAAA;MAAA;IACA;EAAA;AAAA;AAGsB,SACvBf,yBACH","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { buildMetroConfigInputFromViteConfig } from "@vxrn/vite-plugin-metro";
|
|
3
|
+
import { getViteMetroPluginOptions } from "./getViteMetroPluginOptions.mjs";
|
|
4
|
+
import { loadUserOneOptions } from "../vite/loadConfig.mjs";
|
|
5
|
+
async function loadUserViteMetroOptions(projectRoot) {
|
|
6
|
+
const previousCwd = process.cwd();
|
|
7
|
+
const previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
8
|
+
try {
|
|
9
|
+
process.chdir(projectRoot);
|
|
10
|
+
process.env.IS_VXRN_CLI = "true";
|
|
11
|
+
return await loadUserOneOptions("build", true);
|
|
12
|
+
} finally {
|
|
13
|
+
process.chdir(previousCwd);
|
|
14
|
+
if (previousIsVxrnCli === void 0) {
|
|
15
|
+
delete process.env.IS_VXRN_CLI;
|
|
16
|
+
} else {
|
|
17
|
+
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function withOne(baseConfigOrProjectRoot, options = {}) {
|
|
22
|
+
const projectRoot = path.resolve(typeof baseConfigOrProjectRoot === "string" ? baseConfigOrProjectRoot : options.projectRoot ?? process.cwd());
|
|
23
|
+
const loaded = options.loadViteConfig === false ? void 0 : await loadUserViteMetroOptions(projectRoot);
|
|
24
|
+
const metroPluginOptions = loaded?.metroOptions ?? getViteMetroPluginOptions({
|
|
25
|
+
projectRoot,
|
|
26
|
+
relativeRouterRoot: options.routerRoot ?? "app",
|
|
27
|
+
ignoredRouteFiles: options.ignoredRouteFiles,
|
|
28
|
+
linking: options.linking,
|
|
29
|
+
setupFile: options.setupFile
|
|
30
|
+
});
|
|
31
|
+
const viteConfig = {
|
|
32
|
+
...loaded?.config?.config,
|
|
33
|
+
root: path.resolve(loaded?.config?.config?.root ?? projectRoot)
|
|
34
|
+
};
|
|
35
|
+
const {
|
|
36
|
+
defaultConfig
|
|
37
|
+
} = await buildMetroConfigInputFromViteConfig(viteConfig, {
|
|
38
|
+
...metroPluginOptions,
|
|
39
|
+
mainModuleName: "one/metro-entry"
|
|
40
|
+
});
|
|
41
|
+
return defaultConfig;
|
|
42
|
+
}
|
|
43
|
+
var withOne_default = withOne;
|
|
44
|
+
export { withOne_default as default, withOne };
|
|
45
|
+
//# sourceMappingURL=withOne.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","buildMetroConfigInputFromViteConfig","getViteMetroPluginOptions","loadUserOneOptions","loadUserViteMetroOptions","projectRoot","previousCwd","process","cwd","previousIsVxrnCli","env","IS_VXRN_CLI","chdir","withOne","baseConfigOrProjectRoot","options","resolve","loaded","loadViteConfig","metroPluginOptions","metroOptions","relativeRouterRoot","routerRoot","ignoredRouteFiles","linking","setupFile","viteConfig","config","root","defaultConfig","mainModuleName","withOne_default"],"sources":["../../../src/metro-config/withOne.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,mCAAA,QAA2C;AACpD,SAASC,yBAAA,QAAiC;AAC1C,SAASC,kBAAA,QAA0B;AAoBnC,eAAeC,yBAAyBC,WAAA,EAAqB;EAC3D,MAAMC,WAAA,GAAcC,OAAA,CAAQC,GAAA,CAAI;EAChC,MAAMC,iBAAA,GAAoBF,OAAA,CAAQG,GAAA,CAAIC,WAAA;EAEtC,IAAI;IACFJ,OAAA,CAAQK,KAAA,CAAMP,WAAW;IACzBE,OAAA,CAAQG,GAAA,CAAIC,WAAA,GAAc;IAC1B,OAAO,MAAMR,kBAAA,CAAmB,SAAS,IAAI;EAC/C,UAAE;IACAI,OAAA,CAAQK,KAAA,CAAMN,WAAW;IACzB,IAAIG,iBAAA,KAAsB,QAAW;MACnC,OAAOF,OAAA,CAAQG,GAAA,CAAIC,WAAA;IACrB,OAAO;MACLJ,OAAA,CAAQG,GAAA,CAAIC,WAAA,GAAcF,iBAAA;IAC5B;EACF;AACF;AAsBA,eAAsBI,QACpBC,uBAAA,EACAC,OAAA,GAA0B,CAAC,GACT;EAClB,MAAMV,WAAA,GAAcL,IAAA,CAAKgB,OAAA,CACvB,OAAOF,uBAAA,KAA4B,WAC/BA,uBAAA,GACCC,OAAA,CAAQV,WAAA,IAAeE,OAAA,CAAQC,GAAA,CAAI,CAC1C;EAEA,MAAMS,MAAA,GACJF,OAAA,CAAQG,cAAA,KAAmB,QACvB,SACA,MAAMd,wBAAA,CAAyBC,WAAW;EAOhD,MAAMc,kBAAA,GACJF,MAAA,EAAQG,YAAA,IACRlB,yBAAA,CAA0B;IACxBG,WAAA;IACAgB,kBAAA,EAAoBN,OAAA,CAAQO,UAAA,IAAc;IAC1CC,iBAAA,EAAmBR,OAAA,CAAQQ,iBAAA;IAC3BC,OAAA,EAAST,OAAA,CAAQS,OAAA;IACjBC,SAAA,EAAWV,OAAA,CAAQU;EACrB,CAAC;EAMH,MAAMC,UAAA,GAAa;IACjB,GAAGT,MAAA,EAAQU,MAAA,EAAQA,MAAA;IACnBC,IAAA,EAAM5B,IAAA,CAAKgB,OAAA,CAAQC,MAAA,EAAQU,MAAA,EAAQA,MAAA,EAAQC,IAAA,IAAQvB,WAAW;EAChE;EAEA,MAAM;IAAEwB;EAAc,IAAI,MAAM5B,mCAAA,CAC9ByB,UAAA,EACA;IACE,GAAGP,kBAAA;IACHW,cAAA,EAAgB;EAClB,CACF;EAEA,OAAOD,aAAA;AACT;AAEA,IAAOE,eAAA,GAAQlB,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { buildMetroConfigInputFromViteConfig } from "@vxrn/vite-plugin-metro";
|
|
3
|
+
import { getViteMetroPluginOptions } from "./getViteMetroPluginOptions.native.js";
|
|
4
|
+
import { loadUserOneOptions } from "../vite/loadConfig.native.js";
|
|
5
|
+
async function loadUserViteMetroOptions(projectRoot) {
|
|
6
|
+
var previousCwd = process.cwd();
|
|
7
|
+
var previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
8
|
+
try {
|
|
9
|
+
process.chdir(projectRoot);
|
|
10
|
+
process.env.IS_VXRN_CLI = "true";
|
|
11
|
+
return await loadUserOneOptions("build", true);
|
|
12
|
+
} finally {
|
|
13
|
+
process.chdir(previousCwd);
|
|
14
|
+
if (previousIsVxrnCli === void 0) {
|
|
15
|
+
delete process.env.IS_VXRN_CLI;
|
|
16
|
+
} else {
|
|
17
|
+
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function withOne(baseConfigOrProjectRoot) {
|
|
22
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
23
|
+
var _options_projectRoot, _ref, _options_routerRoot, _ref1;
|
|
24
|
+
var _loaded_config, _loaded_config_config, _loaded_config1;
|
|
25
|
+
var projectRoot = path.resolve(typeof baseConfigOrProjectRoot === "string" ? baseConfigOrProjectRoot : (_options_projectRoot = options.projectRoot) !== null && _options_projectRoot !== void 0 ? _options_projectRoot : process.cwd());
|
|
26
|
+
var loaded = options.loadViteConfig === false ? void 0 : await loadUserViteMetroOptions(projectRoot);
|
|
27
|
+
var metroPluginOptions = (_ref = loaded === null || loaded === void 0 ? void 0 : loaded.metroOptions) !== null && _ref !== void 0 ? _ref : getViteMetroPluginOptions({
|
|
28
|
+
projectRoot,
|
|
29
|
+
relativeRouterRoot: (_options_routerRoot = options.routerRoot) !== null && _options_routerRoot !== void 0 ? _options_routerRoot : "app",
|
|
30
|
+
ignoredRouteFiles: options.ignoredRouteFiles,
|
|
31
|
+
linking: options.linking,
|
|
32
|
+
setupFile: options.setupFile
|
|
33
|
+
});
|
|
34
|
+
var viteConfig = {
|
|
35
|
+
...(loaded === null || loaded === void 0 ? void 0 : (_loaded_config = loaded.config) === null || _loaded_config === void 0 ? void 0 : _loaded_config.config),
|
|
36
|
+
root: path.resolve((_ref1 = loaded === null || loaded === void 0 ? void 0 : (_loaded_config1 = loaded.config) === null || _loaded_config1 === void 0 ? void 0 : (_loaded_config_config = _loaded_config1.config) === null || _loaded_config_config === void 0 ? void 0 : _loaded_config_config.root) !== null && _ref1 !== void 0 ? _ref1 : projectRoot)
|
|
37
|
+
};
|
|
38
|
+
var {
|
|
39
|
+
defaultConfig
|
|
40
|
+
} = await buildMetroConfigInputFromViteConfig(viteConfig, {
|
|
41
|
+
...metroPluginOptions,
|
|
42
|
+
mainModuleName: "one/metro-entry"
|
|
43
|
+
});
|
|
44
|
+
return defaultConfig;
|
|
45
|
+
}
|
|
46
|
+
var withOne_default = withOne;
|
|
47
|
+
export { withOne_default as default, withOne };
|
|
48
|
+
//# sourceMappingURL=withOne.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","buildMetroConfigInputFromViteConfig","getViteMetroPluginOptions","loadUserOneOptions","loadUserViteMetroOptions","projectRoot","previousCwd","process","cwd","previousIsVxrnCli","env","IS_VXRN_CLI","chdir","withOne","baseConfigOrProjectRoot","options","arguments","length","_options_projectRoot","_ref","_options_routerRoot","_ref1","_loaded_config","_loaded_config_config","_loaded_config1","resolve","loaded","loadViteConfig","metroPluginOptions","metroOptions","relativeRouterRoot","routerRoot","ignoredRouteFiles","linking","setupFile","viteConfig","config","root","defaultConfig","mainModuleName","withOne_default","default"],"sources":["../../../src/metro-config/withOne.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,mCAAA,QAA2C;AACpD,SAASC,yBAAA,QAAiC;AAC1C,SAASC,kBAAA,QAA0B;AAoBnC,eAAeC,yBAAyBC,WAAA,EAAqB;EAC3D,IAAAC,WAAM,GAAAC,OAAc,CAAAC,GAAQ;EAC5B,IAAAC,iBAAM,GAAAF,OAAoB,CAAAG,GAAQ,CAAAC,WAAI;EAEtC,IAAI;IACFJ,OAAA,CAAQK,KAAA,CAAMP,WAAW;IACzBE,OAAA,CAAQG,GAAA,CAAIC,WAAA,GAAc;IAC1B,OAAO,MAAMR,kBAAA,CAAmB,SAAS,IAAI;EAC/C,UAAE;IACAI,OAAA,CAAQK,KAAA,CAAMN,WAAW;IACzB,IAAIG,iBAAA,KAAsB,QAAW;MACnC,OAAOF,OAAA,CAAQG,GAAA,CAAIC,WAAA;IACrB,OAAO;MACLJ,OAAA,CAAQG,GAAA,CAAIC,WAAA,GAAcF,iBAAA;IAC5B;EACF;AACF;AAsBA,eAAsBI,QACpBC,uBAAA,EACA;EAEA,IAAAC,OAAM,GAAAC,SAAc,CAAAC,MAAK,QAAAD,SAAA,iBAAAA,SAAA;EAAA,IACvBE,oBAAO,EAAAC,IAAA,EAAAC,mBACH,EAAAC,KAAA;EAEN,IAAAC,cAAA,EAAAC,qBAAA,EAAAC,eAAA;EAEA,IAAAnB,WACE,GAAAL,IAAA,CAAQyB,OAAA,QAAAX,uBAEJ,KAAM,WAAAA,uBAAyB,GAAW,CAAAI,oBAAA,GAAAH,OAAA,CAAAV,WAAA,cAAAa,oBAAA,cAAAA,oBAAA,GAAAX,OAAA,CAAAC,GAAA;EAOhD,IAAAkB,MAAM,GAAAX,OAAA,CAAAY,cACI,kBACR,UAAAvB,wBAA0B,CAAAC,WAAA;EAAA,IACxBuB,kBAAA,IAAAT,IAAA,GAAAO,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAG,YAAA,cAAAV,IAAA,cAAAA,IAAA,GAAAjB,yBAAA;IACAG,WAAA;IACAyB,kBAAA,EAAmB,CAAAV,mBAAQ,GAAAL,OAAA,CAAAgB,UAAA,cAAAX,mBAAA,cAAAA,mBAAA;IAC3BY,iBAAiB,EAAAjB,OAAA,CAAAiB,iBAAA;IACjBC,OAAA,EAAAlB,OAAW,CAAAkB,OAAQ;IACpBC,SAAA,EAAAnB,OAAA,CAAAmB;EAMH;EAAmB,IACjBC,UAAW;IACX,IAAAT,MAAM,KAAK,QAAQA,MAAQ,UAAQ,SAAQ,IAAQ,CAAAJ,cAAW,GAAAI,MAAA,CAAAU,MAAA,cAAAd,cAAA,uBAAAA,cAAA,CAAAc,MAAA;IAChEC,IAAA,EAAArC,IAAA,CAAAyB,OAAA,EAAAJ,KAAA,GAAAK,MAAA,aAAAA,MAAA,wBAAAF,eAAA,GAAAE,MAAA,CAAAU,MAAA,cAAAZ,eAAA,wBAAAD,qBAAA,GAAAC,eAAA,CAAAY,MAAA,cAAAb,qBAAA,uBAAAA,qBAAA,CAAAc,IAAA,cAAAhB,KAAA,cAAAA,KAAA,GAAAhB,WAAA;EAEA;EAAgC,IAC9B;IAAAiC;EAAA,UAAArC,mCAAA,CAAAkC,UAAA;IACA,GAAAP,kBAAA;IAAAW,cACK;EAAA;EACa,OAClBD,aAAA;AAAA;AAGF,IAAAE,eAAO,GAAA3B,OAAA;AACT,SAEA2B,eAAO,IAAAC,OAAQ,E","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import { afterAll, describe, expect, it } from "vitest";
|
|
4
|
+
import { withOne } from "./withOne.mjs";
|
|
5
|
+
const projectRoot = path.resolve(__dirname, "../../");
|
|
6
|
+
const tmpDirs = [];
|
|
7
|
+
function createOneFixtureProject() {
|
|
8
|
+
const workspaceRoot = path.resolve(__dirname, "../../../../");
|
|
9
|
+
const tmpDir = fs.mkdtempSync(path.join(workspaceRoot, ".tmp-with-one-"));
|
|
10
|
+
tmpDirs.push(tmpDir);
|
|
11
|
+
fs.writeFileSync(path.join(tmpDir, "package.json"), JSON.stringify({
|
|
12
|
+
name: "tmp-with-one",
|
|
13
|
+
private: true
|
|
14
|
+
}));
|
|
15
|
+
fs.writeFileSync(path.join(tmpDir, "tsconfig.json"), JSON.stringify({
|
|
16
|
+
compilerOptions: {
|
|
17
|
+
paths: {}
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
fs.mkdirSync(path.join(tmpDir, "app"));
|
|
21
|
+
fs.writeFileSync(path.join(tmpDir, "app", "index.tsx"), "export default null\n");
|
|
22
|
+
fs.writeFileSync(path.join(tmpDir, "vite.config.ts"), `
|
|
23
|
+
const defaultConfigOverrides = (config) => ({
|
|
24
|
+
...config,
|
|
25
|
+
watchFolders: [
|
|
26
|
+
...(config.watchFolders || []),
|
|
27
|
+
${JSON.stringify(path.join(tmpDir, "shared"))},
|
|
28
|
+
],
|
|
29
|
+
resolver: {
|
|
30
|
+
...config.resolver,
|
|
31
|
+
extraNodeModules: {
|
|
32
|
+
...config.resolver?.extraNodeModules,
|
|
33
|
+
'fixture-singleton': ${JSON.stringify(tmpDir)},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
globalThis.__oneOptions = {
|
|
39
|
+
setupFile: {
|
|
40
|
+
native: './src/setup-native.ts',
|
|
41
|
+
},
|
|
42
|
+
native: {
|
|
43
|
+
bundler: 'metro',
|
|
44
|
+
bundlerOptions: {
|
|
45
|
+
argv: {
|
|
46
|
+
projectRoot: ${JSON.stringify(tmpDir)},
|
|
47
|
+
},
|
|
48
|
+
defaultConfigOverrides,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
globalThis.__vxrnMetroOptions__ = {
|
|
53
|
+
argv: {
|
|
54
|
+
projectRoot: ${JSON.stringify(tmpDir)},
|
|
55
|
+
},
|
|
56
|
+
defaultConfigOverrides,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default {
|
|
60
|
+
root: ${JSON.stringify(tmpDir)},
|
|
61
|
+
}
|
|
62
|
+
`);
|
|
63
|
+
return tmpDir;
|
|
64
|
+
}
|
|
65
|
+
afterAll(() => {
|
|
66
|
+
for (const tmpDir of tmpDirs) {
|
|
67
|
+
fs.rmSync(tmpDir, {
|
|
68
|
+
recursive: true,
|
|
69
|
+
force: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
describe("withOne", () => {
|
|
74
|
+
it("returns a config produced by the production native bundle pipeline", async () => {
|
|
75
|
+
const config = await withOne(projectRoot, {
|
|
76
|
+
loadViteConfig: false
|
|
77
|
+
});
|
|
78
|
+
expect(config).toBeTruthy();
|
|
79
|
+
expect(config.resolver).toBeTruthy();
|
|
80
|
+
expect(typeof config.resolver.resolveRequest).toBe("function");
|
|
81
|
+
expect(config.transformer).toBeTruthy();
|
|
82
|
+
expect(config.transformer.babelTransformerPath).toMatch(/vite-plugin-metro.*babel-transformer/);
|
|
83
|
+
});
|
|
84
|
+
it("orders sourceExts so .js wins over .mjs (the proven One fix)", async () => {
|
|
85
|
+
const config = await withOne(projectRoot, {
|
|
86
|
+
loadViteConfig: false
|
|
87
|
+
});
|
|
88
|
+
const exts = config.resolver.sourceExts;
|
|
89
|
+
expect(exts).toContain("mjs");
|
|
90
|
+
expect(exts).toContain("js");
|
|
91
|
+
expect(exts.indexOf("js")).toBeLessThan(exts.indexOf("mjs"));
|
|
92
|
+
});
|
|
93
|
+
it("accepts a project root as the first arg", async () => {
|
|
94
|
+
const config = await withOne(projectRoot, {
|
|
95
|
+
loadViteConfig: false
|
|
96
|
+
});
|
|
97
|
+
expect(config).toBeTruthy();
|
|
98
|
+
});
|
|
99
|
+
it("loads vite.config by default and applies the real native Metro options", async () => {
|
|
100
|
+
const fixtureRoot = createOneFixtureProject();
|
|
101
|
+
const config = await withOne(fixtureRoot);
|
|
102
|
+
expect(config.resolver.extraNodeModules["fixture-singleton"]).toBe(fixtureRoot);
|
|
103
|
+
expect(config.watchFolders).toContain(path.join(fixtureRoot, "shared"));
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=withOne.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","fs","afterAll","describe","expect","it","withOne","projectRoot","resolve","__dirname","tmpDirs","createOneFixtureProject","workspaceRoot","tmpDir","mkdtempSync","join","push","writeFileSync","JSON","stringify","name","private","compilerOptions","paths","mkdirSync","rmSync","recursive","force","config","loadViteConfig","toBeTruthy","resolver","resolveRequest","toBe","transformer","babelTransformerPath","toMatch","exts","sourceExts","toContain","indexOf","toBeLessThan","fixtureRoot","extraNodeModules","watchFolders"],"sources":["../../../src/metro-config/withOne.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { afterAll, describe, expect, it } from "vitest";
|
|
4
|
+
import { withOne } from "./withOne.native.js";
|
|
5
|
+
function _type_of(obj) {
|
|
6
|
+
"@swc/helpers - typeof";
|
|
7
|
+
|
|
8
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
9
|
+
}
|
|
10
|
+
var projectRoot = path.resolve(__dirname, "../../");
|
|
11
|
+
var tmpDirs = [];
|
|
12
|
+
function createOneFixtureProject() {
|
|
13
|
+
var workspaceRoot = path.resolve(__dirname, "../../../../");
|
|
14
|
+
var tmpDir = fs.mkdtempSync(path.join(workspaceRoot, ".tmp-with-one-"));
|
|
15
|
+
tmpDirs.push(tmpDir);
|
|
16
|
+
fs.writeFileSync(path.join(tmpDir, "package.json"), JSON.stringify({
|
|
17
|
+
name: "tmp-with-one",
|
|
18
|
+
private: true
|
|
19
|
+
}));
|
|
20
|
+
fs.writeFileSync(path.join(tmpDir, "tsconfig.json"), JSON.stringify({
|
|
21
|
+
compilerOptions: {
|
|
22
|
+
paths: {}
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
fs.mkdirSync(path.join(tmpDir, "app"));
|
|
26
|
+
fs.writeFileSync(path.join(tmpDir, "app", "index.tsx"), "export default null\n");
|
|
27
|
+
fs.writeFileSync(path.join(tmpDir, "vite.config.ts"), `
|
|
28
|
+
const defaultConfigOverrides = (config) => ({
|
|
29
|
+
...config,
|
|
30
|
+
watchFolders: [
|
|
31
|
+
...(config.watchFolders || []),
|
|
32
|
+
${JSON.stringify(path.join(tmpDir, "shared"))},
|
|
33
|
+
],
|
|
34
|
+
resolver: {
|
|
35
|
+
...config.resolver,
|
|
36
|
+
extraNodeModules: {
|
|
37
|
+
...config.resolver?.extraNodeModules,
|
|
38
|
+
'fixture-singleton': ${JSON.stringify(tmpDir)},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
globalThis.__oneOptions = {
|
|
44
|
+
setupFile: {
|
|
45
|
+
native: './src/setup-native.ts',
|
|
46
|
+
},
|
|
47
|
+
native: {
|
|
48
|
+
bundler: 'metro',
|
|
49
|
+
bundlerOptions: {
|
|
50
|
+
argv: {
|
|
51
|
+
projectRoot: ${JSON.stringify(tmpDir)},
|
|
52
|
+
},
|
|
53
|
+
defaultConfigOverrides,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
globalThis.__vxrnMetroOptions__ = {
|
|
58
|
+
argv: {
|
|
59
|
+
projectRoot: ${JSON.stringify(tmpDir)},
|
|
60
|
+
},
|
|
61
|
+
defaultConfigOverrides,
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export default {
|
|
65
|
+
root: ${JSON.stringify(tmpDir)},
|
|
66
|
+
}
|
|
67
|
+
`);
|
|
68
|
+
return tmpDir;
|
|
69
|
+
}
|
|
70
|
+
afterAll(function () {
|
|
71
|
+
var _iteratorNormalCompletion = true,
|
|
72
|
+
_didIteratorError = false,
|
|
73
|
+
_iteratorError = void 0;
|
|
74
|
+
try {
|
|
75
|
+
for (var _iterator = tmpDirs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
76
|
+
var tmpDir = _step.value;
|
|
77
|
+
fs.rmSync(tmpDir, {
|
|
78
|
+
recursive: true,
|
|
79
|
+
force: true
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
} catch (err) {
|
|
83
|
+
_didIteratorError = true;
|
|
84
|
+
_iteratorError = err;
|
|
85
|
+
} finally {
|
|
86
|
+
try {
|
|
87
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
88
|
+
_iterator.return();
|
|
89
|
+
}
|
|
90
|
+
} finally {
|
|
91
|
+
if (_didIteratorError) {
|
|
92
|
+
throw _iteratorError;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
describe("withOne", function () {
|
|
98
|
+
it("returns a config produced by the production native bundle pipeline", async function () {
|
|
99
|
+
var config = await withOne(projectRoot, {
|
|
100
|
+
loadViteConfig: false
|
|
101
|
+
});
|
|
102
|
+
expect(config).toBeTruthy();
|
|
103
|
+
expect(config.resolver).toBeTruthy();
|
|
104
|
+
expect(_type_of(config.resolver.resolveRequest)).toBe("function");
|
|
105
|
+
expect(config.transformer).toBeTruthy();
|
|
106
|
+
expect(config.transformer.babelTransformerPath).toMatch(/vite-plugin-metro.*babel-transformer/);
|
|
107
|
+
});
|
|
108
|
+
it("orders sourceExts so .js wins over .mjs (the proven One fix)", async function () {
|
|
109
|
+
var config = await withOne(projectRoot, {
|
|
110
|
+
loadViteConfig: false
|
|
111
|
+
});
|
|
112
|
+
var exts = config.resolver.sourceExts;
|
|
113
|
+
expect(exts).toContain("mjs");
|
|
114
|
+
expect(exts).toContain("js");
|
|
115
|
+
expect(exts.indexOf("js")).toBeLessThan(exts.indexOf("mjs"));
|
|
116
|
+
});
|
|
117
|
+
it("accepts a project root as the first arg", async function () {
|
|
118
|
+
var config = await withOne(projectRoot, {
|
|
119
|
+
loadViteConfig: false
|
|
120
|
+
});
|
|
121
|
+
expect(config).toBeTruthy();
|
|
122
|
+
});
|
|
123
|
+
it("loads vite.config by default and applies the real native Metro options", async function () {
|
|
124
|
+
var fixtureRoot = createOneFixtureProject();
|
|
125
|
+
var config = await withOne(fixtureRoot);
|
|
126
|
+
expect(config.resolver.extraNodeModules["fixture-singleton"]).toBe(fixtureRoot);
|
|
127
|
+
expect(config.watchFolders).toContain(path.join(fixtureRoot, "shared"));
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=withOne.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","fs","afterAll","describe","expect","it","withOne","_type_of","obj","Symbol","constructor","projectRoot","resolve","__dirname","tmpDirs","createOneFixtureProject","workspaceRoot","tmpDir","mkdtempSync","join","push","writeFileSync","JSON","stringify","name","private","compilerOptions","paths","mkdirSync","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","value","rmSync","recursive","force","err","return","config","loadViteConfig","toBeTruthy","resolver","resolveRequest","toBe","transformer"],"sources":["../../../src/metro-config/withOne.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -10,10 +10,18 @@ function getUserOneOptions() {
|
|
|
10
10
|
}
|
|
11
11
|
async function loadUserOneOptions(command, silent = false) {
|
|
12
12
|
const originalConsoleError = console.error;
|
|
13
|
+
const previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
14
|
+
const previousOneOptions = globalThis["__oneOptions"];
|
|
15
|
+
const previousVxrnPluginConfig = globalThis["__vxrnPluginConfig__"];
|
|
16
|
+
const previousVxrnMetroOptions = globalThis["__vxrnMetroOptions__"];
|
|
13
17
|
if (silent) {
|
|
14
18
|
console.error = () => {};
|
|
15
19
|
}
|
|
16
20
|
try {
|
|
21
|
+
process.env.IS_VXRN_CLI = "true";
|
|
22
|
+
delete globalThis["__oneOptions"];
|
|
23
|
+
delete globalThis["__vxrnPluginConfig__"];
|
|
24
|
+
delete globalThis["__vxrnMetroOptions__"];
|
|
17
25
|
const config = await loadConfigFromFile({
|
|
18
26
|
mode: command === "serve" ? "dev" : "prod",
|
|
19
27
|
command
|
|
@@ -27,9 +35,20 @@ async function loadUserOneOptions(command, silent = false) {
|
|
|
27
35
|
}
|
|
28
36
|
return {
|
|
29
37
|
config,
|
|
30
|
-
oneOptions
|
|
38
|
+
oneOptions,
|
|
39
|
+
metroOptions: globalThis["__vxrnMetroOptions__"]
|
|
31
40
|
};
|
|
41
|
+
} catch (error) {
|
|
42
|
+
globalThis["__oneOptions"] = previousOneOptions;
|
|
43
|
+
globalThis["__vxrnPluginConfig__"] = previousVxrnPluginConfig;
|
|
44
|
+
globalThis["__vxrnMetroOptions__"] = previousVxrnMetroOptions;
|
|
45
|
+
throw error;
|
|
32
46
|
} finally {
|
|
47
|
+
if (previousIsVxrnCli === void 0) {
|
|
48
|
+
delete process.env.IS_VXRN_CLI;
|
|
49
|
+
} else {
|
|
50
|
+
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
51
|
+
}
|
|
33
52
|
if (silent) {
|
|
34
53
|
console.error = originalConsoleError;
|
|
35
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","originalConsoleError","console","error","
|
|
1
|
+
{"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","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,CACR,sEACF;EACF;EACA,OAAOH,UAAA,CAAWC,YAAA;AACpB;AAEA,eAAsBG,mBAAmBC,OAAA,EAA4BC,MAAA,GAAS,OAAO;EAEnF,MAAMC,oBAAA,GAAuBC,OAAA,CAAQC,KAAA;EACrC,MAAMC,iBAAA,GAAoBC,OAAA,CAAQC,GAAA,CAAIC,WAAA;EACtC,MAAMC,kBAAA,GAAqBd,UAAA,CAAW,cAAc;EACpD,MAAMe,wBAAA,GAA2Bf,UAAA,CAAW,sBAAsB;EAClE,MAAMgB,wBAAA,GAA2BhB,UAAA,CAAW,sBAAsB;EAElE,IAAIM,MAAA,EAAQ;IACVE,OAAA,CAAQC,KAAA,GAAQ,MAAM,CAAC;EACzB;EAEA,IAAI;IACFE,OAAA,CAAQC,GAAA,CAAIC,WAAA,GAAc;IAC1B,OAAOb,UAAA,CAAW,cAAc;IAChC,OAAOA,UAAA,CAAW,sBAAsB;IACxC,OAAOA,UAAA,CAAW,sBAAsB;IAExC,MAAMiB,MAAA,GAAS,MAAMpB,kBAAA,CAAmB;MACtCqB,IAAA,EAAMb,OAAA,KAAY,UAAU,QAAQ;MACpCA;IACF,CAAC;IAED,IAAI,CAACY,MAAA,EAAQ;MACX,MAAM,IAAId,KAAA,CACR,uBAAuBQ,OAAA,CAAQQ,GAAA,CAAI,CAAC,kCACtC;IACF;IAEA,MAAMC,UAAA,GAAalB,iBAAA,CAAkB;IAErC,IAAI,CAACkB,UAAA,EAAY;MACf,MAAM,IAAIjB,KAAA,CAAM,0CAA0C;IAC5D;IAEA,OAAO;MACLc,MAAA;MACAG,UAAA;MACAC,YAAA,EAAcrB,UAAA,CAAW,sBAAsB;IACjD;EACF,SAASS,KAAA,EAAO;IACdT,UAAA,CAAW,cAAc,IAAIc,kBAAA;IAC7Bd,UAAA,CAAW,sBAAsB,IAAIe,wBAAA;IACrCf,UAAA,CAAW,sBAAsB,IAAIgB,wBAAA;IACrC,MAAMP,KAAA;EACR,UAAE;IACA,IAAIC,iBAAA,KAAsB,QAAW;MACnC,OAAOC,OAAA,CAAQC,GAAA,CAAIC,WAAA;IACrB,OAAO;MACLF,OAAA,CAAQC,GAAA,CAAIC,WAAA,GAAcH,iBAAA;IAC5B;IAEA,IAAIJ,MAAA,EAAQ;MACVE,OAAA,CAAQC,KAAA,GAAQF,oBAAA;IAClB;EACF;AACF","ignoreList":[]}
|