@tamagui/cli 1.31.4 → 1.32.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/build.js CHANGED
@@ -43,7 +43,6 @@ const build = async (options) => {
43
43
  const sourceDir = (0, import_path.dirname)(entry);
44
44
  const promises = [];
45
45
  const targets = ["web"];
46
- console.log("sourceDir", sourceDir, targets);
47
46
  await new Promise((res) => {
48
47
  import_chokidar.default.watch(sourceDir, {
49
48
  // persistent: true,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/build.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAiD;AAEjD,oBAAkE;AAElE,sBAAqB;AACrB,sBAAyB;AAElB,MAAM,QAAQ,OAAO,YAAgC;AAG1D,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AACA,QAAM,gBAAY,qBAAQ,KAAK;AAC/B,QAAM,WAA4B,CAAC;AACnC,QAAM,UAAU,CAAC,KAAK;AAEtB,UAAQ,IAAI,aAAa,WAAW,OAAO;AAE3C,QAAM,IAAI,QAAc,CAAC,QAAQ;AAC/B,oBAAAA,QAEG,MAAM,WAAW;AAAA;AAAA,IAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,iBAAa,qBAAQ,QAAQ,IAAI,GAAG,YAAY;AAEtD,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AAjC5C;AAkCgB,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,8BAAQ,KAAI,aAAZ,GAAY,WAAa;AAAA,cAC3B;AACA,oBAAM,SAAS,UAAM,0BAAS,YAAY,OAAO;AACjD,oBAAM,gBAAY,+BAAgB;AAClC,oBAAM,MAAM,UAAM,mCAAoB;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,SAAS,QAAQ;AAAA,gBACjB,kBAAkB,QAAQ,SAAS;AAAA,cACrC,CAAC;AAAA,YAGH,CAAC;AAAA,UACH;AAAA,QACF,GAAG;AAAA,MACL;AAAA,IACF,CAAC,EACA,GAAG,SAAS,MAAM;AACjB,UAAI;AAAA,IACN,CAAC;AAAA,EACL,CAAC;AAED,QAAM,QAAQ,IAAI,QAAQ;AAC5B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAiD;AAEjD,oBAAkE;AAElE,sBAAqB;AACrB,sBAAyB;AAElB,MAAM,QAAQ,OAAO,YAAgC;AAG1D,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AACA,QAAM,gBAAY,qBAAQ,KAAK;AAC/B,QAAM,WAA4B,CAAC;AACnC,QAAM,UAAU,CAAC,KAAK;AAEtB,QAAM,IAAI,QAAc,CAAC,QAAQ;AAC/B,oBAAAA,QAEG,MAAM,WAAW;AAAA;AAAA,IAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,iBAAa,qBAAQ,QAAQ,IAAI,GAAG,YAAY;AAEtD,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AA/B5C;AAgCgB,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,8BAAQ,KAAI,aAAZ,GAAY,WAAa;AAAA,cAC3B;AACA,oBAAM,SAAS,UAAM,0BAAS,YAAY,OAAO;AACjD,oBAAM,gBAAY,+BAAgB;AAClC,oBAAM,MAAM,UAAM,mCAAoB;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,SAAS,QAAQ;AAAA,gBACjB,kBAAkB,QAAQ,SAAS;AAAA,cACrC,CAAC;AAAA,YAGH,CAAC;AAAA,UACH;AAAA,QACF,GAAG;AAAA,MACL;AAAA,IACF,CAAC,EACA,GAAG,SAAS,MAAM;AACjB,UAAI;AAAA,IACN,CAAC;AAAA,EACL,CAAC;AAED,QAAM,QAAQ,IAAI,QAAQ;AAC5B;",
5
5
  "names": ["chokidar"]
6
6
  }
package/dist/cjs/cli.js CHANGED
@@ -21,21 +21,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
22
  mod
23
23
  ));
24
+ var import_path = require("path");
24
25
  var import_arg = __toESM(require("arg"));
25
26
  var import_chalk = __toESM(require("chalk"));
26
27
  var import_utils = require("./utils");
27
28
  ["exit", "SIGINT"].forEach((_) => {
28
29
  process.on(_, () => {
29
- process.stdout.write(`bye
30
- `);
31
30
  (0, import_utils.disposeAll)();
32
31
  process.exit();
33
32
  });
34
33
  });
35
34
  const COMMAND_MAP = {
36
- build: {
37
- shorthands: ["b"],
38
- description: `Use to pre-build a Tamagui component directory`,
35
+ "generate-themes": {
36
+ shorthands: ["gt"],
37
+ description: `Use to pre-build your themes`,
39
38
  flags: {
40
39
  "--help": Boolean,
41
40
  "--debug": Boolean,
@@ -43,57 +42,84 @@ const COMMAND_MAP = {
43
42
  },
44
43
  async run() {
45
44
  const { _, ...flags2 } = (0, import_arg.default)(this.flags);
46
- const { build } = await import("./build");
45
+ const { generateThemes } = await import("./generate-themes.js");
47
46
  const options = await (0, import_utils.getOptions)({
48
47
  debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
49
48
  });
50
- await build(options);
51
- }
52
- },
53
- update: {
54
- shorthands: [],
55
- description: `Update all tamagui packages within a monorepo`,
56
- flags: {},
57
- async run() {
58
- const { update } = await import("./update");
59
- await update();
60
- }
61
- },
62
- dev: {
63
- shorthands: ["d"],
64
- description: `Run tamagui vite`,
65
- flags: {
66
- "--help": Boolean,
67
- "--debug": Boolean,
68
- "--verbose": Boolean
69
- },
70
- async run() {
71
- const { _, ...flags2 } = (0, import_arg.default)(this.flags);
72
- const { dev } = await import("./dev");
73
- const options = await (0, import_utils.getOptions)({
74
- debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
49
+ const [cmd, inPath, outPath] = _;
50
+ if (!inPath || !outPath) {
51
+ throw new Error(
52
+ `Must supply both input and output paths, missing one (inPath: ${inPath}, outPath: ${outPath})`
53
+ );
54
+ }
55
+ await generateThemes({
56
+ ...options,
57
+ inPath: (0, import_path.join)(options.root, inPath),
58
+ outPath: (0, import_path.join)(options.root, outPath)
75
59
  });
76
- await dev(options);
77
- }
78
- },
79
- studio: {
80
- shorthands: ["s"],
81
- description: `Studio`,
82
- flags: {
83
- "--help": Boolean,
84
- "--debug": Boolean,
85
- "--verbose": Boolean,
86
- "--local": Boolean
87
- },
88
- async run() {
89
- const { _, ...flags2 } = (0, import_arg.default)(this.flags);
90
- const { studio } = await import("./studio");
91
- const options = await (0, import_utils.getOptions)({
92
- debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
93
- });
94
- await studio(options, !flags2["--local"]);
95
60
  }
96
61
  }
62
+ // build: {
63
+ // shorthands: ['b'],
64
+ // description: `Use to pre-build a Tamagui component directory`,
65
+ // flags: {
66
+ // '--help': Boolean,
67
+ // '--debug': Boolean,
68
+ // '--verbose': Boolean,
69
+ // },
70
+ // async run() {
71
+ // const { _, ...flags } = arg(this.flags)
72
+ // const { build } = await import('./build')
73
+ // const options = await getOptions({
74
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
75
+ // })
76
+ // await build(options)
77
+ // },
78
+ // },
79
+ // update: {
80
+ // shorthands: [],
81
+ // description: `Update all tamagui packages within a monorepo`,
82
+ // flags: {},
83
+ // async run() {
84
+ // const { update } = await import('./update')
85
+ // await update()
86
+ // },
87
+ // },
88
+ // dev: {
89
+ // shorthands: ['d'],
90
+ // description: `Run tamagui vite`,
91
+ // flags: {
92
+ // '--help': Boolean,
93
+ // '--debug': Boolean,
94
+ // '--verbose': Boolean,
95
+ // },
96
+ // async run() {
97
+ // const { _, ...flags } = arg(this.flags)
98
+ // const { dev } = await import('./dev')
99
+ // const options = await getOptions({
100
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
101
+ // })
102
+ // await dev(options)
103
+ // },
104
+ // },
105
+ // studio: {
106
+ // shorthands: ['s'],
107
+ // description: `Studio`,
108
+ // flags: {
109
+ // '--help': Boolean,
110
+ // '--debug': Boolean,
111
+ // '--verbose': Boolean,
112
+ // '--local': Boolean,
113
+ // },
114
+ // async run() {
115
+ // const { _, ...flags } = arg(this.flags)
116
+ // const { studio } = await import('./studio')
117
+ // const options = await getOptions({
118
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
119
+ // })
120
+ // await studio(options, !flags['--local'])
121
+ // },
122
+ // },
97
123
  };
98
124
  const commandEntries = Object.keys(COMMAND_MAP).flatMap((command2) => {
99
125
  const definition2 = COMMAND_MAP[command2];
@@ -155,8 +181,11 @@ $ tamagui ${command}: ${definition.description}
155
181
  `);
156
182
  process.exit(0);
157
183
  }
158
- await definition.run();
159
- console.log(`done`);
184
+ try {
185
+ await definition.run();
186
+ } catch (err) {
187
+ console.error(`Error running command: ${err.message}`);
188
+ }
160
189
  process.exit(0);
161
190
  }
162
191
  function showHelp(definition2, flags2) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAqB;AAGrB,iBAAgB;AAChB,mBAAkB;AAElB,mBAAuC;AAEtC,CAAC,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM;AACjC,UAAQ,GAAG,GAAG,MAAM;AAClB,iCAAW;AACX,YAAQ,KAAK;AAAA,EACf,CAAC;AACH,CAAC;AAED,MAAM,cAAc;AAAA,EAClB,mBAAmB;AAAA,IACjB,YAAY,CAAC,IAAI;AAAA,IACjB,aAAa;AAAA,IACb,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,IACA,MAAM,MAAM;AACV,YAAM,EAAE,GAAG,GAAGA,OAAM,QAAI,WAAAC,SAAI,KAAK,KAAK;AACtC,YAAM,EAAE,eAAe,IAAI,MAAM,OAAO,sBAAsB;AAC9D,YAAM,UAAU,UAAM,yBAAW;AAAA,QAC/B,OAAOD,OAAM,SAAS,IAAKA,OAAM,WAAW,IAAI,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,CAAC,KAAK,QAAQ,OAAO,IAAI;AAC/B,UAAI,CAAC,UAAU,CAAC,SAAS;AACvB,cAAM,IAAI;AAAA,UACR,iEAAiE,oBAAoB;AAAA,QACvF;AAAA,MACF;AACA,YAAM,eAAe;AAAA,QACnB,GAAG;AAAA,QACH,YAAQ,kBAAK,QAAQ,MAAM,MAAM;AAAA,QACjC,aAAS,kBAAK,QAAQ,MAAM,OAAO;AAAA,MACrC,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+DF;AAMA,MAAM,iBAAiB,OAAO,KAAK,WAAW,EAAE,QAAQ,CAACE,aAAY;AACnE,QAAMC,cAAa,YAAYD,QAAqB;AACpD,QAAM,UAAU,CAACA,UAAS,GAAGC,YAAW,UAAU,EAAE,IAAI,CAAC,QAAQ;AAC/D,WAAO,CAAC,KAAKA,WAAU;AAAA,EACzB,CAAC;AACD,SAAO;AACT,CAAC;AAED,MAAM,WAAW,OAAO,YAAY,cAAc;AAKlD,MAAM;AAAA,EACJ,GAAG,CAAC,OAAO;AAAA,EACX,GAAG;AACL,QAAI,WAAAF;AAAA,EACF;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,YAAY;AAAA,EACd;AACF;AAEA,IAAI,MAAM,WAAW,GAAG;AACtB,UAAQ,IAAI,QAAQ,iBAAiB,EAAE,OAAO;AAC9C,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAI,CAAC,WAAW,MAAM,QAAQ,GAAG;AAC/B,UAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAIZ,OAAO,KAAK,WAAW,EACtB,IAAI,CAAC,QAAQ;AACZ,WAAO,KAAK;AAAA,EACd,CAAC,EACA,KAAK,IAAI,GAAG;AACb,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAI,EAAE,WAAW,WAAW;AAC1B,UAAQ,MAAM;AACd,UAAQ,KAAK,aAAAG,QAAM,OAAO,wBAAwB,SAAS,CAAC;AAC5D,UAAQ,KAAK,CAAC;AAChB;AAEA,MAAM,aAAa,SAAS,OAAO;AAEnC,KAAK;AAEL,eAAe,OAAO;AACpB,MAAI,MAAM,QAAQ,GAAG;AACnB,YAAQ,IAAI;AAAA,YAAe,YAAY,WAAW;AAAA,CAAe;AACjE,YAAQ;AAAA,MACN,UAAU,OAAO,QAAQ,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO;AAAA,IAC/E;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,EAAE,GAAG,GAAG,SAAS,QAAI,WAAAH,SAAI,WAAW,KAAK;AAG/C,MAAI,SAAS,QAAQ,GAAG;AACtB,YAAQ,IAAI,aAAa;AAAA;AAAA,aAEhB,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA;AAAA,CAE5C;AACG,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI;AACF,UAAM,WAAW,IAAI;AAAA,EACvB,SAAS,KAAP;AACA,YAAQ,MAAM,0BAA0B,IAAI,SAAS;AAAA,EACvD;AAEA,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,SAASE,aAA+BH,QAA+B;AAC9E,MAAIA,OAAM,QAAQ,GAAG;AACnB,YAAQ,IAAI,KAAKG,aAAY;AAAA,EAC/B;AACF;",
5
5
  "names": ["flags", "arg", "command", "definition", "chalk"]
6
6
  }
package/dist/cjs/utils.js CHANGED
@@ -50,6 +50,11 @@ async function getOptions({
50
50
  ensure(await import_fs_extra.default.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`);
51
51
  const dotDir = (0, import_path.join)(root, ".tamagui");
52
52
  const pkgJson = await (0, import_fs_extra.readJSON)((0, import_path.join)(root, "package.json"));
53
+ let config = "";
54
+ try {
55
+ config = await getDefaultTamaguiConfigPath();
56
+ } catch {
57
+ }
53
58
  return {
54
59
  mode: process.env.NODE_ENV === "production" ? "production" : "development",
55
60
  root,
@@ -59,7 +64,7 @@ async function getOptions({
59
64
  tsconfigPath,
60
65
  tamaguiOptions: {
61
66
  components: ["tamagui"],
62
- config: await getDefaultTamaguiConfigPath(),
67
+ config,
63
68
  ...tamaguiOptions
64
69
  },
65
70
  paths: {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AAGrB,oBAAiD;AAEjD,mBAAkB;AAClB,sBAAyC;AAEzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA6B,CAAC,GAAgC;AAC5D,QAAM,uBAAmB,kBAAK,MAAM,YAAY;AAChD,SAAO,MAAM,gBAAAA,QAAG,WAAW,gBAAgB,GAAG,sBAAsB,kBAAkB;AACtF,QAAM,aAAS,kBAAK,MAAM,UAAU;AACpC,QAAM,UAAU,UAAM,8BAAS,kBAAK,MAAM,cAAc,CAAC;AAEzD,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI,aAAa,eAAe,eAAe;AAAA,IAC7D;AAAA,IACA,MAAM,QAAQ;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY,CAAC,SAAS;AAAA,MACtB,QAAQ,MAAM,4BAA4B;AAAA,MAC1C,GAAG;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA,UAAM,kBAAK,QAAQ,qBAAqB;AAAA,MACxC,WAAO,kBAAK,QAAQ,YAAY;AAAA,IAClC;AAAA,EACF;AACF;AAEO,SAAS,OAAO,WAAoB,SAAiB;AAC1D,MAAI,CAAC,WAAW;AACd,YAAQ,MAAM,aAAAC,QAAM,IAAI,KAAK,QAAQ,GAAG,aAAAA,QAAM,OAAO,GAAG,SAAS,CAAC;AAClE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,MAAM,eAAe,CAAC,yBAAqB,kBAAK,OAAO,mBAAmB,CAAC;AAC3E,IAAI,aAAa;AACjB,eAAe,8BAA8B;AAC3C,MAAI;AAAY,WAAO;AACvB,QAAM,gBAAgB,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,aAAS,4BAAW,IAAI,CAAC,CAAC;AACpF,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa,QAAQ;AACnC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACuC;AACvC,QAAM,SAAS,UAAM,cAAAC,aAAkB;AAAA,IACrC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACD,MAAI,QAAQ;AACV,aAAS;AAAA,EACX;AACA,SAAO;AACT;AAEA,MAAM,YAAY,oBAAI,IAAc;AAE7B,SAAS,gBAAgB,IAAgB;AAC9C,YAAU,IAAI,EAAE;AAClB;AAEO,SAAS,aAAa;AAC3B,YAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAChC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AAGrB,oBAAiD;AAEjD,mBAAkB;AAClB,sBAAyC;AAEzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA6B,CAAC,GAAgC;AAC5D,QAAM,uBAAmB,kBAAK,MAAM,YAAY;AAChD,SAAO,MAAM,gBAAAA,QAAG,WAAW,gBAAgB,GAAG,sBAAsB,kBAAkB;AACtF,QAAM,aAAS,kBAAK,MAAM,UAAU;AACpC,QAAM,UAAU,UAAM,8BAAS,kBAAK,MAAM,cAAc,CAAC;AACzD,MAAI,SAAS;AACb,MAAI;AACF,aAAS,MAAM,4BAA4B;AAAA,EAC7C,QAAE;AAAA,EAEF;AAEA,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI,aAAa,eAAe,eAAe;AAAA,IAC7D;AAAA,IACA,MAAM,QAAQ;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY,CAAC,SAAS;AAAA,MACtB;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA,UAAM,kBAAK,QAAQ,qBAAqB;AAAA,MACxC,WAAO,kBAAK,QAAQ,YAAY;AAAA,IAClC;AAAA,EACF;AACF;AAEO,SAAS,OAAO,WAAoB,SAAiB;AAC1D,MAAI,CAAC,WAAW;AACd,YAAQ,MAAM,aAAAC,QAAM,IAAI,KAAK,QAAQ,GAAG,aAAAA,QAAM,OAAO,GAAG,SAAS,CAAC;AAClE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,MAAM,eAAe,CAAC,yBAAqB,kBAAK,OAAO,mBAAmB,CAAC;AAC3E,IAAI,aAAa;AACjB,eAAe,8BAA8B;AAC3C,MAAI;AAAY,WAAO;AACvB,QAAM,gBAAgB,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,aAAS,4BAAW,IAAI,CAAC,CAAC;AACpF,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa,QAAQ;AACnC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACuC;AACvC,QAAM,SAAS,UAAM,cAAAC,aAAkB;AAAA,IACrC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACD,MAAI,QAAQ;AACV,aAAS;AAAA,EACX;AACA,SAAO;AACT;AAEA,MAAM,YAAY,oBAAI,IAAc;AAE7B,SAAS,gBAAgB,IAAgB;AAC9C,YAAU,IAAI,EAAE;AAClB;AAEO,SAAS,aAAa;AAC3B,YAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAChC;",
5
5
  "names": ["fs", "chalk", "loadTamaguiStatic"]
6
6
  }
package/dist/esm/build.js CHANGED
@@ -10,7 +10,6 @@ const build = async (options) => {
10
10
  const sourceDir = dirname(entry);
11
11
  const promises = [];
12
12
  const targets = ["web"];
13
- console.log("sourceDir", sourceDir, targets);
14
13
  await new Promise((res) => {
15
14
  chokidar.watch(sourceDir, {
16
15
  // persistent: true,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/build.ts"],
4
- "mappings": "AACA,SAAmB,SAAe,eAAe;AAEjD,SAAS,iBAAiB,2BAAwC;AAElE,OAAO,cAAc;AACrB,SAAS,gBAAgB;AAElB,MAAM,QAAQ,OAAO,YAAgC;AAG1D,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AACA,QAAM,YAAY,QAAQ,KAAK;AAC/B,QAAM,WAA4B,CAAC;AACnC,QAAM,UAAU,CAAC,KAAK;AAEtB,UAAQ,IAAI,aAAa,WAAW,OAAO;AAE3C,QAAM,IAAI,QAAc,CAAC,QAAQ;AAC/B,aAEG,MAAM,WAAW;AAAA;AAAA,IAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,aAAa,QAAQ,QAAQ,IAAI,GAAG,YAAY;AAEtD,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AAC5B,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,wBAAQ,IAAI,aAAa;AAAA,cAC3B;AACA,oBAAM,SAAS,MAAM,SAAS,YAAY,OAAO;AACjD,oBAAM,YAAY,gBAAgB;AAClC,oBAAM,MAAM,MAAM,oBAAoB;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,SAAS,QAAQ;AAAA,gBACjB,kBAAkB,QAAQ,SAAS;AAAA,cACrC,CAAC;AAAA,YAGH,CAAC;AAAA,UACH;AAAA,QACF,GAAG;AAAA,MACL;AAAA,IACF,CAAC,EACA,GAAG,SAAS,MAAM;AACjB,UAAI;AAAA,IACN,CAAC;AAAA,EACL,CAAC;AAED,QAAM,QAAQ,IAAI,QAAQ;AAC5B;",
4
+ "mappings": "AACA,SAAmB,SAAe,eAAe;AAEjD,SAAS,iBAAiB,2BAAwC;AAElE,OAAO,cAAc;AACrB,SAAS,gBAAgB;AAElB,MAAM,QAAQ,OAAO,YAAgC;AAG1D,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AACA,QAAM,YAAY,QAAQ,KAAK;AAC/B,QAAM,WAA4B,CAAC;AACnC,QAAM,UAAU,CAAC,KAAK;AAEtB,QAAM,IAAI,QAAc,CAAC,QAAQ;AAC/B,aAEG,MAAM,WAAW;AAAA;AAAA,IAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,aAAa,QAAQ,QAAQ,IAAI,GAAG,YAAY;AAEtD,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AAC5B,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,wBAAQ,IAAI,aAAa;AAAA,cAC3B;AACA,oBAAM,SAAS,MAAM,SAAS,YAAY,OAAO;AACjD,oBAAM,YAAY,gBAAgB;AAClC,oBAAM,MAAM,MAAM,oBAAoB;AAAA,gBACpC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,SAAS,QAAQ;AAAA,gBACjB,kBAAkB,QAAQ,SAAS;AAAA,cACrC,CAAC;AAAA,YAGH,CAAC;AAAA,UACH;AAAA,QACF,GAAG;AAAA,MACL;AAAA,IACF,CAAC,EACA,GAAG,SAAS,MAAM;AACjB,UAAI;AAAA,IACN,CAAC;AAAA,EACL,CAAC;AAED,QAAM,QAAQ,IAAI,QAAQ;AAC5B;",
5
5
  "names": []
6
6
  }
package/dist/esm/cli.js CHANGED
@@ -1,18 +1,17 @@
1
+ import { join } from "path";
1
2
  import arg from "arg";
2
3
  import chalk from "chalk";
3
4
  import { disposeAll, getOptions } from "./utils";
4
5
  ["exit", "SIGINT"].forEach((_) => {
5
6
  process.on(_, () => {
6
- process.stdout.write(`bye
7
- `);
8
7
  disposeAll();
9
8
  process.exit();
10
9
  });
11
10
  });
12
11
  const COMMAND_MAP = {
13
- build: {
14
- shorthands: ["b"],
15
- description: `Use to pre-build a Tamagui component directory`,
12
+ "generate-themes": {
13
+ shorthands: ["gt"],
14
+ description: `Use to pre-build your themes`,
16
15
  flags: {
17
16
  "--help": Boolean,
18
17
  "--debug": Boolean,
@@ -20,57 +19,84 @@ const COMMAND_MAP = {
20
19
  },
21
20
  async run() {
22
21
  const { _, ...flags2 } = arg(this.flags);
23
- const { build } = await import("./build");
22
+ const { generateThemes } = await import("./generate-themes.js");
24
23
  const options = await getOptions({
25
24
  debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
26
25
  });
27
- await build(options);
28
- }
29
- },
30
- update: {
31
- shorthands: [],
32
- description: `Update all tamagui packages within a monorepo`,
33
- flags: {},
34
- async run() {
35
- const { update } = await import("./update");
36
- await update();
37
- }
38
- },
39
- dev: {
40
- shorthands: ["d"],
41
- description: `Run tamagui vite`,
42
- flags: {
43
- "--help": Boolean,
44
- "--debug": Boolean,
45
- "--verbose": Boolean
46
- },
47
- async run() {
48
- const { _, ...flags2 } = arg(this.flags);
49
- const { dev } = await import("./dev");
50
- const options = await getOptions({
51
- debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
26
+ const [cmd, inPath, outPath] = _;
27
+ if (!inPath || !outPath) {
28
+ throw new Error(
29
+ `Must supply both input and output paths, missing one (inPath: ${inPath}, outPath: ${outPath})`
30
+ );
31
+ }
32
+ await generateThemes({
33
+ ...options,
34
+ inPath: join(options.root, inPath),
35
+ outPath: join(options.root, outPath)
52
36
  });
53
- await dev(options);
54
- }
55
- },
56
- studio: {
57
- shorthands: ["s"],
58
- description: `Studio`,
59
- flags: {
60
- "--help": Boolean,
61
- "--debug": Boolean,
62
- "--verbose": Boolean,
63
- "--local": Boolean
64
- },
65
- async run() {
66
- const { _, ...flags2 } = arg(this.flags);
67
- const { studio } = await import("./studio");
68
- const options = await getOptions({
69
- debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
70
- });
71
- await studio(options, !flags2["--local"]);
72
37
  }
73
38
  }
39
+ // build: {
40
+ // shorthands: ['b'],
41
+ // description: `Use to pre-build a Tamagui component directory`,
42
+ // flags: {
43
+ // '--help': Boolean,
44
+ // '--debug': Boolean,
45
+ // '--verbose': Boolean,
46
+ // },
47
+ // async run() {
48
+ // const { _, ...flags } = arg(this.flags)
49
+ // const { build } = await import('./build')
50
+ // const options = await getOptions({
51
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
52
+ // })
53
+ // await build(options)
54
+ // },
55
+ // },
56
+ // update: {
57
+ // shorthands: [],
58
+ // description: `Update all tamagui packages within a monorepo`,
59
+ // flags: {},
60
+ // async run() {
61
+ // const { update } = await import('./update')
62
+ // await update()
63
+ // },
64
+ // },
65
+ // dev: {
66
+ // shorthands: ['d'],
67
+ // description: `Run tamagui vite`,
68
+ // flags: {
69
+ // '--help': Boolean,
70
+ // '--debug': Boolean,
71
+ // '--verbose': Boolean,
72
+ // },
73
+ // async run() {
74
+ // const { _, ...flags } = arg(this.flags)
75
+ // const { dev } = await import('./dev')
76
+ // const options = await getOptions({
77
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
78
+ // })
79
+ // await dev(options)
80
+ // },
81
+ // },
82
+ // studio: {
83
+ // shorthands: ['s'],
84
+ // description: `Studio`,
85
+ // flags: {
86
+ // '--help': Boolean,
87
+ // '--debug': Boolean,
88
+ // '--verbose': Boolean,
89
+ // '--local': Boolean,
90
+ // },
91
+ // async run() {
92
+ // const { _, ...flags } = arg(this.flags)
93
+ // const { studio } = await import('./studio')
94
+ // const options = await getOptions({
95
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
96
+ // })
97
+ // await studio(options, !flags['--local'])
98
+ // },
99
+ // },
74
100
  };
75
101
  const commandEntries = Object.keys(COMMAND_MAP).flatMap((command2) => {
76
102
  const definition2 = COMMAND_MAP[command2];
@@ -132,8 +158,11 @@ $ tamagui ${command}: ${definition.description}
132
158
  `);
133
159
  process.exit(0);
134
160
  }
135
- await definition.run();
136
- console.log(`done`);
161
+ try {
162
+ await definition.run();
163
+ } catch (err) {
164
+ console.error(`Error running command: ${err.message}`);
165
+ }
137
166
  process.exit(0);
138
167
  }
139
168
  function showHelp(definition2, flags2) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["flags", "command", "definition"]
6
6
  }
package/dist/esm/utils.js CHANGED
@@ -13,6 +13,11 @@ async function getOptions({
13
13
  ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`);
14
14
  const dotDir = join(root, ".tamagui");
15
15
  const pkgJson = await readJSON(join(root, "package.json"));
16
+ let config = "";
17
+ try {
18
+ config = await getDefaultTamaguiConfigPath();
19
+ } catch {
20
+ }
16
21
  return {
17
22
  mode: process.env.NODE_ENV === "production" ? "production" : "development",
18
23
  root,
@@ -22,7 +27,7 @@ async function getOptions({
22
27
  tsconfigPath,
23
28
  tamaguiOptions: {
24
29
  components: ["tamagui"],
25
- config: await getDefaultTamaguiConfigPath(),
30
+ config,
26
31
  ...tamaguiOptions
27
32
  },
28
33
  paths: {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils.ts"],
4
- "mappings": "AAAA,SAAS,YAAY;AAGrB,SAAS,eAAe,yBAAyB;AAEjD,OAAO,WAAW;AAClB,OAAO,MAAM,YAAY,gBAAgB;AAEzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA6B,CAAC,GAAgC;AAC5D,QAAM,mBAAmB,KAAK,MAAM,YAAY;AAChD,SAAO,MAAM,GAAG,WAAW,gBAAgB,GAAG,sBAAsB,kBAAkB;AACtF,QAAM,SAAS,KAAK,MAAM,UAAU;AACpC,QAAM,UAAU,MAAM,SAAS,KAAK,MAAM,cAAc,CAAC;AAEzD,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI,aAAa,eAAe,eAAe;AAAA,IAC7D;AAAA,IACA,MAAM,QAAQ;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY,CAAC,SAAS;AAAA,MACtB,QAAQ,MAAM,4BAA4B;AAAA,MAC1C,GAAG;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA,MAAM,KAAK,QAAQ,qBAAqB;AAAA,MACxC,OAAO,KAAK,QAAQ,YAAY;AAAA,IAClC;AAAA,EACF;AACF;AAEO,SAAS,OAAO,WAAoB,SAAiB;AAC1D,MAAI,CAAC,WAAW;AACd,YAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;AAClE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,MAAM,eAAe,CAAC,qBAAqB,KAAK,OAAO,mBAAmB,CAAC;AAC3E,IAAI,aAAa;AACjB,eAAe,8BAA8B;AAC3C,MAAI;AAAY,WAAO;AACvB,QAAM,gBAAgB,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC;AACpF,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa,QAAQ;AACnC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACuC;AACvC,QAAM,SAAS,MAAM,kBAAkB;AAAA,IACrC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACD,MAAI,QAAQ;AACV,aAAS;AAAA,EACX;AACA,SAAO;AACT;AAEA,MAAM,YAAY,oBAAI,IAAc;AAE7B,SAAS,gBAAgB,IAAgB;AAC9C,YAAU,IAAI,EAAE;AAClB;AAEO,SAAS,aAAa;AAC3B,YAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAChC;",
4
+ "mappings": "AAAA,SAAS,YAAY;AAGrB,SAAS,eAAe,yBAAyB;AAEjD,OAAO,WAAW;AAClB,OAAO,MAAM,YAAY,gBAAgB;AAEzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA6B,CAAC,GAAgC;AAC5D,QAAM,mBAAmB,KAAK,MAAM,YAAY;AAChD,SAAO,MAAM,GAAG,WAAW,gBAAgB,GAAG,sBAAsB,kBAAkB;AACtF,QAAM,SAAS,KAAK,MAAM,UAAU;AACpC,QAAM,UAAU,MAAM,SAAS,KAAK,MAAM,cAAc,CAAC;AACzD,MAAI,SAAS;AACb,MAAI;AACF,aAAS,MAAM,4BAA4B;AAAA,EAC7C,QAAE;AAAA,EAEF;AAEA,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI,aAAa,eAAe,eAAe;AAAA,IAC7D;AAAA,IACA,MAAM,QAAQ;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY,CAAC,SAAS;AAAA,MACtB;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA,MAAM,KAAK,QAAQ,qBAAqB;AAAA,MACxC,OAAO,KAAK,QAAQ,YAAY;AAAA,IAClC;AAAA,EACF;AACF;AAEO,SAAS,OAAO,WAAoB,SAAiB;AAC1D,MAAI,CAAC,WAAW;AACd,YAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;AAClE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,MAAM,eAAe,CAAC,qBAAqB,KAAK,OAAO,mBAAmB,CAAC;AAC3E,IAAI,aAAa;AACjB,eAAe,8BAA8B;AAC3C,MAAI;AAAY,WAAO;AACvB,QAAM,gBAAgB,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC;AACpF,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa,QAAQ;AACnC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACuC;AACvC,QAAM,SAAS,MAAM,kBAAkB;AAAA,IACrC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACD,MAAI,QAAQ;AACV,aAAS;AAAA,EACX;AACA,SAAO;AACT;AAEA,MAAM,YAAY,oBAAI,IAAc;AAE7B,SAAS,gBAAgB,IAAgB;AAC9C,YAAU,IAAI,EAAE;AAClB;AAEO,SAAS,aAAa;AAC3B,YAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAChC;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/cli",
3
- "version": "1.31.4",
3
+ "version": "1.32.0",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "module": "dist/esm",
@@ -36,10 +36,10 @@
36
36
  "@callstack/repack-debugger-app": "^1.0.0",
37
37
  "@fastify/sensible": "^4.1.0",
38
38
  "@fastify/static": "^5.0.2",
39
- "@tamagui/build": "1.31.4",
40
- "@tamagui/static": "1.31.4",
41
- "@tamagui/types": "1.31.4",
42
- "@tamagui/vite-plugin": "1.31.4",
39
+ "@tamagui/build": "1.32.0",
40
+ "@tamagui/static": "1.32.0",
41
+ "@tamagui/types": "1.32.0",
42
+ "@tamagui/vite-plugin": "1.32.0",
43
43
  "@types/compression": "^1.7.2",
44
44
  "@types/morgan": "^1.9.3",
45
45
  "@vitejs/plugin-react-swc": "^3.3.0",
package/src/build.ts CHANGED
@@ -17,8 +17,6 @@ export const build = async (options: CLIResolvedOptions) => {
17
17
  const promises: Promise<void>[] = []
18
18
  const targets = ['web']
19
19
 
20
- console.log('sourceDir', sourceDir, targets)
21
-
22
20
  await new Promise<void>((res) => {
23
21
  chokidar
24
22
  // prevent infinite loop but cause race condition if you just build directly
package/src/cli.ts CHANGED
@@ -1,21 +1,22 @@
1
+ import { join } from 'path'
2
+
1
3
  /* eslint-disable no-console */
2
- import arg, { flag } from 'arg'
4
+ import arg from 'arg'
3
5
  import chalk from 'chalk'
4
6
 
5
7
  import { disposeAll, getOptions } from './utils'
6
8
 
7
9
  ;['exit', 'SIGINT'].forEach((_) => {
8
10
  process.on(_, () => {
9
- process.stdout.write(`bye\n`)
10
11
  disposeAll()
11
12
  process.exit()
12
13
  })
13
14
  })
14
15
 
15
16
  const COMMAND_MAP = {
16
- build: {
17
- shorthands: ['b'],
18
- description: `Use to pre-build a Tamagui component directory`,
17
+ 'generate-themes': {
18
+ shorthands: ['gt'],
19
+ description: `Use to pre-build your themes`,
19
20
  flags: {
20
21
  '--help': Boolean,
21
22
  '--debug': Boolean,
@@ -23,60 +24,85 @@ const COMMAND_MAP = {
23
24
  },
24
25
  async run() {
25
26
  const { _, ...flags } = arg(this.flags)
26
- const { build } = await import('./build')
27
+ const { generateThemes } = await import('./generate-themes.js')
27
28
  const options = await getOptions({
28
29
  debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
29
30
  })
30
- await build(options)
31
- },
32
- },
33
-
34
- update: {
35
- shorthands: [],
36
- description: `Update all tamagui packages within a monorepo`,
37
- flags: {},
38
- async run() {
39
- const { update } = await import('./update')
40
- await update()
41
- },
42
- },
43
-
44
- dev: {
45
- shorthands: ['d'],
46
- description: `Run tamagui vite`,
47
- flags: {
48
- '--help': Boolean,
49
- '--debug': Boolean,
50
- '--verbose': Boolean,
51
- },
52
- async run() {
53
- const { _, ...flags } = arg(this.flags)
54
- const { dev } = await import('./dev')
55
- const options = await getOptions({
56
- debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
31
+ const [cmd, inPath, outPath] = _
32
+ if (!inPath || !outPath) {
33
+ throw new Error(
34
+ `Must supply both input and output paths, missing one (inPath: ${inPath}, outPath: ${outPath})`
35
+ )
36
+ }
37
+ await generateThemes({
38
+ ...options,
39
+ inPath: join(options.root, inPath),
40
+ outPath: join(options.root, outPath),
57
41
  })
58
- await dev(options)
59
42
  },
60
43
  },
61
44
 
62
- studio: {
63
- shorthands: ['s'],
64
- description: `Studio`,
65
- flags: {
66
- '--help': Boolean,
67
- '--debug': Boolean,
68
- '--verbose': Boolean,
69
- '--local': Boolean,
70
- },
71
- async run() {
72
- const { _, ...flags } = arg(this.flags)
73
- const { studio } = await import('./studio')
74
- const options = await getOptions({
75
- debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
76
- })
77
- await studio(options, !flags['--local'])
78
- },
79
- },
45
+ // build: {
46
+ // shorthands: ['b'],
47
+ // description: `Use to pre-build a Tamagui component directory`,
48
+ // flags: {
49
+ // '--help': Boolean,
50
+ // '--debug': Boolean,
51
+ // '--verbose': Boolean,
52
+ // },
53
+ // async run() {
54
+ // const { _, ...flags } = arg(this.flags)
55
+ // const { build } = await import('./build')
56
+ // const options = await getOptions({
57
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
58
+ // })
59
+ // await build(options)
60
+ // },
61
+ // },
62
+ // update: {
63
+ // shorthands: [],
64
+ // description: `Update all tamagui packages within a monorepo`,
65
+ // flags: {},
66
+ // async run() {
67
+ // const { update } = await import('./update')
68
+ // await update()
69
+ // },
70
+ // },
71
+ // dev: {
72
+ // shorthands: ['d'],
73
+ // description: `Run tamagui vite`,
74
+ // flags: {
75
+ // '--help': Boolean,
76
+ // '--debug': Boolean,
77
+ // '--verbose': Boolean,
78
+ // },
79
+ // async run() {
80
+ // const { _, ...flags } = arg(this.flags)
81
+ // const { dev } = await import('./dev')
82
+ // const options = await getOptions({
83
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
84
+ // })
85
+ // await dev(options)
86
+ // },
87
+ // },
88
+ // studio: {
89
+ // shorthands: ['s'],
90
+ // description: `Studio`,
91
+ // flags: {
92
+ // '--help': Boolean,
93
+ // '--debug': Boolean,
94
+ // '--verbose': Boolean,
95
+ // '--local': Boolean,
96
+ // },
97
+ // async run() {
98
+ // const { _, ...flags } = arg(this.flags)
99
+ // const { studio } = await import('./studio')
100
+ // const options = await getOptions({
101
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
102
+ // })
103
+ // await studio(options, !flags['--local'])
104
+ // },
105
+ // },
80
106
  }
81
107
 
82
108
  type CommandDefinitions = typeof COMMAND_MAP
@@ -158,8 +184,12 @@ async function main() {
158
184
  process.exit(0)
159
185
  }
160
186
 
161
- await definition.run()
162
- console.log(`done`)
187
+ try {
188
+ await definition.run()
189
+ } catch (err: any) {
190
+ console.error(`Error running command: ${err.message}`)
191
+ }
192
+
163
193
  process.exit(0)
164
194
  }
165
195
 
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { CLIResolvedOptions } from '@tamagui/types'
4
+ import fs from 'fs-extra'
5
+
6
+ export async function generateThemes(
7
+ options: CLIResolvedOptions & {
8
+ inPath: string
9
+ outPath: string
10
+ }
11
+ ) {
12
+ require('esbuild-register/dist/node').register()
13
+ const requiredThemes = require(options.inPath)
14
+ const themes = requiredThemes['default'] || requiredThemes['themes']
15
+ const generatedThemes = generatedThemesToTypescript(themes)
16
+ await fs.writeFile(options.outPath, generatedThemes)
17
+ }
18
+
19
+ function generatedThemesToTypescript(themes: Record<string, any>) {
20
+ const deduped = new Map<string, Object>()
21
+ const dedupedToNames = new Map<string, string[]>()
22
+
23
+ for (const name in themes) {
24
+ const theme = themes[name]
25
+ const key = JSON.stringify(theme)
26
+ if (deduped.has(key)) {
27
+ dedupedToNames.set(key, [...dedupedToNames.get(key)!, name])
28
+ } else {
29
+ deduped.set(key, theme)
30
+ dedupedToNames.set(key, [name])
31
+ }
32
+ }
33
+
34
+ const baseTypeString = `type Theme = {
35
+ ${Object.entries(themes.light || themes[Object.keys(themes)[0]])
36
+ .map(([k]) => {
37
+ return ` ${k}: string;\n`
38
+ })
39
+ .join('')}
40
+ }`
41
+
42
+ let themesString = `${baseTypeString}\n`
43
+
44
+ deduped.forEach((theme) => {
45
+ const key = JSON.stringify(theme)
46
+ const [baseName, ...restNames] = dedupedToNames.get(key)!
47
+ const baseTheme = `export const ${baseName} = ${objectToJsString(theme)} as Theme`
48
+ themesString += `\n${baseTheme}`
49
+
50
+ if (restNames.length) {
51
+ const duplicateThemes = restNames.map(
52
+ (name) => `export const ${name} = ${baseName} as Theme`
53
+ )
54
+ themesString += `\n\n` + duplicateThemes.join('\n')
55
+ }
56
+ })
57
+
58
+ return themesString
59
+ }
60
+
61
+ function objectToJsString(obj: Object, indent = 4) {
62
+ const whitespace = new Array(indent).fill(' ').join('')
63
+ return `{
64
+ ${Object.entries(obj)
65
+ .map(([k, v]) => `${whitespace}${k}: '${v}'`)
66
+ .join(',\n')}
67
+ }`
68
+ }
package/src/utils.ts CHANGED
@@ -17,6 +17,12 @@ export async function getOptions({
17
17
  ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`)
18
18
  const dotDir = join(root, '.tamagui')
19
19
  const pkgJson = await readJSON(join(root, 'package.json'))
20
+ let config = ''
21
+ try {
22
+ config = await getDefaultTamaguiConfigPath()
23
+ } catch {
24
+ // ok
25
+ }
20
26
 
21
27
  return {
22
28
  mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
@@ -27,7 +33,7 @@ export async function getOptions({
27
33
  tsconfigPath,
28
34
  tamaguiOptions: {
29
35
  components: ['tamagui'],
30
- config: await getDefaultTamaguiConfigPath(),
36
+ config,
31
37
  ...tamaguiOptions,
32
38
  },
33
39
  paths: {
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAInD,eAAO,MAAM,KAAK,YAAmB,kBAAkB,kBAoDtD,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAInD,eAAO,MAAM,KAAK,YAAmB,kBAAkB,kBAkDtD,CAAA"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { CLIResolvedOptions } from '@tamagui/types';
3
+ export declare function generateThemes(options: CLIResolvedOptions & {
4
+ inPath: string;
5
+ outPath: string;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=generate-themes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAInE,wBAAsB,UAAU,CAAC,EAC/B,IAAoB,EACpB,YAA8B,EAC9B,cAAc,EACd,IAAI,EACJ,KAAK,GACN,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwB5D;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAKzD;AAiBD,eAAO,MAAM,WAAW,SAChB,QAAQ,cAAc,CAAC,KAC5B,QAAQ,kBAAkB,GAAG,IAAI,CAUnC,CAAA;AAID,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,QAE7C;AAED,wBAAgB,UAAU,SAEzB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAInE,wBAAsB,UAAU,CAAC,EAC/B,IAAoB,EACpB,YAA8B,EAC9B,cAAc,EACd,IAAI,EACJ,KAAK,GACN,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8B5D;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAKzD;AAiBD,eAAO,MAAM,WAAW,SAChB,QAAQ,cAAc,CAAC,KAC5B,QAAQ,kBAAkB,GAAG,IAAI,CAUnC,CAAA;AAID,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,QAE7C;AAED,wBAAgB,UAAU,SAEzB"}