@tamagui/cli 1.100.6 → 1.101.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/add.js CHANGED
@@ -26,7 +26,8 @@ __export(add_exports, {
26
26
  installGeneratedPackage: () => installGeneratedPackage
27
27
  });
28
28
  module.exports = __toCommonJS(add_exports);
29
- var import_node_child_process = require("node:child_process"), import_node_fs = require("node:fs"), import_promises = require("node:fs/promises"), import_node_os = require("node:os"), import_node_path = __toESM(require("node:path")), import_chalk = __toESM(require("chalk")), import_change_case = require("change-case"), import_fs_extra = require("fs-extra"), import_marked = require("marked"), import_marked_terminal = __toESM(require("marked-terminal")), import_opener = __toESM(require("opener")), import_prompts = __toESM(require("prompts"));
29
+ var import_node_child_process = require("node:child_process"), import_node_fs = require("node:fs"), import_promises = require("node:fs/promises"), import_node_os = require("node:os"), import_node_path = __toESM(require("node:path")), import_chalk = __toESM(require("chalk")), import_change_case = require("change-case"), import_fs_extra = __toESM(require("fs-extra")), import_marked = require("marked"), import_marked_terminal = __toESM(require("marked-terminal")), import_opener = __toESM(require("opener")), import_prompts = __toESM(require("prompts"));
30
+ const { copy, ensureDir, readFileSync } = import_fs_extra.default;
30
31
  import_marked.marked.setOptions({
31
32
  headerIds: !1,
32
33
  mangle: !1,
@@ -38,7 +39,7 @@ const home = (0, import_node_os.homedir)(), tamaguiDir = import_node_path.defaul
38
39
  `${type ? `Type "${type}" is Not supported.` : "No type provided."} Supported types: ${generatedPackageTypes.join(", ")}`
39
40
  );
40
41
  const repoName = type === "font" ? "tamagui-google-fonts" : "tamagui-iconify";
41
- console.info(`Setting up ${import_chalk.default.blueBright(tamaguiDir)}...`), await (0, import_fs_extra.ensureDir)(tamaguiDir);
42
+ console.info(`Setting up ${import_chalk.default.blueBright(tamaguiDir)}...`), await ensureDir(tamaguiDir);
42
43
  const tempDir = import_node_path.default.join(tamaguiDir, repoName);
43
44
  (0, import_node_fs.existsSync)(tempDir) && (0, import_node_fs.rmSync)(tempDir, { recursive: !0 });
44
45
  try {
@@ -86,8 +87,8 @@ const home = (0, import_node_os.homedir)(), tamaguiDir = import_node_path.defaul
86
87
  )
87
88
  );
88
89
  const finalDir = import_node_path.default.join(packagesPath, packageName);
89
- await (0, import_fs_extra.ensureDir)(packagesPath), await (0, import_fs_extra.copy)(packageDir, finalDir), console.info(), console.info(import_chalk.default.green(`Created the package under ${finalDir}`)), console.info();
90
+ await ensureDir(packagesPath), await copy(packageDir, finalDir), console.info(), console.info(import_chalk.default.green(`Created the package under ${finalDir}`)), console.info();
90
91
  const readmePath = import_node_path.default.join(finalDir, "README.md");
91
- (0, import_node_fs.existsSync)(readmePath) && console.info(import_marked.marked.parse((0, import_fs_extra.readFileSync)(readmePath).toString()));
92
+ (0, import_node_fs.existsSync)(readmePath) && console.info(import_marked.marked.parse(readFileSync(readmePath).toString()));
92
93
  };
93
94
  //# sourceMappingURL=add.js.map
package/dist/add.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/add.ts"],
4
- "mappings": "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",
5
- "names": ["TerminalRenderer", "path", "chalk", "open", "prompts"]
4
+ "mappings": "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",
5
+ "names": ["FSExtra", "TerminalRenderer", "path", "chalk", "open", "prompts"]
6
6
  }
package/dist/add.mjs ADDED
@@ -0,0 +1,64 @@
1
+ import { execSync } from "node:child_process";
2
+ import { existsSync, rmSync } from "node:fs";
3
+ import { readFile } from "node:fs/promises";
4
+ import { homedir } from "node:os";
5
+ import path from "node:path";
6
+ import chalk from "chalk";
7
+ import { pascalCase } from "change-case";
8
+ import FSExtra from "fs-extra";
9
+ import { marked } from "marked";
10
+ import TerminalRenderer from "marked-terminal";
11
+ import open from "opener";
12
+ import prompts from "prompts";
13
+ const {
14
+ copy,
15
+ ensureDir,
16
+ readFileSync
17
+ } = FSExtra;
18
+ marked.setOptions({
19
+ headerIds: !1,
20
+ mangle: !1,
21
+ renderer: new TerminalRenderer()
22
+ });
23
+ const home = homedir(),
24
+ tamaguiDir = path.join(home, ".tamagui"),
25
+ generatedPackageTypes = ["font", "icon"],
26
+ installGeneratedPackage = async (type, packagesPath) => {
27
+ if (packagesPath = packagesPath || path.join(process.cwd(), "packages"), !generatedPackageTypes.includes(type)) throw new Error(`${type ? `Type "${type}" is Not supported.` : "No type provided."} Supported types: ${generatedPackageTypes.join(", ")}`);
28
+ const repoName = type === "font" ? "tamagui-google-fonts" : "tamagui-iconify";
29
+ console.info(`Setting up ${chalk.blueBright(tamaguiDir)}...`), await ensureDir(tamaguiDir);
30
+ const tempDir = path.join(tamaguiDir, repoName);
31
+ existsSync(tempDir) && rmSync(tempDir, {
32
+ recursive: !0
33
+ });
34
+ try {
35
+ process.chdir(tamaguiDir);
36
+ try {
37
+ console.info("Attempting to clone with SSH"), execSync(`git clone -n --depth=1 --branch generated --filter=tree:0 git@github.com:tamagui/${repoName}.git`);
38
+ } catch {
39
+ console.info("SSH failed - Attempting to c lone with HTTPS"), execSync(`git clone -n --depth=1 --branch generated --filter=tree:0 https://github.com/tamagui/${repoName}`);
40
+ }
41
+ process.chdir(tempDir), execSync(["git sparse-checkout set --no-cone meta", "git checkout"].join(" && "));
42
+ } catch (error) {
43
+ if (error instanceof Error) throw error?.stderr.includes("Repository not found") && (console.info(chalk.yellow(`You don't have access to Tamagui ${type === "font" ? "fonts" : "icons"}. Check \u{1F961} Tamagui Takeout (https://tamagui.dev/takeout) for more info.`)), open("https://tamagui.dev/takeout"), process.exit(0)), error;
44
+ }
45
+ const meta = JSON.parse(await readFile(path.join(tamaguiDir, repoName, "meta", "data.json")).then(r => r.toString()));
46
+ console.info(chalk.gray("Use \u21E7/\u21E9 to navigate. Use tab to cycle the result. Use Page Up/Page Down (on Mac: fn + \u21E7 / \u21E9) to change page. Hit enter to select the highlighted item below the prompt."));
47
+ const result = await prompts({
48
+ name: "packageName",
49
+ type: "autocomplete",
50
+ message: type === "icon" ? "Pick an icon pack:" : type === "font" ? "Pick a font:" : "Pick one:",
51
+ choices: Object.entries(meta).map(([slug, data]) => ({
52
+ title: type === "font" ? `${slug}: ${data.weights.length} weights, ${data.styles.length} styles, ${data.subsets.length} subsets (https://fonts.google.com/specimen/${pascalCase(slug)})` : `${data.name}: ${data.total} icons, ${data.license.title} license (${data.author.url})`,
53
+ value: slug
54
+ }))
55
+ }),
56
+ packageName = `${type}-${result.packageName}`,
57
+ packageDir = path.join(tempDir, "packages", packageName);
58
+ process.chdir(tempDir), execSync([`git sparse-checkout set --no-cone packages/${packageName}`, "git checkout"].join(" && "));
59
+ const finalDir = path.join(packagesPath, packageName);
60
+ await ensureDir(packagesPath), await copy(packageDir, finalDir), console.info(), console.info(chalk.green(`Created the package under ${finalDir}`)), console.info();
61
+ const readmePath = path.join(finalDir, "README.md");
62
+ existsSync(readmePath) && console.info(marked.parse(readFileSync(readmePath).toString()));
63
+ };
64
+ export { generatedPackageTypes, installGeneratedPackage };
@@ -27,7 +27,7 @@ __export(add_exports, {
27
27
  installGeneratedPackage: () => installGeneratedPackage
28
28
  });
29
29
  module.exports = __toCommonJS(add_exports);
30
- var import_node_child_process = require("node:child_process"), import_node_fs = require("node:fs"), import_promises = require("node:fs/promises"), import_node_os = require("node:os"), import_node_path = __toESM(require("node:path")), import_chalk = __toESM(require("chalk")), import_change_case = require("change-case"), import_fs_extra = require("fs-extra"), import_marked = require("marked"), import_marked_terminal = __toESM(require("marked-terminal")), import_opener = __toESM(require("opener")), import_prompts = __toESM(require("prompts"));
30
+ var import_node_child_process = require("node:child_process"), import_node_fs = require("node:fs"), import_promises = require("node:fs/promises"), import_node_os = require("node:os"), import_node_path = __toESM(require("node:path")), import_chalk = __toESM(require("chalk")), import_change_case = require("change-case"), import_fs_extra = __toESM(require("fs-extra")), import_marked = require("marked"), import_marked_terminal = __toESM(require("marked-terminal")), import_opener = __toESM(require("opener")), import_prompts = __toESM(require("prompts"));
31
31
  function _array_like_to_array(arr, len) {
32
32
  (len == null || len > arr.length) && (len = arr.length);
33
33
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -182,6 +182,7 @@ function _ts_generator(thisArg, body) {
182
182
  };
183
183
  }
184
184
  }
185
+ var copy = import_fs_extra.default.copy, ensureDir = import_fs_extra.default.ensureDir, readFileSync = import_fs_extra.default.readFileSync;
185
186
  import_marked.marked.setOptions({
186
187
  headerIds: !1,
187
188
  mangle: !1,
@@ -200,7 +201,7 @@ var home = (0, import_node_os.homedir)(), tamaguiDir = import_node_path.default.
200
201
  throw new Error("".concat(type ? 'Type "'.concat(type, '" is Not supported.') : "No type provided.", " Supported types: ").concat(generatedPackageTypes.join(", ")));
201
202
  return repoName = type === "font" ? "tamagui-google-fonts" : "tamagui-iconify", console.info("Setting up ".concat(import_chalk.default.blueBright(tamaguiDir), "...")), [
202
203
  4,
203
- (0, import_fs_extra.ensureDir)(tamaguiDir)
204
+ ensureDir(tamaguiDir)
204
205
  ];
205
206
  case 1:
206
207
  _state.sent(), tempDir = import_node_path.default.join(tamaguiDir, repoName), (0, import_node_fs.existsSync)(tempDir) && (0, import_node_fs.rmSync)(tempDir, {
@@ -251,15 +252,15 @@ var home = (0, import_node_os.homedir)(), tamaguiDir = import_node_path.default.
251
252
  "git checkout"
252
253
  ].join(" && ")), finalDir = import_node_path.default.join(packagesPath, packageName), [
253
254
  4,
254
- (0, import_fs_extra.ensureDir)(packagesPath)
255
+ ensureDir(packagesPath)
255
256
  ];
256
257
  case 4:
257
258
  return _state.sent(), [
258
259
  4,
259
- (0, import_fs_extra.copy)(packageDir, finalDir)
260
+ copy(packageDir, finalDir)
260
261
  ];
261
262
  case 5:
262
- return _state.sent(), console.info(), console.info(import_chalk.default.green("Created the package under ".concat(finalDir))), console.info(), readmePath = import_node_path.default.join(finalDir, "README.md"), (0, import_node_fs.existsSync)(readmePath) && console.info(import_marked.marked.parse((0, import_fs_extra.readFileSync)(readmePath).toString())), [
263
+ return _state.sent(), console.info(), console.info(import_chalk.default.green("Created the package under ".concat(finalDir))), console.info(), readmePath = import_node_path.default.join(finalDir, "README.md"), (0, import_node_fs.existsSync)(readmePath) && console.info(import_marked.marked.parse(readFileSync(readmePath).toString())), [
263
264
  2
264
265
  ];
265
266
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/Users/n8/tamagui/packages/cli/src/add.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAAyB,+BACzB,iBAAmC,oBACnC,kBAAyB,6BACzB,iBAAwB,oBACxB,mBAAiB,+BAEjB,eAAkB,2BAClB,qBAA2B,wBAC3B,kBAA8C,qBAC9C,gBAAuB,mBACvB,yBAA6B,qCAC7B,gBAAiB,4BACjB,iBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpBA,qBAAOC,WAAW;EAChBC,WAAW;EACXC,QAAQ;EACRC,UAAU,IAAIC,uBAAAA,QAAAA;AAChB,CAAA;AAEA,IAAMC,WAAOC,wBAAAA,GACPC,aAAaC,iBAAAA,QAAKC,KAAKJ,MAAM,UAAA,GAEtBK,wBAAwB;EAAC;EAAQ;GACjCC,0BAAAA,WAAAA;aAA0B,oBAAA,SAAOC,MAAcC,cAAAA;QASpDC,UAIAC,SAqCAC,MAAAA,GAWAC,QAoBAC,aACAC,YAOAC,UAQAC;;;;AA/FN,cADAR,eAAeA,gBAAgBL,iBAAAA,QAAKC,KAAKa,QAAQC,IAAG,GAAI,UAAA,GACpD,CAACb,sBAAsBc,SAASZ,IAAAA;AAClC,kBAAM,IAAIa,MACP,GAEoBf,OADnBE,OAAQ,SAAa,OAALA,MAAK,qBAAA,IAAwB,qBAC9C,oBAAA,EAAqD,OAAjCF,sBAAsBD,KAAK,IAAA,CAAA,CAAA;AAG9CK,4BAAWF,SAAS,SAAS,yBAAyB,mBAC5Dc,QAAQC,KAAM,cAA0C,OAA7BC,aAAAA,QAAMC,WAAWtB,UAAAA,GAAY,KAAA,CAAA,GAExD;;gBAAMuB,2BAAUvB,UAAAA;;;AAAhB,iBAAA,KAAA,GACMQ,UAAUP,iBAAAA,QAAKC,KAAKF,YAAYO,QAAAA,OAClCiB,2BAAWhB,OAAAA,SACbiB,uBAAOjB,SAAS;YAAEkB,WAAW;UAAK,CAAA;AAEpC,cAAI;AACFX,oBAAQY,MAAM3B,UAAAA;AACd,gBAAI;AACFmB,sBAAQC,KAAK,8BAAA,OACbQ,oCACG,qFAA6F,OAATrB,UAAS,MAAA,CAAA;YAElG,QAAgB;AACdY,sBAAQC,KAAK,+CAAA,OACbQ,oCACG,wFAAgG,OAATrB,QAAAA,CAAAA;YAE5F;AAEAQ,oBAAQY,MAAMnB,OAAAA,OACdoB,oCAAS;cAAE;cAA0C;cAAe1B,KAAK,MAAA,CAAA;UAC3E,SAAS2B,OAAO;AACd,gBAAS,YAALA,OAAiBX,KAAAA;AACnB,oBAAKW,SAAAA,QAAAA,MAAeC,OAAOb,SAAS,sBAAA,MAClCE,QAAQC,KACNC,aAAAA,QAAMU,OACH,oCAEA,OADC1B,SAAS,SAAS,UAAU,SAC7B,gFAAA,CAAA,CAAA,OAGL2B,cAAAA,SAAK,6BAAA,GACLjB,QAAQkB,KAAK,CAAA,IAETJ;UAEV;qBAEaK,KAAKC,OAChB;;gBAAMC,0BAASnC,iBAAAA,QAAKC,KAAKF,YAAYO,UAAW,QAAQ,WAAA,CAAA,EAAa8B,KAAK,SAACC,GAAAA;qBACzEA,EAAEC,SAAQ;;;;AAFR9B,wBAAOyB,EAAAA,MAAAA,MAAAA;YACX,OAAA,KAAA;cAKFf,QAAQC,KACNC,aAAAA,QAAMmB,KACH,6LAAA,CAAA,GAGU;;gBAAMC,eAAAA,SAAQ;cAC3BC,MAAM;cACNrC,MAAM;cACNsC,SACEtC,SAAS,SACJ,uBACDA,SAAS,SACN,iBACA;cACTuC,SAASC,OAAOC,QAAarC,IAAAA,EAAMsC,IAAI,SAAA,OAAA;yDAAEC,OAAAA,OAAAA,CAAAA,GAAMC,OAAAA,OAAAA,CAAAA;uBAAW;kBACxDC,OACE7C,SAAS,SACJ,GAAW4C,OAATD,MAAK,IAAA,EAAoCC,OAAhCA,KAAKE,QAAQC,QAAO,YAAA,EAC9BH,OAD0CA,KAAKI,OAAOD,QAAO,WAAA,EAEhBE,OAD7CL,KAAKM,QAAQH,QACd,8CAAA,EAA+D,WAAjBE,+BAAWN,IAAAA,GAAM,GAAA,IAC/D,GAAgBC,OAAdA,KAAKP,MAAK,IAAA,EAAyBO,OAArBA,KAAKO,OAAM,UAAA,EAAyCP,OAA/BA,KAAKQ,QAAQP,OAAM,YAAA,EAA4B,OAAhBD,KAAKS,OAAOC,KAAI,GAAA;kBAC3FC,OAAOZ;gBACT;;YACF,CAAA;;;AAlBMtC,0BAAS,OAAA,KAAA,GAoBTC,cAAe,GAAUD,OAARL,MAAK,GAAA,EAAsB,OAAnBK,OAAOC,WAAW,GAC3CC,aAAaX,iBAAAA,QAAKC,KAAKM,SAAS,YAAYG,WAAAA,GAClDI,QAAQY,MAAMnB,OAAAA,OACdoB,oCACE;YAAE,8CAAyD,OAAZjB,WAAAA;YAAgB;YAAeT,KAC5E,MAAA,CAAA,GAGEW,WAAWZ,iBAAAA,QAAKC,KAAKI,cAAcK,WAAAA,GACzC;;gBAAMY,2BAAUjB,YAAAA;;;AAAhB,wBAAA,KAAA,GACA;;gBAAMuD,sBAAKjD,YAAYC,QAAAA;;;AAAvB,wBAAA,KAAA,GAEAM,QAAQC,KAAI,GACZD,QAAQC,KAAKC,aAAAA,QAAMyC,MAAO,6BAAqC,OAATjD,QAAAA,CAAAA,CAAAA,GACtDM,QAAQC,KAAI,GAENN,aAAab,iBAAAA,QAAKC,KAAKW,UAAU,WAAA,OACnCW,2BAAWV,UAAAA,KACbK,QAAQC,KAAK5B,qBAAO2C,UAAM4B,8BAAajD,UAAAA,EAAYyB,SAAQ,CAAA,CAAA;;;;;EAE/D,CAAA;kBArG8ClC,MAAcC,cAAAA;;;;",
5
- "names": ["marked", "setOptions", "headerIds", "mangle", "renderer", "TerminalRenderer", "home", "homedir", "tamaguiDir", "path", "join", "generatedPackageTypes", "installGeneratedPackage", "type", "packagesPath", "repoName", "tempDir", "meta", "result", "packageName", "packageDir", "finalDir", "readmePath", "process", "cwd", "includes", "Error", "console", "info", "chalk", "blueBright", "ensureDir", "existsSync", "rmSync", "recursive", "chdir", "execSync", "error", "stderr", "yellow", "open", "exit", "JSON", "parse", "readFile", "then", "r", "toString", "gray", "prompts", "name", "message", "choices", "Object", "entries", "map", "slug", "data", "title", "weights", "length", "styles", "pascalCase", "subsets", "total", "license", "author", "url", "value", "copy", "green", "readFileSync"]
4
+ "mappings": "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",
5
+ "names": ["copy", "FSExtra", "ensureDir", "readFileSync", "marked", "setOptions", "headerIds", "mangle", "renderer", "TerminalRenderer", "home", "homedir", "tamaguiDir", "path", "join", "generatedPackageTypes", "installGeneratedPackage", "type", "packagesPath", "repoName", "tempDir", "meta", "result", "packageName", "packageDir", "finalDir", "readmePath", "process", "cwd", "includes", "Error", "console", "info", "chalk", "blueBright", "existsSync", "rmSync", "recursive", "chdir", "execSync", "error", "stderr", "yellow", "open", "exit", "JSON", "parse", "readFile", "then", "r", "toString", "gray", "prompts", "name", "message", "choices", "Object", "entries", "map", "slug", "data", "title", "weights", "length", "styles", "pascalCase", "subsets", "total", "license", "author", "url", "value", "green"]
6
6
  }
package/dist/build.js CHANGED
@@ -25,31 +25,46 @@ __export(build_exports, {
25
25
  build: () => build
26
26
  });
27
27
  module.exports = __toCommonJS(build_exports);
28
- var import_path = require("path"), import_static = require("@tamagui/static"), import_chokidar = __toESM(require("chokidar")), import_fs_extra = require("fs-extra");
28
+ var import_node_path = require("node:path"), import_static = require("@tamagui/static"), import_chokidar = __toESM(require("chokidar")), import_fs_extra = require("fs-extra"), import_micromatch = __toESM(require("micromatch"));
29
29
  const build = async (options) => {
30
- const entry = options.pkgJson.source;
31
- if (!entry)
32
- throw new Error('Must add "source" to package.json pointing to your source directory');
33
- const sourceDir = (0, import_path.dirname)(entry), promises = [], targets = ["web"];
34
- await new Promise((res) => {
35
- import_chokidar.default.watch(sourceDir, {
30
+ const sourceDir = options.dir ?? ".", promises = [], buildOptions = (0, import_static.loadTamaguiBuildConfigSync)(options.tamaguiOptions), platform = options.target ?? "web";
31
+ process.env.TAMAGUI_TARGET = platform;
32
+ const tamaguiOptions = {
33
+ ...buildOptions,
34
+ platform
35
+ };
36
+ await (0, import_static.loadTamagui)(tamaguiOptions), await new Promise((res) => {
37
+ import_chokidar.default.watch(`${sourceDir}/**/*.tsx`, {
36
38
  // persistent: true,
37
39
  }).on("add", (relativePath) => {
38
- const sourcePath = (0, import_path.resolve)(process.cwd(), relativePath);
39
- promises.push(
40
+ if (options.exclude && import_micromatch.default.contains(relativePath, options.exclude) || options.include && !import_micromatch.default.contains(relativePath, options.include))
41
+ return;
42
+ const sourcePath = (0, import_node_path.resolve)(process.cwd(), relativePath);
43
+ console.info(` [tamagui] optimizing ${sourcePath}`), promises.push(
40
44
  (async () => {
41
- await Promise.all(
42
- targets.map(async (target) => {
43
- process.env.TAMAGUI_TARGET = target, options.debug && (process.env.NODE_ENV ||= "development");
44
- const source = await (0, import_fs_extra.readFile)(sourcePath, "utf-8"), extractor = (0, import_static.createExtractor)(), out = await (0, import_static.extractToClassNames)({
45
- extractor,
46
- source,
47
- sourcePath,
48
- options: options.tamaguiOptions,
49
- shouldPrintDebug: options.debug || !1
50
- });
51
- })
52
- );
45
+ options.debug && (process.env.NODE_ENV ||= "development");
46
+ const source = await (0, import_fs_extra.readFile)(sourcePath, "utf-8");
47
+ if (platform === "web") {
48
+ const extractor = (0, import_static.createExtractor)({
49
+ platform
50
+ }), out2 = await (0, import_static.extractToClassNames)({
51
+ extractor,
52
+ source,
53
+ sourcePath,
54
+ options: buildOptions,
55
+ shouldPrintDebug: options.debug || !1
56
+ });
57
+ if (!out2)
58
+ return;
59
+ const cssName = "_" + (0, import_node_path.basename)(sourcePath, (0, import_node_path.extname)(sourcePath)), stylePath = (0, import_node_path.join)((0, import_node_path.dirname)(sourcePath), cssName + ".css"), code = `import "./${cssName}.css"
60
+ ${out2.js}`;
61
+ await Promise.all([
62
+ (0, import_fs_extra.writeFile)(sourcePath, code, "utf-8"),
63
+ (0, import_fs_extra.writeFile)(stylePath, out2.styles, "utf-8")
64
+ ]);
65
+ }
66
+ const out = (0, import_static.extractToNative)(sourcePath, source, tamaguiOptions);
67
+ await (0, import_fs_extra.writeFile)(sourcePath, out.code, "utf-8");
53
68
  })()
54
69
  );
55
70
  }).on("ready", () => {
package/dist/build.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/build.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiC,iBAEjC,gBAAqD,4BAErD,kBAAqB,8BACrB,kBAAyB;AAElB,MAAM,QAAQ,OAAO,YAAgC;AAG1D,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,qEAAqE;AAEvF,QAAM,gBAAY,qBAAQ,KAAK,GACzB,WAA4B,CAAC,GAC7B,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;AAC5B,sBAAQ,IAAI,iBAAiB,QACzB,QAAQ,UACV,QAAQ,IAAI,aAAa;AAE3B,oBAAM,SAAS,UAAM,0BAAS,YAAY,OAAO,GAC3C,gBAAY,+BAAgB,GAC5B,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,GAED,MAAM,QAAQ,IAAI,QAAQ;AAC5B;",
5
- "names": ["chokidar"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0D,sBAC1D,gBAMO,4BAEP,kBAAqB,8BACrB,kBAAoC,qBACpC,oBAAuB;AAEhB,MAAM,QAAQ,OACnB,YAMG;AACH,QAAM,YAAY,QAAQ,OAAO,KAC3B,WAA4B,CAAC,GAE7B,mBAAe,0CAA2B,QAAQ,cAAc,GAChE,WAAW,QAAQ,UAAU;AACnC,UAAQ,IAAI,iBAAiB;AAE7B,QAAM,iBAAiB;AAAA,IACrB,GAAG;AAAA,IACH;AAAA,EACF;AAGA,YAAM,2BAAY,cAAc,GAEhC,MAAM,IAAI,QAAc,CAAC,QAAQ;AAC/B,oBAAAA,QAEG,MAAM,GAAG,SAAS,aAAa;AAAA;AAAA,IAEhC,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAM3B,UALI,QAAQ,WACN,kBAAAC,QAAW,SAAS,cAAc,QAAQ,OAAO,KAInD,QAAQ,WACN,CAAC,kBAAAA,QAAW,SAAS,cAAc,QAAQ,OAAO;AACpD;AAIJ,YAAM,iBAAa,0BAAQ,QAAQ,IAAI,GAAG,YAAY;AACtD,cAAQ,KAAK,yBAAyB,UAAU,EAAE,GAElD,SAAS;AAAA,SACN,YAAY;AACX,UAAI,QAAQ,UACV,QAAQ,IAAI,aAAa;AAE3B,gBAAM,SAAS,UAAM,0BAAS,YAAY,OAAO;AAEjD,cAAI,aAAa,OAAO;AACtB,kBAAM,gBAAY,+BAAgB;AAAA,cAChC;AAAA,YACF,CAAC,GAEKC,OAAM,UAAM,mCAAoB;AAAA,cACpC;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAS;AAAA,cACT,kBAAkB,QAAQ,SAAS;AAAA,YACrC,CAAC;AAED,gBAAI,CAACA;AACH;AAGF,kBAAM,UAAU,UAAM,2BAAS,gBAAY,0BAAQ,UAAU,CAAC,GACxD,gBAAY,2BAAK,0BAAQ,UAAU,GAAG,UAAU,MAAM,GACtD,OAAO,aAAa,OAAO;AAAA,EAAUA,KAAI,EAAE;AAEjD,kBAAM,QAAQ,IAAI;AAAA,kBAChB,2BAAU,YAAY,MAAM,OAAO;AAAA,kBACnC,2BAAU,WAAWA,KAAI,QAAQ,OAAO;AAAA,YAC1C,CAAC;AAAA,UACH;AAGA,gBAAM,UAAM,+BAAgB,YAAY,QAAQ,cAAc;AAC9D,oBAAM,2BAAU,YAAY,IAAI,MAAM,OAAO;AAAA,QAC/C,GAAG;AAAA,MACL;AAAA,IACF,CAAC,EACA,GAAG,SAAS,MAAM;AACjB,UAAI;AAAA,IACN,CAAC;AAAA,EACL,CAAC,GAED,MAAM,QAAQ,IAAI,QAAQ;AAC5B;",
5
+ "names": ["chokidar", "MicroMatch", "out"]
6
6
  }
package/dist/build.mjs ADDED
@@ -0,0 +1,37 @@
1
+ import { resolve } from "node:path";
2
+ import { createExtractor, extractToClassNames, loadTamaguiBuildConfigSync } from "@tamagui/static";
3
+ import chokidar from "chokidar";
4
+ import { readFile } from "fs-extra";
5
+ import MicroMatch from "micromatch";
6
+ const build = async options => {
7
+ const sourceDir = options.dir ?? ".",
8
+ promises = [],
9
+ targets = ["web"],
10
+ buildOptions = loadTamaguiBuildConfigSync(options.tamaguiOptions);
11
+ await new Promise(res => {
12
+ chokidar.watch(sourceDir, {
13
+ // persistent: true,
14
+ }).on("add", relativePath => {
15
+ if (options.exclude && MicroMatch.contains(relativePath, options.exclude) || options.include && !MicroMatch.contains(relativePath, options.include)) return;
16
+ const sourcePath = resolve(process.cwd(), relativePath);
17
+ promises.push((async () => {
18
+ await Promise.all(targets.map(async target => {
19
+ process.env.TAMAGUI_TARGET = target, options.debug && (process.env.NODE_ENV ||= "development");
20
+ const source = await readFile(sourcePath, "utf-8"),
21
+ extractor = createExtractor(),
22
+ out = await extractToClassNames({
23
+ extractor,
24
+ source,
25
+ sourcePath,
26
+ options: buildOptions,
27
+ shouldPrintDebug: options.debug || !1
28
+ });
29
+ console.log("go", out);
30
+ }));
31
+ })());
32
+ }).on("ready", () => {
33
+ res();
34
+ });
35
+ }), await Promise.all(promises);
36
+ };
37
+ export { build };
@@ -26,7 +26,7 @@ __export(build_exports, {
26
26
  build: () => build
27
27
  });
28
28
  module.exports = __toCommonJS(build_exports);
29
- var import_path = require("path"), import_static = require("@tamagui/static"), import_chokidar = __toESM(require("chokidar")), import_fs_extra = require("fs-extra");
29
+ var import_node_path = require("node:path"), import_static = require("@tamagui/static"), import_chokidar = __toESM(require("chokidar")), import_fs_extra = require("fs-extra"), import_micromatch = __toESM(require("micromatch"));
30
30
  function asyncGeneratorStep(gen, resolve2, reject, _next, _throw, key, arg) {
31
31
  try {
32
32
  var info = gen[key](arg), value = info.value;
@@ -51,6 +51,40 @@ function _async_to_generator(fn) {
51
51
  });
52
52
  };
53
53
  }
54
+ function _define_property(obj, key, value) {
55
+ return key in obj ? Object.defineProperty(obj, key, {
56
+ value,
57
+ enumerable: !0,
58
+ configurable: !0,
59
+ writable: !0
60
+ }) : obj[key] = value, obj;
61
+ }
62
+ function _object_spread(target) {
63
+ for (var i = 1; i < arguments.length; i++) {
64
+ var source = arguments[i] != null ? arguments[i] : {}, ownKeys2 = Object.keys(source);
65
+ typeof Object.getOwnPropertySymbols == "function" && (ownKeys2 = ownKeys2.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
66
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
67
+ }))), ownKeys2.forEach(function(key) {
68
+ _define_property(target, key, source[key]);
69
+ });
70
+ }
71
+ return target;
72
+ }
73
+ function ownKeys(object, enumerableOnly) {
74
+ var keys = Object.keys(object);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var symbols = Object.getOwnPropertySymbols(object);
77
+ enumerableOnly && (symbols = symbols.filter(function(sym) {
78
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
79
+ })), keys.push.apply(keys, symbols);
80
+ }
81
+ return keys;
82
+ }
83
+ function _object_spread_props(target, source) {
84
+ return source = source ?? {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
85
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
86
+ }), target;
87
+ }
54
88
  function _ts_generator(thisArg, body) {
55
89
  var f, y, t, g, _ = {
56
90
  label: 0,
@@ -139,76 +173,85 @@ function _ts_generator(thisArg, body) {
139
173
  }
140
174
  var build = function() {
141
175
  var _ref = _async_to_generator(function(options) {
142
- var entry, sourceDir, promises, targets;
176
+ var _options_dir, sourceDir, promises, buildOptions, _options_target, platform, tamaguiOptions;
143
177
  return _ts_generator(this, function(_state) {
144
178
  switch (_state.label) {
145
179
  case 0:
146
- if (entry = options.pkgJson.source, !entry)
147
- throw new Error('Must add "source" to package.json pointing to your source directory');
148
- return sourceDir = (0, import_path.dirname)(entry), promises = [], targets = [
149
- "web"
150
- ], [
180
+ return sourceDir = (_options_dir = options.dir) !== null && _options_dir !== void 0 ? _options_dir : ".", promises = [], buildOptions = (0, import_static.loadTamaguiBuildConfigSync)(options.tamaguiOptions), platform = (_options_target = options.target) !== null && _options_target !== void 0 ? _options_target : "web", process.env.TAMAGUI_TARGET = platform, tamaguiOptions = _object_spread_props(_object_spread({}, buildOptions), {
181
+ platform
182
+ }), [
183
+ 4,
184
+ (0, import_static.loadTamagui)(tamaguiOptions)
185
+ ];
186
+ case 1:
187
+ return _state.sent(), [
151
188
  4,
152
189
  new Promise(function(res) {
153
- import_chokidar.default.watch(sourceDir, {}).on("add", function(relativePath) {
154
- var sourcePath = (0, import_path.resolve)(process.cwd(), relativePath);
155
- promises.push(_async_to_generator(function() {
156
- return _ts_generator(this, function(_state2) {
157
- switch (_state2.label) {
158
- case 0:
159
- return [
160
- 4,
161
- Promise.all(targets.map(function() {
162
- var _ref2 = _async_to_generator(function(target) {
163
- var _process_env, source, extractor, out;
164
- return _ts_generator(this, function(_state3) {
165
- switch (_state3.label) {
166
- case 0:
167
- return process.env.TAMAGUI_TARGET = target, options.debug && ((_process_env = process.env).NODE_ENV || (_process_env.NODE_ENV = "development")), [
168
- 4,
169
- (0, import_fs_extra.readFile)(sourcePath, "utf-8")
170
- ];
171
- case 1:
172
- return source = _state3.sent(), extractor = (0, import_static.createExtractor)(), [
173
- 4,
174
- (0, import_static.extractToClassNames)({
175
- extractor,
176
- source,
177
- sourcePath,
178
- options: options.tamaguiOptions,
179
- shouldPrintDebug: options.debug || !1
180
- })
181
- ];
182
- case 2:
183
- return out = _state3.sent(), [
184
- 2
185
- ];
186
- }
187
- });
188
- });
189
- return function(target) {
190
- return _ref2.apply(this, arguments);
191
- };
192
- }()))
193
- ];
194
- case 1:
195
- return _state2.sent(), [
196
- 2
197
- ];
198
- }
199
- });
200
- })());
190
+ import_chokidar.default.watch("".concat(sourceDir, "/**/*.tsx"), {}).on("add", function(relativePath) {
191
+ if (!(options.exclude && import_micromatch.default.contains(relativePath, options.exclude)) && !(options.include && !import_micromatch.default.contains(relativePath, options.include))) {
192
+ var sourcePath = (0, import_node_path.resolve)(process.cwd(), relativePath);
193
+ console.info(" [tamagui] optimizing ".concat(sourcePath)), promises.push(_async_to_generator(function() {
194
+ var _process_env, source, extractor, out, cssName, stylePath, code, out1;
195
+ return _ts_generator(this, function(_state2) {
196
+ switch (_state2.label) {
197
+ case 0:
198
+ return options.debug && ((_process_env = process.env).NODE_ENV || (_process_env.NODE_ENV = "development")), [
199
+ 4,
200
+ (0, import_fs_extra.readFile)(sourcePath, "utf-8")
201
+ ];
202
+ case 1:
203
+ return source = _state2.sent(), platform !== "web" ? [
204
+ 3,
205
+ 4
206
+ ] : (extractor = (0, import_static.createExtractor)({
207
+ platform
208
+ }), [
209
+ 4,
210
+ (0, import_static.extractToClassNames)({
211
+ extractor,
212
+ source,
213
+ sourcePath,
214
+ options: buildOptions,
215
+ shouldPrintDebug: options.debug || !1
216
+ })
217
+ ]);
218
+ case 2:
219
+ return out = _state2.sent(), out ? (cssName = "_" + (0, import_node_path.basename)(sourcePath, (0, import_node_path.extname)(sourcePath)), stylePath = (0, import_node_path.join)((0, import_node_path.dirname)(sourcePath), cssName + ".css"), code = 'import "./'.concat(cssName, `.css"
220
+ `).concat(out.js), [
221
+ 4,
222
+ Promise.all([
223
+ (0, import_fs_extra.writeFile)(sourcePath, code, "utf-8"),
224
+ (0, import_fs_extra.writeFile)(stylePath, out.styles, "utf-8")
225
+ ])
226
+ ]) : [
227
+ 2
228
+ ];
229
+ case 3:
230
+ _state2.sent(), _state2.label = 4;
231
+ case 4:
232
+ return out1 = (0, import_static.extractToNative)(sourcePath, source, tamaguiOptions), [
233
+ 4,
234
+ (0, import_fs_extra.writeFile)(sourcePath, out1.code, "utf-8")
235
+ ];
236
+ case 5:
237
+ return _state2.sent(), [
238
+ 2
239
+ ];
240
+ }
241
+ });
242
+ })());
243
+ }
201
244
  }).on("ready", function() {
202
245
  res();
203
246
  });
204
247
  })
205
248
  ];
206
- case 1:
249
+ case 2:
207
250
  return _state.sent(), [
208
251
  4,
209
252
  Promise.all(promises)
210
253
  ];
211
- case 2:
254
+ case 3:
212
255
  return _state.sent(), [
213
256
  2
214
257
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/Users/n8/tamagui/packages/cli/src/build.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAiC,iBAEjC,gBAAqD,4BAErD,kBAAqB,8BACrB,kBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElB,IAAMA,QAAAA,WAAAA;aAAQ,oBAAA,SAAOC,SAAAA;QAGpBC,OAIAC,WACAC,UACAC;;;;AALN,cADMH,QAAQD,QAAQK,QAAQC,QAC1B,CAACL;AACH,kBAAM,IAAIM,MAAO,qEAAA;AAEbL,iCAAYM,qBAAQP,KAAAA,GACpBE,WAAAA,CAAAA,GACAC,UAAAA;YAAW;aAEjB;;YAAM,IAAIK,QAAc,SAACC,KAAAA;AACvBC,8BAAAA,QAEGC,MAAMV,WAAW,CAElB,CAAA,EACCW,GAAG,OAAO,SAACC,cAAAA;AACV,oBAAMC,iBAAaC,qBAAQC,QAAQC,IAAG,GAAIJ,YAAAA;AAE1CX,yBAASgB,KACN,oBAAA,WAAA;;;;AACC,+BAAA;;0BAAMV,QAAQW,IACZhB,QAAQiB,IAAG,WAAA;wCAAC,oBAAA,SAAOC,QAAAA;kCAGfL,cAEIX,QACAiB,WACAC;;;;AANNP,mDAAQQ,IAAIC,iBAAiBJ,QACzBtB,QAAQ2B,WACVV,eAAAA,QAAQQ,KAAIG,aAAZX,aAAYW,WAAa,iBAEZ;;0CAAMC,0BAASd,YAAY,OAAA;;;AAApCT,oDAASwB,QAAA,KAAA,GACTP,gBAAYQ,+BAAAA,GACN;;0CAAMC,mCAAoB;wCACpCT;wCACAjB;wCACAS;wCACAf,SAASA,QAAQiC;wCACjBC,kBAAkBlC,QAAQ2B,SAAS;sCACrC,CAAA;;;AANMH,iDAAMM,QAAA,KAAA;;;;;4BASd,CAAA;4CAhBmBR,QAAAA;;;;;;AADrB,+BAAAQ,QAAA,KAAA;;;;;gBAmBF,CAAA,EAAA,CAAA;cAEJ,CAAA,EACCjB,GAAG,SAAS,WAAA;AACXH,oBAAAA;cACF,CAAA;YACJ,CAAA;;;AApCA,wBAAA,KAAA,GAsCA;;YAAMD,QAAQW,IAAIjB,QAAAA;;;AAAlB,wBAAA,KAAA;;;;;EACF,CAAA;kBAlD4BH,SAAAA;;;;",
5
- "names": ["build", "options", "entry", "sourceDir", "promises", "targets", "pkgJson", "source", "Error", "dirname", "Promise", "res", "chokidar", "watch", "on", "relativePath", "sourcePath", "resolve", "process", "cwd", "push", "all", "map", "target", "extractor", "out", "env", "TAMAGUI_TARGET", "debug", "NODE_ENV", "readFile", "_state", "createExtractor", "extractToClassNames", "tamaguiOptions", "shouldPrintDebug"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAA0D,sBAC1D,gBAMO,4BAEP,kBAAqB,8BACrB,kBAAoC,qBACpC,oBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhB,IAAMA,QAAAA,WAAAA;aAAQ,oBAAA,SACnBC,SAAAA;QAOkBA,cAAZC,WACAC,UAEAC,cACWH,iBAAXI,UAGAC;;;;AAPAJ,8BAAYD,eAAAA,QAAQM,SAAG,QAAXN,iBAAAA,SAAAA,eAAe,KAC3BE,WAAAA,CAAAA,GAEAC,mBAAeI,0CAA2BP,QAAQK,cAAc,GAChED,YAAWJ,kBAAAA,QAAQQ,YAAM,QAAdR,oBAAAA,SAAAA,kBAAkB,OACnCS,QAAQC,IAAIC,iBAAiBP,UAEvBC,iBAAiB,qBAAA,eAAA,CAAA,GAClBF,YAAAA,GAAAA;YACHC;cAIF;;gBAAMQ,2BAAYP,cAAAA;;;AAAlB,wBAAA,KAAA,GAEA;;YAAM,IAAIQ,QAAc,SAACC,KAAAA;AACvBC,8BAAAA,QAEGC,MAAO,GAAY,OAAVf,WAAU,WAAA,GAAY,CAEhC,CAAA,EACCgB,GAAG,OAAO,SAACC,cAAAA;AACV,oBAAIlB,UAAQmB,WACNC,kBAAAA,QAAWC,SAASH,cAAclB,QAAQmB,OAAO,MAInDnB,UAAQsB,WACN,CAACF,kBAAAA,QAAWC,SAASH,cAAclB,QAAQsB,OAAO,IAKxD;sBAAMC,iBAAaC,0BAAQf,QAAQgB,IAAG,GAAIP,YAAAA;AAC1CQ,0BAAQC,KAAM,yBAAmC,OAAXJ,UAAAA,CAAAA,GAEtCrB,SAAS0B,KACN,oBAAA,WAAA;wBAEGnB,cAEIoB,QAGEC,WAIAC,KAYAC,SACAC,WACAC,MASFH;;;;AAjCN,iCAAI/B,QAAQmC,WACV1B,eAAAA,QAAQC,KAAI0B,aAAZ3B,aAAY2B,WAAa,iBAEZ;;gCAAMC,0BAASd,YAAY,OAAA;;;iCAApCM,SAASS,QAAA,KAAA,GAEXlC,aAAa,QAAbA;;;+BACI0B,gBAAYS,+BAAgB;4BAChCnC;0BACF,CAAA,GAEY;;gCAAMoC,mCAAoB;8BACpCV;8BACAD;8BACAN;8BACAvB,SAASG;8BACTsC,kBAAkBzC,QAAQmC,SAAS;4BACrC,CAAA;;;AAEA,iCARMJ,MAAMO,QAAA,KAAA,GAQPP,OAICC,UAAU,UAAMU,2BAASnB,gBAAYoB,0BAAQpB,UAAAA,CAAAA,GAC7CU,gBAAYW,2BAAKC,0BAAQtB,UAAAA,GAAaS,UAAU,MAAA,GAChDE,OAAQ,aAA6BH,OAAjBC,SAAQ;CAAA,EAAgB,OAAPD,IAAIe,EAAE,GAEjD;;4BAAMjC,QAAQkC,IAAG;kCACfC,2BAAUzB,YAAYW,MAAM,OAAA;kCAC5Bc,2BAAUf,WAAWF,IAAIkB,QAAQ,OAAA;;+BATjC;;;;AAOF,0BAAAX,QAAA,KAAA;;AAOIP,4CAAMmB,+BAAgB3B,YAAYM,QAAQxB,cAAAA,GAChD;;gCAAM2C,2BAAUzB,YAAYQ,KAAIG,MAAM,OAAA;;;AAAtC,iCAAAI,QAAA,KAAA;;;;;kBACF,CAAA,EAAA,CAAA;;cAEJ,CAAA,EACCrB,GAAG,SAAS,WAAA;AACXH,oBAAAA;cACF,CAAA;YACJ,CAAA;;;AAhEA,wBAAA,KAAA,GAkEA;;YAAMD,QAAQkC,IAAI7C,QAAAA;;;AAAlB,wBAAA,KAAA;;;;;EACF,CAAA;kBAzFEF,SAAAA;;;;",
5
+ "names": ["build", "options", "sourceDir", "promises", "buildOptions", "platform", "tamaguiOptions", "dir", "loadTamaguiBuildConfigSync", "target", "process", "env", "TAMAGUI_TARGET", "loadTamagui", "Promise", "res", "chokidar", "watch", "on", "relativePath", "exclude", "MicroMatch", "contains", "include", "sourcePath", "resolve", "cwd", "console", "info", "push", "source", "extractor", "out", "cssName", "stylePath", "code", "debug", "NODE_ENV", "readFile", "_state", "createExtractor", "extractToClassNames", "shouldPrintDebug", "basename", "extname", "join", "dirname", "js", "all", "writeFile", "styles", "extractToNative"]
6
6
  }
package/dist/cli.js CHANGED
@@ -118,23 +118,30 @@ const COMMAND_MAP = {
118
118
  await installGeneratedPackage(type, path);
119
119
  }
120
120
  },
121
- // build: {
122
- // shorthands: ['b'],
123
- // description: `Use to pre-build a Tamagui component directory`,
124
- // flags: {
125
- // '--help': Boolean,
126
- // '--debug': Boolean,
127
- // '--verbose': Boolean,
128
- // },
129
- // async run() {
130
- // const { _, ...flags } = arg(this.flags)
131
- // const { build } = await import('./build')
132
- // const options = await getOptions({
133
- // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
134
- // })
135
- // await build(options)
136
- // },
137
- // },
121
+ build: {
122
+ shorthands: ["b"],
123
+ description: "Use to pre-build a Tamagui component directory",
124
+ flags: {
125
+ "--help": Boolean,
126
+ "--debug": Boolean,
127
+ "--verbose": Boolean,
128
+ "--target": String,
129
+ "--include": String,
130
+ "--exclude": String
131
+ },
132
+ async run() {
133
+ const { _, ...flags2 } = (0, import_arg.default)(this.flags), [_command, dir] = _, imported = await import("./build.js"), options = await (0, import_utils.getOptions)({
134
+ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1
135
+ });
136
+ await imported.default.build({
137
+ ...options,
138
+ dir,
139
+ include: flags2["--include"],
140
+ target: flags2["--target"] || "web",
141
+ exclude: flags2["--exclude"]
142
+ });
143
+ }
144
+ },
138
145
  // update: {
139
146
  // shorthands: [],
140
147
  // description: `Update all tamagui packages within a monorepo`,
@@ -194,8 +201,8 @@ const COMMAND_MAP = {
194
201
  permissive: !0
195
202
  }
196
203
  );
197
- flags["--version"] && (console.log(require("../package.json").version), process.exit(0));
198
- !command && flags["--help"] && (console.log(`$ tamagui
204
+ flags["--version"] && (console.info(require("../package.json").version), process.exit(0));
205
+ !command && flags["--help"] && (console.info(`$ tamagui
199
206
 
200
207
  commands:
201
208
 
@@ -205,13 +212,13 @@ command in commands || (console.error(), console.warn(import_chalk.default.yello
205
212
  const definition = commands[command];
206
213
  main();
207
214
  async function main() {
208
- flags["--help"] && (console.log(`
215
+ flags["--help"] && (console.info(`
209
216
  $ tamagui ${command}: ${definition.description}
210
- `), console.log(
217
+ `), console.info(
211
218
  `Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`
212
219
  ), process.exit(0));
213
220
  const { _, ...cmdFlags } = (0, import_arg.default)(definition.flags);
214
- cmdFlags["--help"] && (console.log(`$ tamagui ${_}
221
+ cmdFlags["--help"] && (console.info(`$ tamagui ${_}
215
222
 
216
223
  Flags: ${JSON.stringify(cmdFlags, null, 2)}
217
224