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
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import os from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { generateBundlerConfig, isCiEnvironment, maybeGenerateBundlerConfigOnInstall, ONE_GENERATED_MARKER } from "./generateBundlerConfig.native.js";
|
|
6
|
+
describe("generateBundlerConfig", function () {
|
|
7
|
+
var tmpDir;
|
|
8
|
+
beforeEach(function () {
|
|
9
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "one-gen-bundler-test-"));
|
|
10
|
+
});
|
|
11
|
+
afterEach(function () {
|
|
12
|
+
fs.rmSync(tmpDir, {
|
|
13
|
+
recursive: true,
|
|
14
|
+
force: true
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
it("writes both files when missing", function () {
|
|
18
|
+
var {
|
|
19
|
+
ok,
|
|
20
|
+
results
|
|
21
|
+
} = generateBundlerConfig({
|
|
22
|
+
cwd: tmpDir,
|
|
23
|
+
quiet: true
|
|
24
|
+
});
|
|
25
|
+
expect(ok).toBe(true);
|
|
26
|
+
expect(results.map(function (r) {
|
|
27
|
+
return r.action;
|
|
28
|
+
})).toEqual(["wrote", "wrote"]);
|
|
29
|
+
var babel = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
30
|
+
expect(babel).toContain(ONE_GENERATED_MARKER);
|
|
31
|
+
expect(babel).toContain("require('one/babel-preset')");
|
|
32
|
+
expect(babel).toContain("oneBundlerOptions");
|
|
33
|
+
var metro = fs.readFileSync(path.join(tmpDir, "metro.config.cjs"), "utf8");
|
|
34
|
+
expect(metro).toContain(ONE_GENERATED_MARKER);
|
|
35
|
+
expect(metro).toContain("require('one/metro-config')");
|
|
36
|
+
expect(metro).toContain("withOne");
|
|
37
|
+
});
|
|
38
|
+
it("is idempotent on second run", function () {
|
|
39
|
+
generateBundlerConfig({
|
|
40
|
+
cwd: tmpDir,
|
|
41
|
+
quiet: true
|
|
42
|
+
});
|
|
43
|
+
var before = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
44
|
+
var {
|
|
45
|
+
results
|
|
46
|
+
} = generateBundlerConfig({
|
|
47
|
+
cwd: tmpDir,
|
|
48
|
+
quiet: true
|
|
49
|
+
});
|
|
50
|
+
expect(results.map(function (r) {
|
|
51
|
+
return r.action;
|
|
52
|
+
})).toEqual(["kept", "kept"]);
|
|
53
|
+
var after = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
54
|
+
expect(after).toBe(before);
|
|
55
|
+
});
|
|
56
|
+
it("refuses to overwrite a customized file without --force", function () {
|
|
57
|
+
fs.writeFileSync(path.join(tmpDir, "babel.config.cjs"), "// hand-written\nmodule.exports = { presets: [] }\n");
|
|
58
|
+
var {
|
|
59
|
+
ok,
|
|
60
|
+
results
|
|
61
|
+
} = generateBundlerConfig({
|
|
62
|
+
cwd: tmpDir,
|
|
63
|
+
quiet: true
|
|
64
|
+
});
|
|
65
|
+
var babelResult = results.find(function (r) {
|
|
66
|
+
return r.filePath.endsWith("babel.config.cjs");
|
|
67
|
+
});
|
|
68
|
+
expect(babelResult.action).toBe("skipped-customized");
|
|
69
|
+
expect(ok).toBe(true);
|
|
70
|
+
var after = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
71
|
+
expect(after).toContain("hand-written");
|
|
72
|
+
});
|
|
73
|
+
it("overwrites a customized file when --force is set", function () {
|
|
74
|
+
fs.writeFileSync(path.join(tmpDir, "babel.config.cjs"), "// hand-written\nmodule.exports = { presets: [] }\n");
|
|
75
|
+
var {
|
|
76
|
+
results
|
|
77
|
+
} = generateBundlerConfig({
|
|
78
|
+
cwd: tmpDir,
|
|
79
|
+
force: true,
|
|
80
|
+
quiet: true
|
|
81
|
+
});
|
|
82
|
+
var babelResult = results.find(function (r) {
|
|
83
|
+
return r.filePath.endsWith("babel.config.cjs");
|
|
84
|
+
});
|
|
85
|
+
expect(babelResult.action).toBe("wrote");
|
|
86
|
+
var after = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
87
|
+
expect(after).toContain(ONE_GENERATED_MARKER);
|
|
88
|
+
expect(after).not.toContain("hand-written");
|
|
89
|
+
});
|
|
90
|
+
it("rewrites a stale marked file", function () {
|
|
91
|
+
fs.writeFileSync(path.join(tmpDir, "babel.config.cjs"), `// ${ONE_GENERATED_MARKER}
|
|
92
|
+
// old content from previous version
|
|
93
|
+
module.exports = {}
|
|
94
|
+
`);
|
|
95
|
+
var {
|
|
96
|
+
results
|
|
97
|
+
} = generateBundlerConfig({
|
|
98
|
+
cwd: tmpDir,
|
|
99
|
+
quiet: true
|
|
100
|
+
});
|
|
101
|
+
var babelResult = results.find(function (r) {
|
|
102
|
+
return r.filePath.endsWith("babel.config.cjs");
|
|
103
|
+
});
|
|
104
|
+
expect(babelResult.action).toBe("wrote");
|
|
105
|
+
var after = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
106
|
+
expect(after).toContain("require('one/babel-preset')");
|
|
107
|
+
expect(after).not.toContain("old content from previous version");
|
|
108
|
+
});
|
|
109
|
+
describe("--check mode", function () {
|
|
110
|
+
it("exits ok when files exist and match", function () {
|
|
111
|
+
generateBundlerConfig({
|
|
112
|
+
cwd: tmpDir,
|
|
113
|
+
quiet: true
|
|
114
|
+
});
|
|
115
|
+
var {
|
|
116
|
+
ok,
|
|
117
|
+
results
|
|
118
|
+
} = generateBundlerConfig({
|
|
119
|
+
cwd: tmpDir,
|
|
120
|
+
check: true,
|
|
121
|
+
quiet: true
|
|
122
|
+
});
|
|
123
|
+
expect(ok).toBe(true);
|
|
124
|
+
expect(results.every(function (r) {
|
|
125
|
+
return r.action === "kept";
|
|
126
|
+
})).toBe(true);
|
|
127
|
+
});
|
|
128
|
+
it("exits not-ok when files are missing", function () {
|
|
129
|
+
var {
|
|
130
|
+
ok,
|
|
131
|
+
results
|
|
132
|
+
} = generateBundlerConfig({
|
|
133
|
+
cwd: tmpDir,
|
|
134
|
+
check: true,
|
|
135
|
+
quiet: true
|
|
136
|
+
});
|
|
137
|
+
expect(ok).toBe(false);
|
|
138
|
+
expect(results.every(function (r) {
|
|
139
|
+
return r.action === "would-write";
|
|
140
|
+
})).toBe(true);
|
|
141
|
+
expect(fs.existsSync(path.join(tmpDir, "babel.config.cjs"))).toBe(false);
|
|
142
|
+
});
|
|
143
|
+
it("exits not-ok when a marked file is stale", function () {
|
|
144
|
+
fs.writeFileSync(path.join(tmpDir, "babel.config.cjs"), `// ${ONE_GENERATED_MARKER}
|
|
145
|
+
module.exports = {}
|
|
146
|
+
`);
|
|
147
|
+
fs.writeFileSync(path.join(tmpDir, "metro.config.cjs"), `// ${ONE_GENERATED_MARKER}
|
|
148
|
+
module.exports = {}
|
|
149
|
+
`);
|
|
150
|
+
var {
|
|
151
|
+
ok,
|
|
152
|
+
results
|
|
153
|
+
} = generateBundlerConfig({
|
|
154
|
+
cwd: tmpDir,
|
|
155
|
+
check: true,
|
|
156
|
+
quiet: true
|
|
157
|
+
});
|
|
158
|
+
expect(ok).toBe(false);
|
|
159
|
+
expect(results.every(function (r) {
|
|
160
|
+
return r.action === "would-overwrite";
|
|
161
|
+
})).toBe(true);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
describe("--eject mode", function () {
|
|
165
|
+
it("writes files WITHOUT the @one/generated marker", function () {
|
|
166
|
+
var {
|
|
167
|
+
results
|
|
168
|
+
} = generateBundlerConfig({
|
|
169
|
+
cwd: tmpDir,
|
|
170
|
+
eject: true,
|
|
171
|
+
quiet: true
|
|
172
|
+
});
|
|
173
|
+
expect(results.map(function (r) {
|
|
174
|
+
return r.action;
|
|
175
|
+
})).toEqual(["wrote", "wrote"]);
|
|
176
|
+
var babel = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
177
|
+
expect(babel).not.toContain(ONE_GENERATED_MARKER);
|
|
178
|
+
expect(babel).toContain("you own this file");
|
|
179
|
+
expect(babel).toContain("require('one/babel-preset')");
|
|
180
|
+
var metro = fs.readFileSync(path.join(tmpDir, "metro.config.cjs"), "utf8");
|
|
181
|
+
expect(metro).not.toContain(ONE_GENERATED_MARKER);
|
|
182
|
+
expect(metro).toContain("withOne");
|
|
183
|
+
});
|
|
184
|
+
it("subsequent auto-gen run (no --eject) treats ejected files as customized", function () {
|
|
185
|
+
generateBundlerConfig({
|
|
186
|
+
cwd: tmpDir,
|
|
187
|
+
eject: true,
|
|
188
|
+
quiet: true
|
|
189
|
+
});
|
|
190
|
+
var before = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
191
|
+
var {
|
|
192
|
+
results
|
|
193
|
+
} = generateBundlerConfig({
|
|
194
|
+
cwd: tmpDir,
|
|
195
|
+
quiet: true
|
|
196
|
+
});
|
|
197
|
+
expect(results.every(function (r) {
|
|
198
|
+
return r.action === "skipped-customized";
|
|
199
|
+
})).toBe(true);
|
|
200
|
+
var after = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
201
|
+
expect(after).toBe(before);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
it("does not clobber a non-.cjs config in the same family", function () {
|
|
205
|
+
fs.writeFileSync(path.join(tmpDir, "babel.config.js"), "module.exports = { presets: [] }\n");
|
|
206
|
+
var {
|
|
207
|
+
results
|
|
208
|
+
} = generateBundlerConfig({
|
|
209
|
+
cwd: tmpDir,
|
|
210
|
+
quiet: true
|
|
211
|
+
});
|
|
212
|
+
var babelResult = results.find(function (r) {
|
|
213
|
+
return r.filePath.endsWith("babel.config.js") || r.filePath.endsWith("babel.config.cjs");
|
|
214
|
+
});
|
|
215
|
+
expect(babelResult.action).toBe("skipped-other-format");
|
|
216
|
+
expect(fs.existsSync(path.join(tmpDir, "babel.config.cjs"))).toBe(false);
|
|
217
|
+
});
|
|
218
|
+
it("embeds loaded One router/setup options into both config files", function () {
|
|
219
|
+
generateBundlerConfig({
|
|
220
|
+
cwd: tmpDir,
|
|
221
|
+
quiet: true,
|
|
222
|
+
oneOptions: {
|
|
223
|
+
router: {
|
|
224
|
+
root: "src/routes",
|
|
225
|
+
ignoredRouteFiles: ["**/*.native-test.*"],
|
|
226
|
+
linking: {
|
|
227
|
+
scheme: "myapp",
|
|
228
|
+
prefixes: ["https://example.com/app"]
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
setupFile: {
|
|
232
|
+
native: "src/setup.native.ts"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
var babel = fs.readFileSync(path.join(tmpDir, "babel.config.cjs"), "utf8");
|
|
237
|
+
var metro = fs.readFileSync(path.join(tmpDir, "metro.config.cjs"), "utf8");
|
|
238
|
+
for (var _i = 0, _iter = [babel, metro]; _i < _iter.length; _i++) {
|
|
239
|
+
var file = _iter[_i];
|
|
240
|
+
expect(file).toContain('"routerRoot": "src/routes"');
|
|
241
|
+
expect(file).toContain('"ignoredRouteFiles"');
|
|
242
|
+
expect(file).toContain('"**/*.native-test.*"');
|
|
243
|
+
expect(file).toContain('"scheme": "myapp"');
|
|
244
|
+
expect(file).toContain('"native": "src/setup.native.ts"');
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
it("refuses to silently drop non-serializable options", function () {
|
|
248
|
+
expect(function () {
|
|
249
|
+
return generateBundlerConfig({
|
|
250
|
+
cwd: tmpDir,
|
|
251
|
+
quiet: true,
|
|
252
|
+
oneOptions: {
|
|
253
|
+
router: {
|
|
254
|
+
linking: {
|
|
255
|
+
// the plugin API only accepts serializable router.linking fields
|
|
256
|
+
filter: function () {
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}).toThrow(/JSON-serializable/);
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
describe("isCiEnvironment", function () {
|
|
267
|
+
var originalCi = process.env.CI;
|
|
268
|
+
var originalEasBuild = process.env.EAS_BUILD;
|
|
269
|
+
afterEach(function () {
|
|
270
|
+
if (originalCi === void 0) delete process.env.CI;else process.env.CI = originalCi;
|
|
271
|
+
if (originalEasBuild === void 0) delete process.env.EAS_BUILD;else process.env.EAS_BUILD = originalEasBuild;
|
|
272
|
+
});
|
|
273
|
+
it("is true when CI=true", function () {
|
|
274
|
+
process.env.CI = "true";
|
|
275
|
+
delete process.env.EAS_BUILD;
|
|
276
|
+
expect(isCiEnvironment()).toBe(true);
|
|
277
|
+
});
|
|
278
|
+
it("is true when CI=1", function () {
|
|
279
|
+
process.env.CI = "1";
|
|
280
|
+
delete process.env.EAS_BUILD;
|
|
281
|
+
expect(isCiEnvironment()).toBe(true);
|
|
282
|
+
});
|
|
283
|
+
it("is true when EAS_BUILD=true", function () {
|
|
284
|
+
delete process.env.CI;
|
|
285
|
+
process.env.EAS_BUILD = "true";
|
|
286
|
+
expect(isCiEnvironment()).toBe(true);
|
|
287
|
+
});
|
|
288
|
+
it("is false when neither is set", function () {
|
|
289
|
+
delete process.env.CI;
|
|
290
|
+
delete process.env.EAS_BUILD;
|
|
291
|
+
expect(isCiEnvironment()).toBe(false);
|
|
292
|
+
});
|
|
293
|
+
it("is false when CI=false or CI=0", function () {
|
|
294
|
+
delete process.env.EAS_BUILD;
|
|
295
|
+
process.env.CI = "false";
|
|
296
|
+
expect(isCiEnvironment()).toBe(false);
|
|
297
|
+
process.env.CI = "0";
|
|
298
|
+
expect(isCiEnvironment()).toBe(false);
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
describe("maybeGenerateBundlerConfigOnInstall", function () {
|
|
302
|
+
var tmpDir;
|
|
303
|
+
var originalCi = process.env.CI;
|
|
304
|
+
beforeEach(function () {
|
|
305
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "one-gen-bundler-ci-test-"));
|
|
306
|
+
});
|
|
307
|
+
afterEach(function () {
|
|
308
|
+
fs.rmSync(tmpDir, {
|
|
309
|
+
recursive: true,
|
|
310
|
+
force: true
|
|
311
|
+
});
|
|
312
|
+
if (originalCi === void 0) delete process.env.CI;else process.env.CI = originalCi;
|
|
313
|
+
delete process.env.EAS_BUILD;
|
|
314
|
+
});
|
|
315
|
+
it("does NOT generate files when not in CI even if expo-updates is present", function () {
|
|
316
|
+
delete process.env.CI;
|
|
317
|
+
delete process.env.EAS_BUILD;
|
|
318
|
+
var fakeUpdates = path.join(tmpDir, "node_modules/expo-updates");
|
|
319
|
+
fs.mkdirSync(fakeUpdates, {
|
|
320
|
+
recursive: true
|
|
321
|
+
});
|
|
322
|
+
fs.writeFileSync(path.join(fakeUpdates, "package.json"), JSON.stringify({
|
|
323
|
+
name: "expo-updates"
|
|
324
|
+
}));
|
|
325
|
+
maybeGenerateBundlerConfigOnInstall(tmpDir);
|
|
326
|
+
expect(fs.existsSync(path.join(tmpDir, "babel.config.cjs"))).toBe(false);
|
|
327
|
+
expect(fs.existsSync(path.join(tmpDir, "metro.config.cjs"))).toBe(false);
|
|
328
|
+
});
|
|
329
|
+
it("does NOT generate files in CI when expo-updates is absent", function () {
|
|
330
|
+
process.env.CI = "true";
|
|
331
|
+
maybeGenerateBundlerConfigOnInstall(tmpDir);
|
|
332
|
+
expect(fs.existsSync(path.join(tmpDir, "babel.config.cjs"))).toBe(false);
|
|
333
|
+
expect(fs.existsSync(path.join(tmpDir, "metro.config.cjs"))).toBe(false);
|
|
334
|
+
});
|
|
335
|
+
it("generates files in CI when expo-updates is present", function () {
|
|
336
|
+
process.env.CI = "true";
|
|
337
|
+
var fakeUpdates = path.join(tmpDir, "node_modules/expo-updates");
|
|
338
|
+
fs.mkdirSync(fakeUpdates, {
|
|
339
|
+
recursive: true
|
|
340
|
+
});
|
|
341
|
+
fs.writeFileSync(path.join(fakeUpdates, "package.json"), JSON.stringify({
|
|
342
|
+
name: "expo-updates"
|
|
343
|
+
}));
|
|
344
|
+
var consoleInfo = vi.spyOn(console, "info").mockImplementation(function () {});
|
|
345
|
+
try {
|
|
346
|
+
maybeGenerateBundlerConfigOnInstall(tmpDir);
|
|
347
|
+
} finally {
|
|
348
|
+
consoleInfo.mockRestore();
|
|
349
|
+
}
|
|
350
|
+
expect(fs.existsSync(path.join(tmpDir, "babel.config.cjs"))).toBe(true);
|
|
351
|
+
expect(fs.existsSync(path.join(tmpDir, "metro.config.cjs"))).toBe(true);
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
//# sourceMappingURL=generateBundlerConfig.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fs","os","path","afterEach","beforeEach","describe","expect","it","vi","generateBundlerConfig","isCiEnvironment","maybeGenerateBundlerConfigOnInstall","ONE_GENERATED_MARKER","tmpDir","mkdtempSync","join","tmpdir","rmSync","recursive","force","ok","results","cwd","quiet","toBe","map","r","action","toEqual","babel","readFileSync","toContain","metro","before","after","writeFileSync","babelResult","find","filePath","endsWith","not","check","every","existsSync","eject","oneOptions","router","root","ignoredRouteFiles","linking","scheme","prefixes","setupFile","native","_i","_iter","length","file","filter","toThrow","originalCi","process","env","CI","originalEasBuild","EAS_BUILD"],"sources":["../../../src/cli/generateBundlerConfig.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/cli/patch.mjs
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
import { loadUserOneOptions } from "../vite/loadConfig.mjs";
|
|
2
|
+
import { maybeGenerateBundlerConfigOnInstall } from "./generateBundlerConfig.mjs";
|
|
3
|
+
function isMissingViteConfigError(error) {
|
|
4
|
+
return error instanceof Error && error.message.startsWith("No config config in ") && error.message.endsWith(" Is this the correct directory?");
|
|
5
|
+
}
|
|
6
|
+
async function loadUserOptions() {
|
|
7
|
+
try {
|
|
8
|
+
return await loadUserOneOptions("build");
|
|
9
|
+
} catch (error) {
|
|
10
|
+
if (isMissingViteConfigError(error)) {
|
|
11
|
+
return void 0;
|
|
12
|
+
}
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
2
16
|
async function run(args) {
|
|
3
17
|
process.env.IS_VXRN_CLI = "true";
|
|
4
18
|
const {
|
|
5
19
|
patch
|
|
6
20
|
} = await import("vxrn");
|
|
7
|
-
const options = await
|
|
8
|
-
|
|
21
|
+
const options = await loadUserOptions();
|
|
22
|
+
if (options) {
|
|
23
|
+
maybeGenerateBundlerConfigOnInstall(process.cwd(), options.oneOptions);
|
|
24
|
+
}
|
|
25
|
+
const patches = options?.oneOptions.patches;
|
|
9
26
|
if (process.env.DEBUG) {
|
|
10
27
|
console.info("User patches:", Object.keys(patches || {}));
|
|
11
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadUserOneOptions","run","args","process","env","IS_VXRN_CLI","patch","options","
|
|
1
|
+
{"version":3,"names":["loadUserOneOptions","maybeGenerateBundlerConfigOnInstall","isMissingViteConfigError","error","Error","message","startsWith","endsWith","loadUserOptions","run","args","process","env","IS_VXRN_CLI","patch","options","cwd","oneOptions","patches","DEBUG","console","info","Object","keys","root","deps","force"],"sources":["../../../src/cli/patch.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,kBAAA,QAA0B;AACnC,SAASC,mCAAA,QAA2C;AAEpD,SAASC,yBAAyBC,KAAA,EAAgB;EAChD,OACEA,KAAA,YAAiBC,KAAA,IACjBD,KAAA,CAAME,OAAA,CAAQC,UAAA,CAAW,sBAAsB,KAC/CH,KAAA,CAAME,OAAA,CAAQE,QAAA,CAAS,iCAAiC;AAE5D;AAEA,eAAeC,gBAAA,EAAkB;EAC/B,IAAI;IACF,OAAO,MAAMR,kBAAA,CAAmB,OAAO;EACzC,SAASG,KAAA,EAAO;IACd,IAAID,wBAAA,CAAyBC,KAAK,GAAG;MACnC,OAAO;IACT;IACA,MAAMA,KAAA;EACR;AACF;AAEA,eAAsBM,IAAIC,IAAA,EAA2B;EACnDC,OAAA,CAAQC,GAAA,CAAIC,WAAA,GAAc;EAC1B,MAAM;IAAEC;EAAM,IAAI,MAAM,OAAO,MAAM;EAErC,MAAMC,OAAA,GAAU,MAAMP,eAAA,CAAgB;EAKtC,IAAIO,OAAA,EAAS;IACXd,mCAAA,CAAoCU,OAAA,CAAQK,GAAA,CAAI,GAAGD,OAAA,CAAQE,UAAU;EACvE;EAEA,MAAMC,OAAA,GAAUH,OAAA,EAASE,UAAA,CAAWC,OAAA;EAEpC,IAAIP,OAAA,CAAQC,GAAA,CAAIO,KAAA,EAAO;IACrBC,OAAA,CAAQC,IAAA,CAAK,iBAAiBC,MAAA,CAAOC,IAAA,CAAKL,OAAA,IAAW,CAAC,CAAC,CAAC;EAC1D;EAEA,MAAMJ,KAAA,CAAM;IACVU,IAAA,EAAMb,OAAA,CAAQK,GAAA,CAAI;IAClBS,IAAA,EAAMP,OAAA;IACNQ,KAAA,EAAOhB,IAAA,CAAKgB;EACd,CAAwB;AAC1B","ignoreList":[]}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
import { loadUserOneOptions } from "../vite/loadConfig.native.js";
|
|
2
|
+
import { maybeGenerateBundlerConfigOnInstall } from "./generateBundlerConfig.native.js";
|
|
3
|
+
function _instanceof(left, right) {
|
|
4
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
5
|
+
return !!right[Symbol.hasInstance](left);
|
|
6
|
+
} else {
|
|
7
|
+
return left instanceof right;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function isMissingViteConfigError(error) {
|
|
11
|
+
return _instanceof(error, Error) && error.message.startsWith("No config config in ") && error.message.endsWith(" Is this the correct directory?");
|
|
12
|
+
}
|
|
13
|
+
async function loadUserOptions() {
|
|
14
|
+
try {
|
|
15
|
+
return await loadUserOneOptions("build");
|
|
16
|
+
} catch (error) {
|
|
17
|
+
if (isMissingViteConfigError(error)) {
|
|
18
|
+
return void 0;
|
|
19
|
+
}
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
2
23
|
async function run(args) {
|
|
3
24
|
process.env.IS_VXRN_CLI = "true";
|
|
4
25
|
var {
|
|
5
26
|
patch
|
|
6
27
|
} = await import("vxrn");
|
|
7
|
-
var options = await
|
|
8
|
-
|
|
28
|
+
var options = await loadUserOptions();
|
|
29
|
+
if (options) {
|
|
30
|
+
maybeGenerateBundlerConfigOnInstall(process.cwd(), options.oneOptions);
|
|
31
|
+
}
|
|
32
|
+
var patches = options === null || options === void 0 ? void 0 : options.oneOptions.patches;
|
|
9
33
|
if (process.env.DEBUG) {
|
|
10
34
|
console.info("User patches:", Object.keys(patches || {}));
|
|
11
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loadUserOneOptions","run","args","process","env","IS_VXRN_CLI","patch","options","
|
|
1
|
+
{"version":3,"names":["loadUserOneOptions","maybeGenerateBundlerConfigOnInstall","_instanceof","left","right","Symbol","hasInstance","isMissingViteConfigError","error","Error","message","startsWith","endsWith","loadUserOptions","run","args","process","env","IS_VXRN_CLI","patch","options","cwd","oneOptions","patches","DEBUG","console","info","Object","keys"],"sources":["../../../src/cli/patch.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,kBAAA,QAA0B;AACnC,SAASC,mCAAA,QAA2C;AAEpD,SAASC,YAAAC,IAAA,EAAAC,KAAA,EAAyB;EAChC,IAAAA,KACE,mBAAiBC,MACjB,KAAM,WAAQ,IAAAD,KAAW,CAAAC,MAAA,CAAAC,WAAA,GAAsB;IAGnD,SAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EAEA;IACE,OAAIA,IAAA,YAAAC,KAAA;EACF;AAAuC;AAEvC,SAAIG,wBAAyBA,CAAAC,KAAK,EAAG;EACnC,OAAAN,WAAO,CAAAM,KAAA,EAAAC,KAAA,KAAAD,KAAA,CAAAE,OAAA,CAAAC,UAAA,4BAAAH,KAAA,CAAAE,OAAA,CAAAE,QAAA;AAAA;AAET,eAAMC,gBAAA;EACR;IACF,aAAAb,kBAAA;EAEA,SAAAQ,KAAsB;IACpB,IAAAD,wBAA0B,CAAAC,KAAA;MAC1B,OAAQ,KAAM;IAEd;IAKA,MAAIA,KAAS;EACX;AAAqE;AAGvE,eAAMM,GAAUA,CAAAC,IAAA;EAEhBC,OAAI,CAAAC,GAAA,CAAQC,WAAW;EACrB;IAAAC;EAAQ,IAAK,mBAAiB;EAChC,IAAAC,OAAA,SAAAP,eAAA;EAEA,IAAAO,OAAM,EAAM;IACVnB,mCAAkB,CAAAe,OAAA,CAAAK,GAAA,IAAAD,OAAA,CAAAE,UAAA;EAAA;EACZ,IACNC,OAAO,GAAKH,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAE,UAAA,CAAAC,OAAA;EACd,IAAwBP,OAAA,CAAAC,GAAA,CAAAO,KAAA;IAC1BC,OAAA,CAAAC,IAAA,kBAAAC,MAAA,CAAAC,IAAA,CAAAL,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { run } from "./patch.mjs";
|
|
3
|
+
const {
|
|
4
|
+
patchMock,
|
|
5
|
+
loadUserOneOptionsMock
|
|
6
|
+
} = vi.hoisted(() => ({
|
|
7
|
+
patchMock: vi.fn(),
|
|
8
|
+
loadUserOneOptionsMock: vi.fn()
|
|
9
|
+
}));
|
|
10
|
+
vi.mock("vxrn", () => ({
|
|
11
|
+
patch: patchMock
|
|
12
|
+
}));
|
|
13
|
+
vi.mock("../vite/loadConfig", () => ({
|
|
14
|
+
loadUserOneOptions: loadUserOneOptionsMock
|
|
15
|
+
}));
|
|
16
|
+
describe("one patch", () => {
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
patchMock.mockReset();
|
|
19
|
+
loadUserOneOptionsMock.mockReset();
|
|
20
|
+
});
|
|
21
|
+
it("applies built-in patches when a native-only app has no vite config", async () => {
|
|
22
|
+
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("No config config in /tmp/native-only-app. Is this the correct directory?"));
|
|
23
|
+
await run({});
|
|
24
|
+
expect(patchMock).toHaveBeenCalledWith({
|
|
25
|
+
root: process.cwd(),
|
|
26
|
+
deps: void 0,
|
|
27
|
+
force: void 0
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
it("passes configured user patches through to vxrn", async () => {
|
|
31
|
+
const patches = {
|
|
32
|
+
"example-package": {
|
|
33
|
+
version: "1",
|
|
34
|
+
"index.js": "export default 1"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
loadUserOneOptionsMock.mockResolvedValueOnce({
|
|
38
|
+
oneOptions: {
|
|
39
|
+
patches
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
await run({
|
|
43
|
+
force: true
|
|
44
|
+
});
|
|
45
|
+
expect(patchMock).toHaveBeenCalledWith({
|
|
46
|
+
root: process.cwd(),
|
|
47
|
+
deps: patches,
|
|
48
|
+
force: true
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
it("keeps failing when a vite config exists but does not load one", async () => {
|
|
52
|
+
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("One not loaded properly, is the one() plugin in your vite.config.ts?"));
|
|
53
|
+
await expect(run({})).rejects.toThrow("One not loaded properly");
|
|
54
|
+
expect(patchMock).not.toHaveBeenCalled();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=patch.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["beforeEach","describe","expect","it","vi","run","patchMock","loadUserOneOptionsMock","hoisted","fn","mock","patch","loadUserOneOptions","mockReset","mockRejectedValueOnce","Error","toHaveBeenCalledWith","root","process","cwd","deps","force","patches","version","mockResolvedValueOnce","oneOptions","rejects","toThrow","not","toHaveBeenCalled"],"sources":["../../../src/cli/patch.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AACrD,SAASC,GAAA,QAAW;AAEpB,MAAM;EAAEC,SAAA;EAAWC;AAAuB,IAAIH,EAAA,CAAGI,OAAA,CAAQ,OAAO;EAC9DF,SAAA,EAAWF,EAAA,CAAGK,EAAA,CAAG;EACjBF,sBAAA,EAAwBH,EAAA,CAAGK,EAAA,CAAG;AAChC,EAAE;AAEFL,EAAA,CAAGM,IAAA,CAAK,QAAQ,OAAO;EACrBC,KAAA,EAAOL;AACT,EAAE;AAEFF,EAAA,CAAGM,IAAA,CAAK,sBAAsB,OAAO;EACnCE,kBAAA,EAAoBL;AACtB,EAAE;AAEFN,QAAA,CAAS,aAAa,MAAM;EAC1BD,UAAA,CAAW,MAAM;IACfM,SAAA,CAAUO,SAAA,CAAU;IACpBN,sBAAA,CAAuBM,SAAA,CAAU;EACnC,CAAC;EAEDV,EAAA,CAAG,sEAAsE,YAAY;IACnFI,sBAAA,CAAuBO,qBAAA,CACrB,IAAIC,KAAA,CAAM,0EAA0E,CACtF;IAEA,MAAMV,GAAA,CAAI,CAAC,CAAC;IAEZH,MAAA,CAAOI,SAAS,EAAEU,oBAAA,CAAqB;MACrCC,IAAA,EAAMC,OAAA,CAAQC,GAAA,CAAI;MAClBC,IAAA,EAAM;MACNC,KAAA,EAAO;IACT,CAAC;EACH,CAAC;EAEDlB,EAAA,CAAG,kDAAkD,YAAY;IAC/D,MAAMmB,OAAA,GAAU;MACd,mBAAmB;QACjBC,OAAA,EAAS;QACT,YAAY;MACd;IACF;IACAhB,sBAAA,CAAuBiB,qBAAA,CAAsB;MAC3CC,UAAA,EAAY;QAAEH;MAAQ;IACxB,CAAC;IAED,MAAMjB,GAAA,CAAI;MAAEgB,KAAA,EAAO;IAAK,CAAC;IAEzBnB,MAAA,CAAOI,SAAS,EAAEU,oBAAA,CAAqB;MACrCC,IAAA,EAAMC,OAAA,CAAQC,GAAA,CAAI;MAClBC,IAAA,EAAME,OAAA;MACND,KAAA,EAAO;IACT,CAAC;EACH,CAAC;EAEDlB,EAAA,CAAG,iEAAiE,YAAY;IAC9EI,sBAAA,CAAuBO,qBAAA,CACrB,IAAIC,KAAA,CAAM,sEAAsE,CAClF;IAEA,MAAMb,MAAA,CAAOG,GAAA,CAAI,CAAC,CAAC,CAAC,EAAEqB,OAAA,CAAQC,OAAA,CAAQ,yBAAyB;IAC/DzB,MAAA,CAAOI,SAAS,EAAEsB,GAAA,CAAIC,gBAAA,CAAiB;EACzC,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { run } from "./patch.native.js";
|
|
3
|
+
var {
|
|
4
|
+
patchMock,
|
|
5
|
+
loadUserOneOptionsMock
|
|
6
|
+
} = vi.hoisted(function () {
|
|
7
|
+
return {
|
|
8
|
+
patchMock: vi.fn(),
|
|
9
|
+
loadUserOneOptionsMock: vi.fn()
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
vi.mock("vxrn", function () {
|
|
13
|
+
return {
|
|
14
|
+
patch: patchMock
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
vi.mock("../vite/loadConfig", function () {
|
|
18
|
+
return {
|
|
19
|
+
loadUserOneOptions: loadUserOneOptionsMock
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
describe("one patch", function () {
|
|
23
|
+
beforeEach(function () {
|
|
24
|
+
patchMock.mockReset();
|
|
25
|
+
loadUserOneOptionsMock.mockReset();
|
|
26
|
+
});
|
|
27
|
+
it("applies built-in patches when a native-only app has no vite config", async function () {
|
|
28
|
+
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("No config config in /tmp/native-only-app. Is this the correct directory?"));
|
|
29
|
+
await run({});
|
|
30
|
+
expect(patchMock).toHaveBeenCalledWith({
|
|
31
|
+
root: process.cwd(),
|
|
32
|
+
deps: void 0,
|
|
33
|
+
force: void 0
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
it("passes configured user patches through to vxrn", async function () {
|
|
37
|
+
var patches = {
|
|
38
|
+
"example-package": {
|
|
39
|
+
version: "1",
|
|
40
|
+
"index.js": "export default 1"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
loadUserOneOptionsMock.mockResolvedValueOnce({
|
|
44
|
+
oneOptions: {
|
|
45
|
+
patches
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
await run({
|
|
49
|
+
force: true
|
|
50
|
+
});
|
|
51
|
+
expect(patchMock).toHaveBeenCalledWith({
|
|
52
|
+
root: process.cwd(),
|
|
53
|
+
deps: patches,
|
|
54
|
+
force: true
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
it("keeps failing when a vite config exists but does not load one", async function () {
|
|
58
|
+
loadUserOneOptionsMock.mockRejectedValueOnce(new Error("One not loaded properly, is the one() plugin in your vite.config.ts?"));
|
|
59
|
+
await expect(run({})).rejects.toThrow("One not loaded properly");
|
|
60
|
+
expect(patchMock).not.toHaveBeenCalled();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=patch.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["beforeEach","describe","expect","it","vi","run","patchMock","loadUserOneOptionsMock","hoisted","fn","mock","patch","loadUserOneOptions","mockReset","mockRejectedValueOnce","Error","toHaveBeenCalledWith","root","process","cwd","deps","force","patches","version","mockResolvedValueOnce","oneOptions"],"sources":["../../../src/cli/patch.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AACrD,SAASC,GAAA,QAAW;AAEpB;EAAMC,SAAE;EAAAC;AAAW,IAAuBH,EAAI,CAAAI,OAAG,aAAe;EAC9D;IACAF,SAAA,EAAAF,EAAA,CAAAK,EAAA;IACAF,sBAAA,EAAAH,EAAA,CAAAK,EAAA;EAEF,CAAG;AAAoB,EACrB;AACFL,EAAE,CAAAM,IAAA;EAEF,OAAQ;IACNC,KAAA,EAAAL;EACA;AAEF;AACEF,EAAA,CAAAM,IAAA,qBAAiB;EACf;IACAE,kBAAA,EAAAL;EACF,CAAC;AAED;AACEN,QAAA,0BAAuB;EAAAD,UACjB,aAAM;IACZM,SAAA,CAAAO,SAAA;IAEAN,sBAAY,CAAAM,SAAA;EAEZ;EAAuCV,EAAA,qEACnB;IAAAI,sBACZ,CAAAO,qBAAA,KAAAC,KAAA;IAAA,MACNV,GAAO;IACTH,MAAC,CAAAI,SAAA,EAAAU,oBAAA;MACFC,IAAA,EAAAC,OAAA,CAAAC,GAAA;MAEEC,IAAA;MACDC,KAAM;IAAU,EACd;EAAmB;EACRlB,EAAA,iDACG;IAAA,IACdmB,OAAA;MACF;QACAC,OAAA;QACE,UAAY,EAAE;MACf;IAED;IAEAhB,sBAAkB,CAAAiB,qBAAqB;MACrCC,UAAM;QACNH;MACA;IACF,CAAC;IACF,MAAAjB,GAAA;MAEEgB,KAAA;IACD;IAAuBnB,MACjB,CAAAI,SAAM,EAAAU,oBAAA;MACZC,IAAA,EAAAC,OAAA,CAAAC,GAAA;MAEAC,IAAM,EAAAE,OAAO;MACbD,KAAO;IACR;EACF","ignoreList":[]}
|
package/dist/esm/cli.mjs
CHANGED
|
@@ -26,7 +26,8 @@ const docsLinks = {
|
|
|
26
26
|
clean: `${DOCS_BASE}/configuration`,
|
|
27
27
|
patch: `${DOCS_BASE}/configuration`,
|
|
28
28
|
"generate-routes": `${DOCS_BASE}/routing-typed-routes`,
|
|
29
|
-
typegen: `${DOCS_BASE}/routing-typed-routes
|
|
29
|
+
typegen: `${DOCS_BASE}/routing-typed-routes`,
|
|
30
|
+
"metro-eject": `${DOCS_BASE}/guides-ota-updates`
|
|
30
31
|
};
|
|
31
32
|
function withDocsLink(description, command) {
|
|
32
33
|
return `${description}
|
|
@@ -348,6 +349,41 @@ const typegen = defineCommand({
|
|
|
348
349
|
await run(args);
|
|
349
350
|
}
|
|
350
351
|
});
|
|
352
|
+
const metroEject = defineCommand({
|
|
353
|
+
meta: {
|
|
354
|
+
name: "metro-eject",
|
|
355
|
+
version,
|
|
356
|
+
description: withDocsLink("Write babel.config.cjs + metro.config.cjs so you can own them and customize freely", "metro-eject")
|
|
357
|
+
},
|
|
358
|
+
args: {
|
|
359
|
+
force: {
|
|
360
|
+
type: "boolean",
|
|
361
|
+
description: "Overwrite existing files"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
async run({
|
|
365
|
+
args
|
|
366
|
+
}) {
|
|
367
|
+
const {
|
|
368
|
+
generateBundlerConfig
|
|
369
|
+
} = await import("./cli/generateBundlerConfig.mjs");
|
|
370
|
+
const {
|
|
371
|
+
loadUserOneOptions
|
|
372
|
+
} = await import("./vite/loadConfig.mjs");
|
|
373
|
+
process.env.IS_VXRN_CLI = "true";
|
|
374
|
+
const {
|
|
375
|
+
oneOptions
|
|
376
|
+
} = await loadUserOneOptions("build");
|
|
377
|
+
const {
|
|
378
|
+
ok
|
|
379
|
+
} = generateBundlerConfig({
|
|
380
|
+
force: !!args.force,
|
|
381
|
+
eject: true,
|
|
382
|
+
oneOptions
|
|
383
|
+
});
|
|
384
|
+
if (!ok) process.exit(1);
|
|
385
|
+
}
|
|
386
|
+
});
|
|
351
387
|
const daemonCommand = defineCommand({
|
|
352
388
|
meta: {
|
|
353
389
|
name: "daemon",
|
|
@@ -409,7 +445,8 @@ const subCommands = {
|
|
|
409
445
|
serve: serveCommand,
|
|
410
446
|
"generate-routes": generateRoutes,
|
|
411
447
|
typegen,
|
|
412
|
-
daemon: daemonCommand
|
|
448
|
+
daemon: daemonCommand,
|
|
449
|
+
"metro-eject": metroEject
|
|
413
450
|
};
|
|
414
451
|
const subMain = defineCommand({
|
|
415
452
|
meta: {
|