@tamagui/cli 2.7.7 → 3.0.0-beta.1097.1
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/add.cjs +76 -87
- package/dist/build.cjs +425 -278
- package/dist/cli.cjs +361 -340
- package/dist/generate-prompt.cjs +484 -362
- package/dist/generate.cjs +45 -54
- package/dist/index.cjs +1 -1
- package/dist/migrate.cjs +437 -0
- package/dist/setup-prompt.cjs +216 -0
- package/dist/to-tailwind-default-config.cjs +789 -0
- package/dist/to-tailwind.cjs +213 -0
- package/dist/update-template.cjs +43 -52
- package/dist/update.cjs +14 -18
- package/dist/upgrade.cjs +417 -401
- package/dist/utils.cjs +84 -101
- package/metro.cjs +1 -0
- package/metro.d.ts +1 -0
- package/metro.mjs +1 -0
- package/package.json +43 -13
- package/src/build.ts +594 -362
- package/src/cli.ts +113 -12
- package/src/generate-prompt.ts +428 -329
- package/src/migrate.ts +422 -0
- package/src/setup-prompt.ts +192 -0
- package/src/to-tailwind-default-config.ts +767 -0
- package/src/to-tailwind.ts +313 -0
- package/src/upgrade.ts +30 -33
- package/src/utils.ts +11 -9
- package/types/add.d.ts +1 -1
- package/types/add.d.ts.map +1 -1
- package/types/build.d.ts +2 -1
- package/types/build.d.ts.map +1 -1
- package/types/generate-prompt.d.ts +6 -2
- package/types/generate-prompt.d.ts.map +1 -1
- package/types/migrate.d.ts +7 -0
- package/types/migrate.d.ts.map +1 -0
- package/types/setup-prompt.d.ts +5 -0
- package/types/setup-prompt.d.ts.map +1 -0
- package/types/to-tailwind-default-config.d.ts +53 -0
- package/types/to-tailwind-default-config.d.ts.map +1 -0
- package/types/to-tailwind.d.ts +16 -0
- package/types/to-tailwind.d.ts.map +1 -0
- package/types/upgrade.d.ts.map +1 -1
- package/types/utils.d.ts.map +1 -1
- package/vite.cjs +1 -0
- package/vite.d.ts +1 -0
- package/vite.mjs +1 -0
package/dist/cli.cjs
CHANGED
|
@@ -5,370 +5,391 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __copyProps = (to, from, except, desc) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
+
get: () => from[key],
|
|
11
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
15
|
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
-
value: mod,
|
|
23
|
-
enumerable: true
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
17
|
+
value: mod,
|
|
18
|
+
enumerable: true
|
|
24
19
|
}) : target, mod));
|
|
25
20
|
var import_arg = __toESM(require("arg"));
|
|
26
21
|
var import_chalk = __toESM(require("chalk"));
|
|
27
22
|
var import_utils = require("./utils.cjs");
|
|
28
|
-
|
|
29
|
-
process.on(_, () => {
|
|
30
|
-
(0, import_utils.disposeAll)();
|
|
31
|
-
process.exit();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
23
|
+
process.on("exit", import_utils.disposeAll);
|
|
34
24
|
const COMMAND_MAP = {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
25
|
+
check: {
|
|
26
|
+
description: `Checks flat style values, inconsistent versions, duplicate installs, lockfile issues, and missing config.`,
|
|
27
|
+
shorthands: [],
|
|
28
|
+
flags: {
|
|
29
|
+
"--help": Boolean,
|
|
30
|
+
"--debug": Boolean,
|
|
31
|
+
"--verbose": Boolean,
|
|
32
|
+
"--styles-only": Boolean,
|
|
33
|
+
"--deps-only": Boolean,
|
|
34
|
+
"--strict": Boolean
|
|
35
|
+
},
|
|
36
|
+
async run() {
|
|
37
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
38
|
+
const options = await (0, import_utils.getOptions)({
|
|
39
|
+
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false,
|
|
40
|
+
loadTamaguiOptions: flags2["--strict"] && !flags2["--deps-only"]
|
|
41
|
+
});
|
|
42
|
+
if (!flags2["--styles-only"]) {
|
|
43
|
+
const { checkDeps } = require("@tamagui/static/checkDeps");
|
|
44
|
+
await checkDeps(options.paths.root);
|
|
45
|
+
}
|
|
46
|
+
if (flags2["--deps-only"]) return;
|
|
47
|
+
if (flags2["--strict"]) {
|
|
48
|
+
if (!options.tamaguiOptions.config) {
|
|
49
|
+
throw new Error("Strict style checking requires a Tamagui config.");
|
|
50
|
+
}
|
|
51
|
+
const { loadTamagui } = require("@tamagui/static/loadTamagui");
|
|
52
|
+
process.env.TAMAGUI_KEEP_THEMES = "1";
|
|
53
|
+
const loaded = await loadTamagui({
|
|
54
|
+
...options.tamaguiOptions,
|
|
55
|
+
platform: "web"
|
|
56
|
+
}, true);
|
|
57
|
+
if (!loaded?.tamaguiConfig) {
|
|
58
|
+
throw new Error("Unable to load the Tamagui config for strict style checking.");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const { checkStyleFiles, formatCheckResults, MissingConfigArtifactError } = require("@tamagui/language-service/check");
|
|
62
|
+
try {
|
|
63
|
+
const result = checkStyleFiles({
|
|
64
|
+
root: options.paths.root,
|
|
65
|
+
configPath: options.paths.conf,
|
|
66
|
+
strict: flags2["--strict"]
|
|
67
|
+
});
|
|
68
|
+
console.info(formatCheckResults(result));
|
|
69
|
+
if (result.diagnosticCount > 0) process.exitCode = 1;
|
|
70
|
+
} catch (error) {
|
|
71
|
+
if (error instanceof MissingConfigArtifactError && !flags2["--strict"]) {
|
|
72
|
+
console.warn(import_chalk.default.yellow(`skipping flat value check: ${error.message}`));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
generate: {
|
|
80
|
+
description: `Builds your entire tamagui configuration and outputs any CSS.`,
|
|
81
|
+
shorthands: [],
|
|
82
|
+
flags: {
|
|
83
|
+
"--help": Boolean,
|
|
84
|
+
"--debug": Boolean,
|
|
85
|
+
"--verbose": Boolean
|
|
86
|
+
},
|
|
87
|
+
async run() {
|
|
88
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
89
|
+
const options = await (0, import_utils.getOptions)({
|
|
90
|
+
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false,
|
|
91
|
+
loadTamaguiOptions: true
|
|
92
|
+
});
|
|
93
|
+
const { loadTamagui } = require("@tamagui/static/loadTamagui");
|
|
94
|
+
process.env.TAMAGUI_KEEP_THEMES = "1";
|
|
95
|
+
await loadTamagui({
|
|
96
|
+
...options.tamaguiOptions,
|
|
97
|
+
platform: "web"
|
|
98
|
+
});
|
|
99
|
+
const { generatePrompt } = require("./generate-prompt.cjs");
|
|
100
|
+
const { join } = require("node:path");
|
|
101
|
+
await generatePrompt({
|
|
102
|
+
...options,
|
|
103
|
+
output: join(options.paths.dotDir, "prompt.md")
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"generate-css": {
|
|
108
|
+
shorthands: [],
|
|
109
|
+
description: `Generate the tamagui.generated.css file from your config`,
|
|
110
|
+
flags: {
|
|
111
|
+
"--help": Boolean,
|
|
112
|
+
"--debug": Boolean,
|
|
113
|
+
"--verbose": Boolean,
|
|
114
|
+
"--output": String
|
|
115
|
+
},
|
|
116
|
+
async run() {
|
|
117
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
118
|
+
const options = await (0, import_utils.getOptions)({
|
|
119
|
+
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false,
|
|
120
|
+
loadTamaguiOptions: true
|
|
121
|
+
});
|
|
122
|
+
const outputPath = flags2["--output"] || options.tamaguiOptions.outputCSS || "./tamagui.generated.css";
|
|
123
|
+
const { loadTamagui } = require("@tamagui/static/loadTamagui");
|
|
124
|
+
process.env.TAMAGUI_KEEP_THEMES = "1";
|
|
125
|
+
await loadTamagui({
|
|
126
|
+
...options.tamaguiOptions,
|
|
127
|
+
outputCSS: outputPath,
|
|
128
|
+
platform: "web"
|
|
129
|
+
});
|
|
130
|
+
console.info(`Generated CSS to ${outputPath}`);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"generate-themes": {
|
|
134
|
+
shorthands: [],
|
|
135
|
+
description: `Use to pre-build your themes`,
|
|
136
|
+
flags: {
|
|
137
|
+
"--help": Boolean,
|
|
138
|
+
"--debug": Boolean,
|
|
139
|
+
"--verbose": Boolean
|
|
140
|
+
},
|
|
141
|
+
async run() {
|
|
142
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
143
|
+
const options = await (0, import_utils.getOptions)({ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false });
|
|
144
|
+
const [_cmd, inPath, outPath] = _;
|
|
145
|
+
if (!inPath || !outPath) {
|
|
146
|
+
throw new Error(`Must supply both input and output paths, missing one (inPath: ${inPath}, outPath: ${outPath})`);
|
|
147
|
+
}
|
|
148
|
+
const { generateThemes, writeGeneratedThemes } = require("@tamagui/generate-themes");
|
|
149
|
+
try {
|
|
150
|
+
const generated = await generateThemes(inPath);
|
|
151
|
+
if (generated) {
|
|
152
|
+
await writeGeneratedThemes(options.paths.dotDir, outPath, generated);
|
|
153
|
+
console.info(`Successfully generated themes to ${outPath}`);
|
|
154
|
+
} else {
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
} catch (err) {
|
|
158
|
+
console.error(`Error generating themes: ${err}`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
add: {
|
|
164
|
+
shorthands: [],
|
|
165
|
+
description: `Use to add fonts and icons to your monorepo.`,
|
|
166
|
+
flags: {
|
|
167
|
+
"--help": Boolean,
|
|
168
|
+
"--debug": Boolean,
|
|
169
|
+
"--verbose": Boolean
|
|
170
|
+
},
|
|
171
|
+
async run() {
|
|
172
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
173
|
+
const { installGeneratedPackage } = require("./add.cjs");
|
|
174
|
+
const [cmd, type, path] = _;
|
|
175
|
+
await installGeneratedPackage(type, path);
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
build: {
|
|
179
|
+
shorthands: ["b"],
|
|
180
|
+
description: `Use to pre-build a Tamagui component directory. Use -- to run a command after optimization, then auto-restore files.`,
|
|
181
|
+
flags: {
|
|
182
|
+
"--help": Boolean,
|
|
183
|
+
"--debug": Boolean,
|
|
184
|
+
"--verbose": Boolean,
|
|
185
|
+
"--dry-run": Boolean,
|
|
186
|
+
"--target": String,
|
|
187
|
+
"--include": String,
|
|
188
|
+
"--exclude": String,
|
|
189
|
+
"--output": String,
|
|
190
|
+
"--output-around": Boolean,
|
|
191
|
+
"--expect-optimizations": Number
|
|
192
|
+
},
|
|
193
|
+
async run() {
|
|
194
|
+
const argvSeparatorIdx = process.argv.indexOf("--");
|
|
195
|
+
let runCommand;
|
|
196
|
+
if (argvSeparatorIdx !== -1) {
|
|
197
|
+
runCommand = process.argv.slice(argvSeparatorIdx + 1);
|
|
198
|
+
const argsBeforeSeparator = process.argv.slice(0, argvSeparatorIdx);
|
|
199
|
+
process.argv = argsBeforeSeparator;
|
|
200
|
+
}
|
|
201
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
202
|
+
const [_command, dir] = _;
|
|
203
|
+
const dryRun = flags2["--dry-run"] || false;
|
|
204
|
+
const debug = flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false;
|
|
205
|
+
const { build } = require("./build.cjs");
|
|
206
|
+
const options = await (0, import_utils.getOptions)({ debug });
|
|
207
|
+
await build({
|
|
208
|
+
...options,
|
|
209
|
+
dir,
|
|
210
|
+
include: flags2["--include"],
|
|
211
|
+
target: flags2["--target"] || "both",
|
|
212
|
+
exclude: flags2["--exclude"],
|
|
213
|
+
output: flags2["--output"],
|
|
214
|
+
outputAround: flags2["--output-around"],
|
|
215
|
+
expectOptimizations: flags2["--expect-optimizations"],
|
|
216
|
+
runCommand,
|
|
217
|
+
dryRun
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
upgrade: {
|
|
222
|
+
shorthands: ["up"],
|
|
223
|
+
description: `Upgrade all tamagui packages in your workspace to the latest version`,
|
|
224
|
+
flags: {
|
|
225
|
+
"--help": Boolean,
|
|
226
|
+
"--debug": Boolean,
|
|
227
|
+
"--from": String,
|
|
228
|
+
"--to": String,
|
|
229
|
+
"--changelog-only": Boolean,
|
|
230
|
+
"--dry-run": Boolean
|
|
231
|
+
},
|
|
232
|
+
async run() {
|
|
233
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
234
|
+
const { upgrade } = require("./upgrade.cjs");
|
|
235
|
+
await upgrade({
|
|
236
|
+
from: flags2["--from"],
|
|
237
|
+
to: flags2["--to"],
|
|
238
|
+
changelogOnly: flags2["--changelog-only"],
|
|
239
|
+
dryRun: flags2["--dry-run"],
|
|
240
|
+
debug: flags2["--debug"]
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
setup: {
|
|
245
|
+
shorthands: [],
|
|
246
|
+
description: `Print an AI-agent prompt for adding Tamagui to a project for the first time`,
|
|
247
|
+
usage: `$ tamagui setup`,
|
|
248
|
+
flags: { "--help": Boolean },
|
|
249
|
+
async run() {
|
|
250
|
+
const { printSetupPrompt } = require("./setup-prompt.cjs");
|
|
251
|
+
printSetupPrompt();
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
migrate: {
|
|
255
|
+
shorthands: [],
|
|
256
|
+
description: `Print an AI-agent prompt for migrating a Tamagui app to v3`,
|
|
257
|
+
usage: `$ tamagui migrate --from v2
|
|
258
|
+
$ tamagui migrate --from v1`,
|
|
259
|
+
flags: {
|
|
260
|
+
"--help": Boolean,
|
|
261
|
+
"--from": String
|
|
262
|
+
},
|
|
263
|
+
async run() {
|
|
264
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
265
|
+
const [_cmd, fromArg] = _;
|
|
266
|
+
const { printMigrationPrompt } = require("./migrate.cjs");
|
|
267
|
+
printMigrationPrompt({ from: flags2["--from"] || fromArg });
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"to-tailwind": {
|
|
271
|
+
shorthands: [],
|
|
272
|
+
description: `Convert Tamagui JSX props in files or globs to Tailwind className syntax`,
|
|
273
|
+
flags: {
|
|
274
|
+
"--help": Boolean,
|
|
275
|
+
"--write": Boolean,
|
|
276
|
+
"--config": String,
|
|
277
|
+
"--use-default-config": Boolean,
|
|
278
|
+
"--rename-dom": Boolean
|
|
279
|
+
},
|
|
280
|
+
async run() {
|
|
281
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
282
|
+
const { toTailwind } = require("./to-tailwind.cjs");
|
|
283
|
+
const [_cmd, ...patterns] = _;
|
|
284
|
+
await toTailwind({
|
|
285
|
+
patterns,
|
|
286
|
+
write: flags2["--write"],
|
|
287
|
+
configPath: flags2["--config"],
|
|
288
|
+
useDefaultConfig: flags2["--use-default-config"],
|
|
289
|
+
renameDom: flags2["--rename-dom"]
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"update-template": {
|
|
294
|
+
shorthands: ["ut"],
|
|
295
|
+
description: `Used to update your git repo with the source template. (e.g. Takeout)`,
|
|
296
|
+
flags: {
|
|
297
|
+
"--help": Boolean,
|
|
298
|
+
"--template-repo": String,
|
|
299
|
+
"--ignored-patterns": String
|
|
300
|
+
},
|
|
301
|
+
async run() {
|
|
302
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
303
|
+
const { updateTemplate } = require("./update-template.cjs");
|
|
304
|
+
if (!flags2["--template-repo"]) {
|
|
305
|
+
throw new Error("--template-repo is required");
|
|
306
|
+
}
|
|
307
|
+
await updateTemplate(flags2["--template-repo"], flags2["--ignored-patterns"]?.split(" "));
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"generate-prompt": {
|
|
311
|
+
shorthands: [],
|
|
312
|
+
description: `Generate an LLM-friendly markdown file from your Tamagui config`,
|
|
313
|
+
flags: {
|
|
314
|
+
"--help": Boolean,
|
|
315
|
+
"--debug": Boolean,
|
|
316
|
+
"--output": String
|
|
317
|
+
},
|
|
318
|
+
async run() {
|
|
319
|
+
const { _, ...flags2 } = (0, import_arg.default)(this.flags);
|
|
320
|
+
const { generatePrompt } = require("./generate-prompt.cjs");
|
|
321
|
+
const options = await (0, import_utils.getOptions)({
|
|
322
|
+
debug: flags2["--debug"] ? true : false,
|
|
323
|
+
loadTamaguiOptions: true
|
|
324
|
+
});
|
|
325
|
+
await generatePrompt({
|
|
326
|
+
...options,
|
|
327
|
+
output: flags2["--output"]
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}
|
|
309
331
|
};
|
|
310
|
-
const commandEntries = Object.keys(COMMAND_MAP).flatMap(command2 => {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
332
|
+
const commandEntries = Object.keys(COMMAND_MAP).flatMap((command2) => {
|
|
333
|
+
const definition2 = COMMAND_MAP[command2];
|
|
334
|
+
const entries = [command2, ...definition2.shorthands].map((cmd) => {
|
|
335
|
+
return [cmd, definition2];
|
|
336
|
+
});
|
|
337
|
+
return entries;
|
|
316
338
|
});
|
|
317
339
|
const commands = Object.fromEntries(commandEntries);
|
|
318
|
-
const {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
}
|
|
322
|
-
"--help": Boolean,
|
|
323
|
-
"--version": Boolean
|
|
324
|
-
}, {
|
|
325
|
-
permissive: true
|
|
326
|
-
});
|
|
340
|
+
const { _: [command], ...flags } = (0, import_arg.default)({
|
|
341
|
+
"--help": Boolean,
|
|
342
|
+
"--version": Boolean
|
|
343
|
+
}, { permissive: true });
|
|
327
344
|
if (flags["--version"]) {
|
|
328
|
-
|
|
329
|
-
|
|
345
|
+
console.info(require("../package.json").version);
|
|
346
|
+
process.exit(0);
|
|
330
347
|
}
|
|
331
348
|
if (!command && flags["--help"]) {
|
|
332
|
-
|
|
349
|
+
console.info(`$ tamagui
|
|
333
350
|
|
|
334
351
|
commands:
|
|
335
352
|
|
|
336
|
-
${Object.keys(COMMAND_MAP).map(key => {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
353
|
+
${Object.keys(COMMAND_MAP).map((key) => {
|
|
354
|
+
return ` ${key}`;
|
|
355
|
+
}).join("\n")}`);
|
|
356
|
+
process.exit(0);
|
|
340
357
|
}
|
|
341
358
|
if (!(command in commands)) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
359
|
+
console.error();
|
|
360
|
+
console.warn(import_chalk.default.yellow(`Not a valid command: ${command}`));
|
|
361
|
+
process.exit(1);
|
|
345
362
|
}
|
|
346
363
|
const definition = commands[command];
|
|
347
364
|
main();
|
|
348
365
|
async function main() {
|
|
349
|
-
|
|
350
|
-
|
|
366
|
+
if (flags["--help"]) {
|
|
367
|
+
console.info(`
|
|
351
368
|
$ tamagui ${command}: ${definition.description}
|
|
352
369
|
`);
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
|
|
370
|
+
if ("usage" in definition && definition.usage) {
|
|
371
|
+
console.info(`Usage:
|
|
372
|
+
${definition.usage}
|
|
373
|
+
`);
|
|
374
|
+
}
|
|
375
|
+
console.info(`Flags:
|
|
376
|
+
${Object.entries(definition.flags).map(([k, v]) => ` ${k} (${v.name})`).join("\n")}`);
|
|
377
|
+
process.exit(0);
|
|
378
|
+
}
|
|
379
|
+
const { _, ...cmdFlags } = (0, import_arg.default)(definition.flags);
|
|
380
|
+
if (cmdFlags["--help"]) {
|
|
381
|
+
console.info(`$ tamagui ${_}
|
|
362
382
|
|
|
363
383
|
Flags: ${JSON.stringify(cmdFlags, null, 2)}
|
|
364
384
|
|
|
365
385
|
`);
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
386
|
+
process.exit(0);
|
|
387
|
+
}
|
|
388
|
+
try {
|
|
389
|
+
await definition.run();
|
|
390
|
+
} catch (err) {
|
|
391
|
+
console.error(`Error running command: ${err.message}`);
|
|
392
|
+
process.exit(1);
|
|
393
|
+
}
|
|
394
|
+
process.exit(process.exitCode ?? 0);
|
|
395
|
+
}
|