@tamagui/cli 1.0.1-rc.5 → 1.0.1-rc.6

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
@@ -34,7 +34,9 @@ var import_fs_extra = require("fs-extra");
34
34
  const build = async (options) => {
35
35
  const entry = options.pkgJson.source;
36
36
  if (!entry) {
37
- throw new Error(`Must add "source" to package.json pointing to your source directory`);
37
+ throw new Error(
38
+ `Must add "source" to package.json pointing to your source directory`
39
+ );
38
40
  }
39
41
  const sourceDir = (0, import_path.dirname)(entry);
40
42
  const promises = [];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/build.ts"],
4
- "sourcesContent": ["import { basename, dirname, join, resolve } from 'path'\n\nimport { createExtractor, extractToClassNames, loadTamagui } from '@tamagui/static'\nimport chokidar from 'chokidar'\nimport { readFile } from 'fs-extra'\n\nimport { ResolvedOptions } from './types.js'\n\nexport const build = async (options: ResolvedOptions) => {\n // const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const entry = options.pkgJson.source\n if (!entry) {\n throw new Error(`Must add \"source\" to package.json pointing to your source directory`)\n }\n const sourceDir = dirname(entry)\n const promises: Promise<void>[] = []\n const targets = ['web']\n\n await new Promise<void>((res) => {\n chokidar\n // prevent infinite loop but cause race condition if you just build directly\n .watch(sourceDir, {\n // persistent: true,\n })\n .on('add', (relativePath) => {\n const sourcePath = resolve(process.cwd(), relativePath)\n\n // testing..\n if (!sourcePath.endsWith('Layouts.tsx')) return\n\n promises.push(\n (async () => {\n await Promise.all(\n targets.map(async (target) => {\n process.env.TAMAGUI_TARGET = target\n if (options.debug) {\n process.env.NODE_ENV ||= 'development'\n }\n console.log('go', sourcePath)\n const source = await readFile(sourcePath, 'utf-8')\n const extractor = createExtractor()\n const out = await extractToClassNames({\n extractor,\n source,\n sourcePath,\n options: options.tamaguiOptions,\n shouldPrintDebug: options.debug || false,\n })\n\n console.log('gotem', out?.js)\n })\n )\n })()\n )\n })\n .on('ready', () => {\n res()\n })\n })\n\n await Promise.all(promises)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiD;AAEjD,oBAAkE;AAClE,sBAAqB;AACrB,sBAAyB;AAIlB,MAAM,QAAQ,OAAO,YAA6B;AAGvD,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,CAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,iBAAa,qBAAQ,QAAQ,IAAI,GAAG,YAAY;AAGtD,UAAI,CAAC,WAAW,SAAS,aAAa;AAAG;AAEzC,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AAlC5C;AAmCgB,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,8BAAQ,KAAI,aAAZ,GAAY,WAAa;AAAA,cAC3B;AACA,sBAAQ,IAAI,MAAM,UAAU;AAC5B,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;AAED,sBAAQ,IAAI,SAAS,2BAAK,EAAE;AAAA,YAC9B,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
+ "sourcesContent": ["import { basename, dirname, join, resolve } from 'path'\n\nimport { createExtractor, extractToClassNames, loadTamagui } from '@tamagui/static'\nimport chokidar from 'chokidar'\nimport { readFile } from 'fs-extra'\n\nimport { ResolvedOptions } from './types.js'\n\nexport const build = async (options: ResolvedOptions) => {\n // const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const entry = options.pkgJson.source\n if (!entry) {\n throw new Error(\n `Must add \"source\" to package.json pointing to your source directory`,\n )\n }\n const sourceDir = dirname(entry)\n const promises: Promise<void>[] = []\n const targets = ['web']\n\n await new Promise<void>((res) => {\n chokidar\n // prevent infinite loop but cause race condition if you just build directly\n .watch(sourceDir, {\n // persistent: true,\n })\n .on('add', (relativePath) => {\n const sourcePath = resolve(process.cwd(), relativePath)\n\n // testing..\n if (!sourcePath.endsWith('Layouts.tsx')) return\n\n promises.push(\n (async () => {\n await Promise.all(\n targets.map(async (target) => {\n process.env.TAMAGUI_TARGET = target\n if (options.debug) {\n process.env.NODE_ENV ||= 'development'\n }\n console.log('go', sourcePath)\n const source = await readFile(sourcePath, 'utf-8')\n const extractor = createExtractor()\n const out = await extractToClassNames({\n extractor,\n source,\n sourcePath,\n options: options.tamaguiOptions,\n shouldPrintDebug: options.debug || false,\n })\n\n console.log('gotem', out?.js)\n }),\n )\n })(),\n )\n })\n .on('ready', () => {\n res()\n })\n })\n\n await Promise.all(promises)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiD;AAEjD,oBAAkE;AAClE,sBAAqB;AACrB,sBAAyB;AAIlB,MAAM,QAAQ,OAAO,YAA6B;AAGvD,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;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,CAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,iBAAa,qBAAQ,QAAQ,IAAI,GAAG,YAAY;AAGtD,UAAI,CAAC,WAAW,SAAS,aAAa;AAAG;AAEzC,eAAS;AAAA,SACN,YAAY;AACX,gBAAM,QAAQ;AAAA,YACZ,QAAQ,IAAI,OAAO,WAAW;AApC5C;AAqCgB,sBAAQ,IAAI,iBAAiB;AAC7B,kBAAI,QAAQ,OAAO;AACjB,8BAAQ,KAAI,aAAZ,GAAY,WAAa;AAAA,cAC3B;AACA,sBAAQ,IAAI,MAAM,UAAU;AAC5B,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;AAED,sBAAQ,IAAI,SAAS,2BAAK,EAAE;AAAA,YAC9B,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;",
6
6
  "names": ["chokidar"]
7
7
  }
package/dist/cjs/cli.js CHANGED
@@ -46,6 +46,36 @@ const commandMap = {
46
46
  const { update } = await import("./update.js");
47
47
  await update();
48
48
  }
49
+ },
50
+ dev: {
51
+ shorthands: ["d"],
52
+ description: `Run tamagui vite`,
53
+ flags: {
54
+ "--help": Boolean,
55
+ "--debug": Boolean,
56
+ "--verbose": Boolean
57
+ },
58
+ async run() {
59
+ const { _, ...flags2 } = (0, import_arg.default)(this.flags);
60
+ const { dev } = await import("./dev.js");
61
+ const options = await (0, import_utils.getOptions)({
62
+ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
63
+ });
64
+ await dev(options);
65
+ }
66
+ },
67
+ studio: {
68
+ shorthands: ["s"],
69
+ description: `Studio`,
70
+ flags: {},
71
+ async run() {
72
+ const { _, ...flags2 } = (0, import_arg.default)(this.flags);
73
+ const { studio } = await import("./studio.js");
74
+ const options = await (0, import_utils.getOptions)({
75
+ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
76
+ });
77
+ await studio(options);
78
+ }
49
79
  }
50
80
  };
51
81
  const commandEntries = Object.keys(commandMap).flatMap((command2) => {
@@ -94,7 +124,11 @@ async function main() {
94
124
  console.log(`
95
125
  $ tamagui ${command}: ${definition.description}
96
126
  `);
97
- console.log(`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`);
127
+ console.log(
128
+ `Flags: ${Object.entries(definition.flags).map(
129
+ ([k, v]) => `${k} (${v.name})`
130
+ )}`
131
+ );
98
132
  process.exit(0);
99
133
  }
100
134
  const { _, ...cmdFlags } = (0, import_arg.default)(definition.flags);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "sourcesContent": ["/* eslint-disable no-console */\nimport arg, { flag } from 'arg'\nimport chalk from 'chalk'\n\nimport { getOptions } from './utils.js'\n\nconst commandMap = {\n build: {\n shorthands: ['b'],\n description: `Use to pre-build a Tamagui component directory`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { build } = await import('./build.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await build(options)\n },\n },\n\n update: {\n shorthands: [],\n description: `Update all tamagui packages within a monorepo`,\n flags: {},\n async run() {\n const { update } = await import('./update.js')\n await update()\n },\n },\n}\n\ntype CommandDefinitions = typeof commandMap\ntype CommandKey = keyof typeof commandMap\ntype CommandDefinition = CommandDefinitions[CommandKey]\n\nconst commandEntries = Object.keys(commandMap).flatMap((command) => {\n const definition = commandMap[command as CommandKey]\n const entries = [command, ...definition.shorthands].map((cmd) => {\n return [cmd, definition] as const\n })\n return entries\n})\n\nconst commands = Object.fromEntries(commandEntries) as any as Record<CommandKey, CommandDefinition>\n\nconst {\n _: [command],\n ...flags\n} = arg(\n {\n '--help': Boolean,\n '--version': Boolean,\n },\n {\n permissive: true,\n }\n)\n\nif (flags['--version']) {\n console.log(require('../package.json').version)\n process.exit(0)\n}\n\nif (!command && flags['--help']) {\n console.log(`$ tamagui\n\ncommands:\n\n${Object.keys(commandMap)\n .map((key) => {\n return ` ${key}`\n })\n .join('\\n')}`)\n process.exit(0)\n}\n\nif (!(command in commands)) {\n console.error()\n console.warn(chalk.yellow(`Not a valid command: ${command}`))\n process.exit(1)\n}\n\nconst definition = commands[command] as CommandDefinition\n\nmain()\n\nasync function main() {\n if (flags['--help']) {\n console.log(`\\n$ tamagui ${command}: ${definition.description}\\n`)\n console.log(`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`)\n process.exit(0)\n }\n\n const { _, ...cmdFlags } = arg(definition.flags)\n\n // help for any command\n if (cmdFlags['--help']) {\n console.log(`$ tamagui ${_}\n\n Flags: ${JSON.stringify(cmdFlags, null, 2)}\n\n`)\n process.exit(0)\n }\n\n await definition.run()\n process.exit(0)\n}\n\nfunction showHelp(definition: CommandDefinition, flags: { '--help'?: boolean }) {\n if (flags['--help']) {\n console.log(`$ ${definition}`)\n }\n}\n\n// async function main() {\n// const options = await getOptions({\n// host: flags['--host'],\n// })\n\n// switch (command) {\n// // build\n// case 'b':\n// case 'build': {\n// const { build } = await import('./build.js')\n// break\n// }\n\n// // generate\n// case 'generate':\n// case 'gen': {\n// const { generateTamaguiConfig: generateTamgauiConfig } = await import(\n// './tamaguiConfigUtils.js'\n// )\n// const { generateTypes } = await import('./generate.js')\n\n// if (props[0] === 'types') {\n// await generateTypes(options)\n// return\n// }\n// if (props[0] === 'config') {\n// await generateTamgauiConfig(options)\n// return\n// }\n\n// await Promise.all([\n// // all\n// generateTypes(options),\n// generateTamgauiConfig(options),\n// ])\n// break\n// }\n\n// // studio\n// case 'studio': {\n// const { studio } = await import('./studio.js')\n// await studio(options)\n// break\n// }\n\n// // for now, dev === serve, eventually serve can be just prod mode\n// case 'dev': {\n// const { dev } = await import('./dev.js')\n// await dev(options)\n// break\n// }\n\n// default: {\n// if (!command || flags['--help']) {\n// }\n// // eslint-disable-next-line no-console\n// console.warn(chalk.yellow(`No command found ${command}`))\n// process.exit(1)\n// }\n// }\n// }\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AACA,iBAA0B;AAC1B,mBAAkB;AAElB,mBAA2B;AAE3B,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,YAAY,CAAC,GAAG;AAAA,IAChB,aAAa;AAAA,IACb,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,IACA,MAAM,MAAM;AACV,YAAM,EAAE,MAAMA,OAAM,QAAI,WAAAC,SAAI,KAAK,KAAK;AACtC,YAAM,EAAE,MAAM,IAAI,MAAM,OAAO;AAC/B,YAAM,UAAU,UAAM,yBAAW;AAAA,QAC/B,OAAOD,OAAM,aAAcA,OAAM,eAAe,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,MAAM,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,MAAM,MAAM;AACV,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO;AAChC,YAAM,OAAO;AAAA,IACf;AAAA,EACF;AACF;AAMA,MAAM,iBAAiB,OAAO,KAAK,UAAU,EAAE,QAAQ,CAACE,aAAY;AAClE,QAAMC,cAAa,WAAWD;AAC9B,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;AAElD,MAAM;AAAA,EACJ,GAAG,CAAC,OAAO;AAAA,KACR;AACL,QAAI,WAAAF;AAAA,EACF;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,YAAY;AAAA,EACd;AACF;AAEA,IAAI,MAAM,cAAc;AACtB,UAAQ,IAAI,QAAQ,iBAAiB,EAAE,OAAO;AAC9C,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAI,CAAC,WAAW,MAAM,WAAW;AAC/B,UAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAIZ,OAAO,KAAK,UAAU,EACrB,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;AAE5B,KAAK;AAEL,eAAe,OAAO;AACpB,MAAI,MAAM,WAAW;AACnB,YAAQ,IAAI;AAAA,YAAe,YAAY,WAAW;AAAA,CAAe;AACjE,YAAQ,IAAI,UAAU,OAAO,QAAQ,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG;AAC5F,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,EAAE,MAAM,SAAS,QAAI,WAAAH,SAAI,WAAW,KAAK;AAG/C,MAAI,SAAS,WAAW;AACtB,YAAQ,IAAI,aAAa;AAAA;AAAA,aAEhB,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA;AAAA,CAE5C;AACG,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,IAAI;AACrB,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,SAASE,aAA+BH,QAA+B;AAC9E,MAAIA,OAAM,WAAW;AACnB,YAAQ,IAAI,KAAKG,aAAY;AAAA,EAC/B;AACF;",
4
+ "sourcesContent": ["/* eslint-disable no-console */\nimport arg, { flag } from 'arg'\nimport chalk from 'chalk'\n\nimport { getOptions } from './utils.js'\n\nconst commandMap = {\n build: {\n shorthands: ['b'],\n description: `Use to pre-build a Tamagui component directory`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { build } = await import('./build.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await build(options)\n },\n },\n\n update: {\n shorthands: [],\n description: `Update all tamagui packages within a monorepo`,\n flags: {},\n async run() {\n const { update } = await import('./update.js')\n await update()\n },\n },\n\n dev: {\n shorthands: ['d'],\n description: `Run tamagui vite`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { dev } = await import('./dev.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await dev(options)\n },\n },\n\n studio: {\n shorthands: ['s'],\n description: `Studio`,\n flags: {},\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { studio } = await import('./studio.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await studio(options)\n },\n },\n}\n\ntype CommandDefinitions = typeof commandMap\ntype CommandKey = keyof typeof commandMap\ntype CommandDefinition = CommandDefinitions[CommandKey]\n\nconst commandEntries = Object.keys(commandMap).flatMap((command) => {\n const definition = commandMap[command as CommandKey]\n const entries = [command, ...definition.shorthands].map((cmd) => {\n return [cmd, definition] as const\n })\n return entries\n})\n\nconst commands = Object.fromEntries(commandEntries) as any as Record<\n CommandKey,\n CommandDefinition\n>\n\nconst {\n _: [command],\n ...flags\n} = arg(\n {\n '--help': Boolean,\n '--version': Boolean,\n },\n {\n permissive: true,\n },\n)\n\nif (flags['--version']) {\n console.log(require('../package.json').version)\n process.exit(0)\n}\n\nif (!command && flags['--help']) {\n console.log(`$ tamagui\n\ncommands:\n\n${Object.keys(commandMap)\n .map((key) => {\n return ` ${key}`\n })\n .join('\\n')}`)\n process.exit(0)\n}\n\nif (!(command in commands)) {\n console.error()\n console.warn(chalk.yellow(`Not a valid command: ${command}`))\n process.exit(1)\n}\n\nconst definition = commands[command] as CommandDefinition\n\nmain()\n\nasync function main() {\n if (flags['--help']) {\n console.log(`\\n$ tamagui ${command}: ${definition.description}\\n`)\n console.log(\n `Flags: ${Object.entries(definition.flags).map(\n ([k, v]) => `${k} (${v.name})`,\n )}`,\n )\n process.exit(0)\n }\n\n const { _, ...cmdFlags } = arg(definition.flags)\n\n // help for any command\n if (cmdFlags['--help']) {\n console.log(`$ tamagui ${_}\n\n Flags: ${JSON.stringify(cmdFlags, null, 2)}\n\n`)\n process.exit(0)\n }\n\n await definition.run()\n process.exit(0)\n}\n\nfunction showHelp(definition: CommandDefinition, flags: { '--help'?: boolean }) {\n if (flags['--help']) {\n console.log(`$ ${definition}`)\n }\n}\n\n// async function main() {\n// const options = await getOptions({\n// host: flags['--host'],\n// })\n\n// switch (command) {\n// // build\n// case 'b':\n// case 'build': {\n// const { build } = await import('./build.js')\n// break\n// }\n\n// // generate\n// case 'generate':\n// case 'gen': {\n// const { generateTamaguiConfig: generateTamgauiConfig } = await import(\n// './tamaguiConfigUtils.js'\n// )\n// const { generateTypes } = await import('./generate.js')\n\n// if (props[0] === 'types') {\n// await generateTypes(options)\n// return\n// }\n// if (props[0] === 'config') {\n// await generateTamgauiConfig(options)\n// return\n// }\n\n// await Promise.all([\n// // all\n// generateTypes(options),\n// generateTamgauiConfig(options),\n// ])\n// break\n// }\n\n// // for now, dev === serve, eventually serve can be just prod mode\n// case 'dev': {\n// const { dev } = await import('./dev.js')\n// await dev(options)\n// break\n// }\n\n// default: {\n// if (!command || flags['--help']) {\n// }\n// // eslint-disable-next-line no-console\n// console.warn(chalk.yellow(`No command found ${command}`))\n// process.exit(1)\n// }\n// }\n// }\n"],
5
+ "mappings": "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",
6
6
  "names": ["flags", "arg", "command", "definition", "chalk"]
7
7
  }
package/dist/cjs/dev.js CHANGED
@@ -37,13 +37,13 @@ var import_tamaguiConfigUtils = require("./tamaguiConfigUtils.js");
37
37
  var import_utils = require("./utils.js");
38
38
  const dev = async (options) => {
39
39
  var _a;
40
- const { default: getPort } = await import("get-port");
41
40
  const { root, mode, paths } = options;
41
+ process.chdir(process.cwd());
42
42
  const server = await (0, import_vite.createServer)({
43
43
  root,
44
44
  server: {
45
- open: true,
46
- host: options.host
45
+ port: options.port,
46
+ host: options.host || "localhost"
47
47
  }
48
48
  });
49
49
  await Promise.all([
@@ -51,9 +51,6 @@ const dev = async (options) => {
51
51
  (0, import_tamaguiConfigUtils.watchTamaguiConfig)(options)
52
52
  ]);
53
53
  const info = (_a = server.httpServer) == null ? void 0 : _a.address();
54
- const port = await getPort({
55
- port: info.port + 1
56
- });
57
54
  const app = (0, import_express.default)();
58
55
  app.disable("x-powered-by");
59
56
  app.use(import_express.default.static(paths.dotDir, { maxAge: "2h" }));
@@ -63,6 +60,7 @@ const dev = async (options) => {
63
60
  res.status(200).json(conf);
64
61
  });
65
62
  app.use("/", (0, import_express_http_proxy.default)(`${info.address}:${info.port}`));
63
+ const port = 8081;
66
64
  app.listen(port);
67
65
  console.log(`Listening on`, import_chalk.default.green(`http://localhost:${port}`));
68
66
  server.printUrls();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dev.ts"],
4
- "sourcesContent": ["import { AddressInfo } from 'net'\n\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nexport const dev = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { root, mode, paths } = options\n const server = await createServer({\n root,\n server: {\n open: true,\n host: options.host,\n },\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n // studio specific - move out eventually to studioPlugin\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n server.printUrls()\n\n await closeEvent(server)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAClB,qBAAoB;AACpB,gCAAkB;AAClB,sBAAe;AACf,oBAAmB;AACnB,kBAA6B;AAE7B,gCAAmC;AAEnC,mBAA2B;AAEpB,MAAM,MAAM,OAAO,YAA6B;AAbvD;AAcE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,MAAM,MAAM,IAAI;AAC9B,QAAM,SAAS,UAAM,0BAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,MAAM,QAAQ;AAAA,IAChB;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,QAEd,8CAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAEhC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,UAAM,eAAAA,SAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,eAAAA,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,QAAI,cAAAC,SAAO,MAAM,CAAC;AAItB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,gBAAAC,QAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,SAAK,0BAAAC,SAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,aAAAC,QAAM,MAAM,oBAAoB,MAAM,CAAC;AACnE,SAAO,UAAU;AAEjB,YAAM,yBAAW,MAAM;AACzB;",
4
+ "sourcesContent": ["import { AddressInfo } from 'net'\nimport { join } from 'path'\n\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nexport const dev = async (options: ResolvedOptions) => {\n const { root, mode, paths } = options\n\n process.chdir(process.cwd())\n\n const server = await createServer({\n root,\n server: {\n port: options.port,\n host: options.host || 'localhost',\n },\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n // studio specific - move out eventually to studioPlugin\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n // react native port\n const port = 8081\n app.listen(port)\n\n // eslint-disable-next-line no-console\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n server.printUrls()\n\n await closeEvent(server)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAkB;AAClB,qBAAoB;AACpB,gCAAkB;AAClB,sBAAe;AACf,oBAAmB;AACnB,kBAA6B;AAE7B,gCAAmC;AAEnC,mBAA2B;AAEpB,MAAM,MAAM,OAAO,YAA6B;AAdvD;AAeE,QAAM,EAAE,MAAM,MAAM,MAAM,IAAI;AAE9B,UAAQ,MAAM,QAAQ,IAAI,CAAC;AAE3B,QAAM,SAAS,UAAM,0BAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ,QAAQ;AAAA,IACxB;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,QAEd,8CAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,QAAM,UAAM,eAAAA,SAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,eAAAA,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,QAAI,cAAAC,SAAO,MAAM,CAAC;AAItB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,gBAAAC,QAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,SAAK,0BAAAC,SAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAGlD,QAAM,OAAO;AACb,MAAI,OAAO,IAAI;AAGf,UAAQ,IAAI,gBAAgB,aAAAC,QAAM,MAAM,oBAAoB,MAAM,CAAC;AACnE,SAAO,UAAU;AAEjB,YAAM,yBAAW,MAAM;AACzB;",
6
6
  "names": ["express", "morgan", "fs", "proxy", "chalk"]
7
7
  }
@@ -62,7 +62,10 @@ async function getTypes(options) {
62
62
  k,
63
63
  v[0].getType().getApparentType().getProperties().map((prop) => {
64
64
  var _a;
65
- return [prop.getEscapedName(), (_a = prop.getValueDeclaration()) == null ? void 0 : _a.getType().getText()];
65
+ return [
66
+ prop.getEscapedName(),
67
+ (_a = prop.getValueDeclaration()) == null ? void 0 : _a.getType().getText()
68
+ ];
66
69
  })
67
70
  ];
68
71
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/generate.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n\nimport fs from 'fs-extra'\nimport { Project } from 'ts-morph'\n\nimport { ResolvedOptions } from './types.js'\nimport { loadTamagui } from './utils.js'\n\nexport async function generateTypes(options: ResolvedOptions) {\n const types = await getTypes(options)\n await fs.writeJSON(options.paths.types, types, {\n spaces: 2,\n })\n}\n\nexport async function getTypes(options: ResolvedOptions) {\n const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const uniqueViewExportingPaths = new Set(\n Object.keys(tamagui.nameToPaths).map((name) => {\n return `${[...tamagui.nameToPaths[name]][0]}.ts*`\n })\n )\n\n const project = new Project({\n compilerOptions: {\n noEmit: false,\n declaration: true,\n emitDeclarationOnly: true,\n },\n skipAddingFilesFromTsConfig: true,\n tsConfigFilePath: options.tsconfigPath,\n })\n\n const files = project.addSourceFilesAtPaths([...uniqueViewExportingPaths])\n\n return Object.fromEntries(\n files.flatMap((x) => {\n return [...x.getExportedDeclarations()].map(([k, v]) => {\n return [\n k,\n v[0]\n .getType()\n .getApparentType()\n .getProperties()\n .map((prop) => {\n return [prop.getEscapedName(), prop.getValueDeclaration()?.getType().getText()]\n }),\n ]\n })\n })\n )\n\n // console.log(\n // 'project',\n // files.map((x) => x.getFilePath()),\n // files.map((x) => {\n // return x.getExportedDeclarations()\n // }),\n // Object.fromEntries(\n // files.flatMap((x) => {\n // return [...x.getExportedDeclarations()].map(([k, v]) => {\n // return [k, v[0].getType().getApparentType().getText()]\n // })\n // })\n // ),\n\n // // files.map((f) => f.getExportSymbols())\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAe;AACf,sBAAwB;AAGxB,mBAA4B;AAE5B,eAAsB,cAAc,SAA0B;AAC5D,QAAM,QAAQ,MAAM,SAAS,OAAO;AACpC,QAAM,gBAAAA,QAAG,UAAU,QAAQ,MAAM,OAAO,OAAO;AAAA,IAC7C,QAAQ;AAAA,EACV,CAAC;AACH;AAEA,eAAsB,SAAS,SAA0B;AACvD,QAAM,UAAU,UAAM,0BAAY,QAAQ,cAAc;AAExD,QAAM,2BAA2B,IAAI;AAAA,IACnC,OAAO,KAAK,QAAQ,WAAW,EAAE,IAAI,CAAC,SAAS;AAC7C,aAAO,GAAG,CAAC,GAAG,QAAQ,YAAY,KAAK,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,IAAI,wBAAQ;AAAA,IAC1B,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,qBAAqB;AAAA,IACvB;AAAA,IACA,6BAA6B;AAAA,IAC7B,kBAAkB,QAAQ;AAAA,EAC5B,CAAC;AAED,QAAM,QAAQ,QAAQ,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAEzE,SAAO,OAAO;AAAA,IACZ,MAAM,QAAQ,CAAC,MAAM;AACnB,aAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACtD,eAAO;AAAA,UACL;AAAA,UACA,EAAE,GACC,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,IAAI,CAAC,SAAS;AA7C3B;AA8Cc,mBAAO,CAAC,KAAK,eAAe,IAAG,UAAK,oBAAoB,MAAzB,mBAA4B,UAAU,SAAS;AAAA,UAChF,CAAC;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAiBF;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n\nimport fs from 'fs-extra'\nimport { Project } from 'ts-morph'\n\nimport { ResolvedOptions } from './types.js'\nimport { loadTamagui } from './utils.js'\n\nexport async function generateTypes(options: ResolvedOptions) {\n const types = await getTypes(options)\n await fs.writeJSON(options.paths.types, types, {\n spaces: 2,\n })\n}\n\nexport async function getTypes(options: ResolvedOptions) {\n const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const uniqueViewExportingPaths = new Set(\n Object.keys(tamagui.nameToPaths).map((name) => {\n return `${[...tamagui.nameToPaths[name]][0]}.ts*`\n }),\n )\n\n const project = new Project({\n compilerOptions: {\n noEmit: false,\n declaration: true,\n emitDeclarationOnly: true,\n },\n skipAddingFilesFromTsConfig: true,\n tsConfigFilePath: options.tsconfigPath,\n })\n\n const files = project.addSourceFilesAtPaths([...uniqueViewExportingPaths])\n\n return Object.fromEntries(\n files.flatMap((x) => {\n return [...x.getExportedDeclarations()].map(([k, v]) => {\n return [\n k,\n v[0]\n .getType()\n .getApparentType()\n .getProperties()\n .map((prop) => {\n return [\n prop.getEscapedName(),\n prop.getValueDeclaration()?.getType().getText(),\n ]\n }),\n ]\n })\n }),\n )\n\n // console.log(\n // 'project',\n // files.map((x) => x.getFilePath()),\n // files.map((x) => {\n // return x.getExportedDeclarations()\n // }),\n // Object.fromEntries(\n // files.flatMap((x) => {\n // return [...x.getExportedDeclarations()].map(([k, v]) => {\n // return [k, v[0].getType().getApparentType().getText()]\n // })\n // })\n // ),\n\n // // files.map((f) => f.getExportSymbols())\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAe;AACf,sBAAwB;AAGxB,mBAA4B;AAE5B,eAAsB,cAAc,SAA0B;AAC5D,QAAM,QAAQ,MAAM,SAAS,OAAO;AACpC,QAAM,gBAAAA,QAAG,UAAU,QAAQ,MAAM,OAAO,OAAO;AAAA,IAC7C,QAAQ;AAAA,EACV,CAAC;AACH;AAEA,eAAsB,SAAS,SAA0B;AACvD,QAAM,UAAU,UAAM,0BAAY,QAAQ,cAAc;AAExD,QAAM,2BAA2B,IAAI;AAAA,IACnC,OAAO,KAAK,QAAQ,WAAW,EAAE,IAAI,CAAC,SAAS;AAC7C,aAAO,GAAG,CAAC,GAAG,QAAQ,YAAY,KAAK,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,IAAI,wBAAQ;AAAA,IAC1B,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,qBAAqB;AAAA,IACvB;AAAA,IACA,6BAA6B;AAAA,IAC7B,kBAAkB,QAAQ;AAAA,EAC5B,CAAC;AAED,QAAM,QAAQ,QAAQ,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAEzE,SAAO,OAAO;AAAA,IACZ,MAAM,QAAQ,CAAC,MAAM;AACnB,aAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACtD,eAAO;AAAA,UACL;AAAA,UACA,EAAE,GACC,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,IAAI,CAAC,SAAS;AA7C3B;AA8Cc,mBAAO;AAAA,cACL,KAAK,eAAe;AAAA,eACpB,UAAK,oBAAoB,MAAzB,mBAA4B,UAAU;AAAA,YACxC;AAAA,UACF,CAAC;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAiBF;",
6
6
  "names": ["fs"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/studio.ts"],
4
- "sourcesContent": ["import { createRequire } from 'module'\nimport { AddressInfo } from 'net'\nimport { dirname } from 'path'\n\nimport { tamaguiPlugin } from '@tamagui/vite-plugin'\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nconst resolve = 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve\n\nexport const studio = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { paths } = options\n const root = dirname(resolve('@takeout/studio/entry'))\n const server = await createServer({\n root,\n server: {\n // open: true,\n host: options.host,\n },\n plugins: [\n tamaguiPlugin({\n components: ['tamagui'],\n }),\n ],\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n console.log('devServerInfo', info)\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n\n await closeEvent(server)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA8B;AAE9B,kBAAwB;AAExB,yBAA8B;AAC9B,mBAAkB;AAClB,qBAAoB;AACpB,gCAAkB;AAClB,sBAAe;AACf,oBAAmB;AACnB,kBAA6B;AAE7B,gCAAmC;AAEnC,mBAA2B;AAd3B;AAgBA,MAAM,UAAU,SAAS,kBAAc,6BAAc,YAAY,GAAG,EAAE,UAAU,QAAQ;AAEjF,MAAM,SAAS,OAAO,YAA6B;AAlB1D;AAmBE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,WAAO,qBAAQ,QAAQ,uBAAuB,CAAC;AACrD,QAAM,SAAS,UAAM,0BAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEN,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,UACP,kCAAc;AAAA,QACZ,YAAY,CAAC,SAAS;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,QAEd,8CAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,UAAQ,IAAI,iBAAiB,IAAI;AAEjC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,UAAM,eAAAA,SAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,eAAAA,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,QAAI,cAAAC,SAAO,MAAM,CAAC;AAEtB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,gBAAAC,QAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,SAAK,0BAAAC,SAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,aAAAC,QAAM,MAAM,oBAAoB,MAAM,CAAC;AAEnE,YAAM,yBAAW,MAAM;AACzB;",
4
+ "sourcesContent": ["import { createRequire } from 'module'\nimport { AddressInfo } from 'net'\nimport { dirname } from 'path'\n\nimport { tamaguiPlugin } from '@tamagui/vite-plugin'\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nconst resolve =\n 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve\n\nexport const studio = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { paths } = options\n const root = dirname(resolve('@takeout/studio/entry'))\n const server = await createServer({\n root,\n server: {\n // open: true,\n host: options.host,\n },\n plugins: [\n tamaguiPlugin({\n components: ['tamagui'],\n }),\n ],\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n console.log('devServerInfo', info)\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n\n await closeEvent(server)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA8B;AAE9B,kBAAwB;AAExB,yBAA8B;AAC9B,mBAAkB;AAClB,qBAAoB;AACpB,gCAAkB;AAClB,sBAAe;AACf,oBAAmB;AACnB,kBAA6B;AAE7B,gCAAmC;AAEnC,mBAA2B;AAd3B;AAgBA,MAAM,UACJ,SAAS,kBAAc,6BAAc,YAAY,GAAG,EAAE,UAAU,QAAQ;AAEnE,MAAM,SAAS,OAAO,YAA6B;AAnB1D;AAoBE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,WAAO,qBAAQ,QAAQ,uBAAuB,CAAC;AACrD,QAAM,SAAS,UAAM,0BAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEN,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,UACP,kCAAc;AAAA,QACZ,YAAY,CAAC,SAAS;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,QAEd,8CAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,UAAQ,IAAI,iBAAiB,IAAI;AAEjC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,UAAM,eAAAA,SAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,eAAAA,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,QAAI,cAAAC,SAAO,MAAM,CAAC;AAEtB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,gBAAAC,QAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,SAAK,0BAAAC,SAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,aAAAC,QAAM,MAAM,oBAAoB,MAAM,CAAC;AAEnE,YAAM,yBAAW,MAAM;AACzB;",
6
6
  "names": ["express", "morgan", "fs", "proxy", "chalk"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types.ts"],
4
- "sourcesContent": ["import { TamaguiOptions } from '@tamagui/static'\n\nexport type UserOptions = {\n root?: string\n host?: string\n tsconfigPath?: string\n tamaguiOptions: Partial<TamaguiOptions>\n debug?: boolean | 'verbose'\n}\n\nexport type ResolvedOptions = {\n root: string\n host?: string\n mode: 'development' | 'production'\n debug?: UserOptions['debug']\n tsconfigPath: string\n tamaguiOptions: TamaguiOptions\n pkgJson: {\n name?: string\n main?: string\n module?: string\n source?: string\n exports?: Record<string, Record<string, string>>\n }\n paths: {\n dotDir: string\n conf: string\n types: string\n }\n}\n"],
4
+ "sourcesContent": ["import { TamaguiOptions } from '@tamagui/static'\n\nexport type UserOptions = {\n root?: string\n host?: string\n tsconfigPath?: string\n tamaguiOptions: Partial<TamaguiOptions>\n debug?: boolean | 'verbose'\n}\n\nexport type ResolvedOptions = {\n root: string\n port?: number\n host?: string\n mode: 'development' | 'production'\n debug?: UserOptions['debug']\n tsconfigPath: string\n tamaguiOptions: TamaguiOptions\n pkgJson: {\n name?: string\n main?: string\n module?: string\n source?: string\n exports?: Record<string, Record<string, string>>\n }\n paths: {\n dotDir: string\n conf: string\n types: string\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
package/dist/cjs/utils.js CHANGED
@@ -42,7 +42,10 @@ async function getOptions({
42
42
  debug
43
43
  } = {}) {
44
44
  const tsConfigFilePath = (0, import_path.join)(root, tsconfigPath);
45
- ensure(await import_fs_extra.default.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`);
45
+ ensure(
46
+ await import_fs_extra.default.pathExists(tsConfigFilePath),
47
+ `No tsconfig found: ${tsConfigFilePath}`
48
+ );
46
49
  const dotDir = (0, import_path.join)(root, ".tamagui");
47
50
  const pkgJson = await (0, import_fs_extra.readJSON)((0, import_path.join)(root, "package.json"));
48
51
  return {
@@ -75,9 +78,10 @@ let cachedPath = "";
75
78
  async function getDefaultTamaguiConfigPath() {
76
79
  if (cachedPath)
77
80
  return cachedPath;
78
- const existing = (await Promise.all(defaultPaths.map((path) => (0, import_fs_extra.pathExists)(path)))).findIndex(
79
- (x) => !!x
81
+ const existingPaths = await Promise.all(
82
+ defaultPaths.map((path) => (0, import_fs_extra.pathExists)(path))
80
83
  );
84
+ const existing = existingPaths.findIndex((x) => !!x);
81
85
  const found = defaultPaths[existing];
82
86
  if (!found) {
83
87
  throw new Error(`No found tamagui.config.ts`);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils.ts"],
4
- "sourcesContent": ["import { join } from 'path'\n\nimport type { TamaguiOptions, TamaguiProjectInfo } from '@tamagui/static'\nimport { loadTamagui as loadTamaguiStatic } from '@tamagui/static'\nimport chalk from 'chalk'\nimport fs, { pathExists, readJSON } from 'fs-extra'\nimport { ViteDevServer } from 'vite'\n\nimport { ResolvedOptions, UserOptions } from './types.js'\n\nexport async function getOptions({\n root = process.cwd(),\n tsconfigPath = 'tsconfig.json',\n tamaguiOptions,\n host,\n debug,\n}: Partial<UserOptions> = {}): Promise<ResolvedOptions> {\n const tsConfigFilePath = join(root, tsconfigPath)\n ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`)\n const dotDir = join(root, '.tamagui')\n const pkgJson = await readJSON(join(root, 'package.json'))\n\n return {\n mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',\n root,\n host,\n pkgJson,\n debug,\n tsconfigPath,\n tamaguiOptions: {\n components: ['tamagui'],\n config: await getDefaultTamaguiConfigPath(),\n ...tamaguiOptions,\n },\n paths: {\n dotDir,\n conf: join(dotDir, 'tamagui.config.json'),\n types: join(dotDir, 'types.json'),\n },\n }\n}\n\nexport function ensure(condition: boolean, message: string) {\n if (!condition) {\n console.error(chalk.red.bold('Error:'), chalk.yellow(`${message}`))\n process.exit(1)\n }\n}\n\nconst defaultPaths = ['tamagui.config.ts', join('src', 'tamagui.config.ts')]\nlet cachedPath = ''\nasync function getDefaultTamaguiConfigPath() {\n if (cachedPath) return cachedPath\n const existing = (await Promise.all(defaultPaths.map((path) => pathExists(path)))).findIndex(\n (x) => !!x\n )\n const found = defaultPaths[existing]\n if (!found) {\n throw new Error(`No found tamagui.config.ts`)\n }\n cachedPath = found\n return found\n}\n\nlet cached: TamaguiProjectInfo | null = null\nexport const loadTamagui = async (opts: Partial<TamaguiOptions>): Promise<TamaguiProjectInfo> => {\n return (cached ??= await loadTamaguiStatic({\n config: await getDefaultTamaguiConfigPath(),\n components: ['tamagui'],\n ...opts,\n }))\n}\n\nexport function closeEvent(server: ViteDevServer): Promise<void> {\n return new Promise((resolve) => {\n server.ws.on('close', () => {\n return resolve()\n })\n })\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AAGrB,oBAAiD;AACjD,mBAAkB;AAClB,sBAAyC;AAKzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA0B,CAAC,GAA6B;AACtD,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;AAAA,IACA;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,YAAY,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,aAAS,4BAAW,IAAI,CAAC,CAAC,GAAG;AAAA,IACjF,CAAC,MAAM,CAAC,CAAC;AAAA,EACX;AACA,QAAM,QAAQ,aAAa;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OAAO,SAA+D;AAC/F,SAAQ,oBAAW,UAAM,cAAAC,aAAkB;AAAA,IACzC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,WAAW,QAAsC;AAC/D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,WAAO,GAAG,GAAG,SAAS,MAAM;AAC1B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,CAAC;AACH;",
4
+ "sourcesContent": ["import { join } from 'path'\n\nimport type { TamaguiOptions, TamaguiProjectInfo } from '@tamagui/static'\nimport { loadTamagui as loadTamaguiStatic } from '@tamagui/static'\nimport chalk from 'chalk'\nimport fs, { pathExists, readJSON } from 'fs-extra'\nimport { ViteDevServer } from 'vite'\n\nimport { ResolvedOptions, UserOptions } from './types.js'\n\nexport async function getOptions({\n root = process.cwd(),\n tsconfigPath = 'tsconfig.json',\n tamaguiOptions,\n host,\n debug,\n}: Partial<UserOptions> = {}): Promise<ResolvedOptions> {\n const tsConfigFilePath = join(root, tsconfigPath)\n ensure(\n await fs.pathExists(tsConfigFilePath),\n `No tsconfig found: ${tsConfigFilePath}`,\n )\n const dotDir = join(root, '.tamagui')\n const pkgJson = await readJSON(join(root, 'package.json'))\n\n return {\n mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',\n root,\n host,\n pkgJson,\n debug,\n tsconfigPath,\n tamaguiOptions: {\n components: ['tamagui'],\n config: await getDefaultTamaguiConfigPath(),\n ...tamaguiOptions,\n },\n paths: {\n dotDir,\n conf: join(dotDir, 'tamagui.config.json'),\n types: join(dotDir, 'types.json'),\n },\n }\n}\n\nexport function ensure(condition: boolean, message: string) {\n if (!condition) {\n console.error(chalk.red.bold('Error:'), chalk.yellow(`${message}`))\n process.exit(1)\n }\n}\n\nconst defaultPaths = ['tamagui.config.ts', join('src', 'tamagui.config.ts')]\nlet cachedPath = ''\nasync function getDefaultTamaguiConfigPath() {\n if (cachedPath) return cachedPath\n const existingPaths = await Promise.all(\n defaultPaths.map((path) => pathExists(path)),\n )\n const existing = existingPaths.findIndex((x) => !!x)\n const found = defaultPaths[existing]\n if (!found) {\n throw new Error(`No found tamagui.config.ts`)\n }\n cachedPath = found\n return found\n}\n\nlet cached: TamaguiProjectInfo | null = null\nexport const loadTamagui = async (\n opts: Partial<TamaguiOptions>,\n): Promise<TamaguiProjectInfo> => {\n return (cached ??= await loadTamaguiStatic({\n config: await getDefaultTamaguiConfigPath(),\n components: ['tamagui'],\n ...opts,\n }))\n}\n\nexport function closeEvent(server: ViteDevServer): Promise<void> {\n return new Promise((resolve) => {\n server.ws.on('close', () => {\n return resolve()\n })\n })\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AAGrB,oBAAiD;AACjD,mBAAkB;AAClB,sBAAyC;AAKzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA0B,CAAC,GAA6B;AACtD,QAAM,uBAAmB,kBAAK,MAAM,YAAY;AAChD;AAAA,IACE,MAAM,gBAAAA,QAAG,WAAW,gBAAgB;AAAA,IACpC,sBAAsB;AAAA,EACxB;AACA,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;AAAA,IACA;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;AAAA,IAClC,aAAa,IAAI,CAAC,aAAS,4BAAW,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACgC;AAChC,SAAQ,oBAAW,UAAM,cAAAC,aAAkB;AAAA,IACzC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,WAAW,QAAsC;AAC/D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,WAAO,GAAG,GAAG,SAAS,MAAM;AAC1B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,CAAC;AACH;",
6
6
  "names": ["fs", "chalk", "loadTamaguiStatic"]
7
7
  }
package/dist/esm/build.js CHANGED
@@ -5,7 +5,9 @@ import { readFile } from "fs-extra";
5
5
  const build = async (options) => {
6
6
  const entry = options.pkgJson.source;
7
7
  if (!entry) {
8
- throw new Error(`Must add "source" to package.json pointing to your source directory`);
8
+ throw new Error(
9
+ `Must add "source" to package.json pointing to your source directory`
10
+ );
9
11
  }
10
12
  const sourceDir = dirname(entry);
11
13
  const promises = [];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/build.ts"],
4
- "sourcesContent": ["import { basename, dirname, join, resolve } from 'path'\n\nimport { createExtractor, extractToClassNames, loadTamagui } from '@tamagui/static'\nimport chokidar from 'chokidar'\nimport { readFile } from 'fs-extra'\n\nimport { ResolvedOptions } from './types.js'\n\nexport const build = async (options: ResolvedOptions) => {\n // const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const entry = options.pkgJson.source\n if (!entry) {\n throw new Error(`Must add \"source\" to package.json pointing to your source directory`)\n }\n const sourceDir = dirname(entry)\n const promises: Promise<void>[] = []\n const targets = ['web']\n\n await new Promise<void>((res) => {\n chokidar\n // prevent infinite loop but cause race condition if you just build directly\n .watch(sourceDir, {\n // persistent: true,\n })\n .on('add', (relativePath) => {\n const sourcePath = resolve(process.cwd(), relativePath)\n\n // testing..\n if (!sourcePath.endsWith('Layouts.tsx')) return\n\n promises.push(\n (async () => {\n await Promise.all(\n targets.map(async (target) => {\n process.env.TAMAGUI_TARGET = target\n if (options.debug) {\n process.env.NODE_ENV ||= 'development'\n }\n console.log('go', sourcePath)\n const source = await readFile(sourcePath, 'utf-8')\n const extractor = createExtractor()\n const out = await extractToClassNames({\n extractor,\n source,\n sourcePath,\n options: options.tamaguiOptions,\n shouldPrintDebug: options.debug || false,\n })\n\n console.log('gotem', out?.js)\n })\n )\n })()\n )\n })\n .on('ready', () => {\n res()\n })\n })\n\n await Promise.all(promises)\n}\n"],
5
- "mappings": "AAAA,SAAmB,SAAe,eAAe;AAEjD,SAAS,iBAAiB,2BAAwC;AAClE,OAAO,cAAc;AACrB,SAAS,gBAAgB;AAIlB,MAAM,QAAQ,OAAO,YAA6B;AAGvD,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,CAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,aAAa,QAAQ,QAAQ,IAAI,GAAG,YAAY;AAGtD,UAAI,CAAC,WAAW,SAAS,aAAa;AAAG;AAEzC,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,sBAAQ,IAAI,MAAM,UAAU;AAC5B,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;AAED,sBAAQ,IAAI,SAAS,2BAAK,EAAE;AAAA,YAC9B,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
+ "sourcesContent": ["import { basename, dirname, join, resolve } from 'path'\n\nimport { createExtractor, extractToClassNames, loadTamagui } from '@tamagui/static'\nimport chokidar from 'chokidar'\nimport { readFile } from 'fs-extra'\n\nimport { ResolvedOptions } from './types.js'\n\nexport const build = async (options: ResolvedOptions) => {\n // const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const entry = options.pkgJson.source\n if (!entry) {\n throw new Error(\n `Must add \"source\" to package.json pointing to your source directory`,\n )\n }\n const sourceDir = dirname(entry)\n const promises: Promise<void>[] = []\n const targets = ['web']\n\n await new Promise<void>((res) => {\n chokidar\n // prevent infinite loop but cause race condition if you just build directly\n .watch(sourceDir, {\n // persistent: true,\n })\n .on('add', (relativePath) => {\n const sourcePath = resolve(process.cwd(), relativePath)\n\n // testing..\n if (!sourcePath.endsWith('Layouts.tsx')) return\n\n promises.push(\n (async () => {\n await Promise.all(\n targets.map(async (target) => {\n process.env.TAMAGUI_TARGET = target\n if (options.debug) {\n process.env.NODE_ENV ||= 'development'\n }\n console.log('go', sourcePath)\n const source = await readFile(sourcePath, 'utf-8')\n const extractor = createExtractor()\n const out = await extractToClassNames({\n extractor,\n source,\n sourcePath,\n options: options.tamaguiOptions,\n shouldPrintDebug: options.debug || false,\n })\n\n console.log('gotem', out?.js)\n }),\n )\n })(),\n )\n })\n .on('ready', () => {\n res()\n })\n })\n\n await Promise.all(promises)\n}\n"],
5
+ "mappings": "AAAA,SAAmB,SAAe,eAAe;AAEjD,SAAS,iBAAiB,2BAAwC;AAClE,OAAO,cAAc;AACrB,SAAS,gBAAgB;AAIlB,MAAM,QAAQ,OAAO,YAA6B;AAGvD,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;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,CAElB,CAAC,EACA,GAAG,OAAO,CAAC,iBAAiB;AAC3B,YAAM,aAAa,QAAQ,QAAQ,IAAI,GAAG,YAAY;AAGtD,UAAI,CAAC,WAAW,SAAS,aAAa;AAAG;AAEzC,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,sBAAQ,IAAI,MAAM,UAAU;AAC5B,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;AAED,sBAAQ,IAAI,SAAS,2BAAK,EAAE;AAAA,YAC9B,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;",
6
6
  "names": []
7
7
  }
package/dist/esm/cli.js CHANGED
@@ -27,6 +27,36 @@ const commandMap = {
27
27
  const { update } = await import("./update.js");
28
28
  await update();
29
29
  }
30
+ },
31
+ dev: {
32
+ shorthands: ["d"],
33
+ description: `Run tamagui vite`,
34
+ flags: {
35
+ "--help": Boolean,
36
+ "--debug": Boolean,
37
+ "--verbose": Boolean
38
+ },
39
+ async run() {
40
+ const { _, ...flags2 } = arg(this.flags);
41
+ const { dev } = await import("./dev.js");
42
+ const options = await getOptions({
43
+ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
44
+ });
45
+ await dev(options);
46
+ }
47
+ },
48
+ studio: {
49
+ shorthands: ["s"],
50
+ description: `Studio`,
51
+ flags: {},
52
+ async run() {
53
+ const { _, ...flags2 } = arg(this.flags);
54
+ const { studio } = await import("./studio.js");
55
+ const options = await getOptions({
56
+ debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : true : false
57
+ });
58
+ await studio(options);
59
+ }
30
60
  }
31
61
  };
32
62
  const commandEntries = Object.keys(commandMap).flatMap((command2) => {
@@ -75,7 +105,11 @@ async function main() {
75
105
  console.log(`
76
106
  $ tamagui ${command}: ${definition.description}
77
107
  `);
78
- console.log(`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`);
108
+ console.log(
109
+ `Flags: ${Object.entries(definition.flags).map(
110
+ ([k, v]) => `${k} (${v.name})`
111
+ )}`
112
+ );
79
113
  process.exit(0);
80
114
  }
81
115
  const { _, ...cmdFlags } = arg(definition.flags);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "sourcesContent": ["/* eslint-disable no-console */\nimport arg, { flag } from 'arg'\nimport chalk from 'chalk'\n\nimport { getOptions } from './utils.js'\n\nconst commandMap = {\n build: {\n shorthands: ['b'],\n description: `Use to pre-build a Tamagui component directory`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { build } = await import('./build.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await build(options)\n },\n },\n\n update: {\n shorthands: [],\n description: `Update all tamagui packages within a monorepo`,\n flags: {},\n async run() {\n const { update } = await import('./update.js')\n await update()\n },\n },\n}\n\ntype CommandDefinitions = typeof commandMap\ntype CommandKey = keyof typeof commandMap\ntype CommandDefinition = CommandDefinitions[CommandKey]\n\nconst commandEntries = Object.keys(commandMap).flatMap((command) => {\n const definition = commandMap[command as CommandKey]\n const entries = [command, ...definition.shorthands].map((cmd) => {\n return [cmd, definition] as const\n })\n return entries\n})\n\nconst commands = Object.fromEntries(commandEntries) as any as Record<CommandKey, CommandDefinition>\n\nconst {\n _: [command],\n ...flags\n} = arg(\n {\n '--help': Boolean,\n '--version': Boolean,\n },\n {\n permissive: true,\n }\n)\n\nif (flags['--version']) {\n console.log(require('../package.json').version)\n process.exit(0)\n}\n\nif (!command && flags['--help']) {\n console.log(`$ tamagui\n\ncommands:\n\n${Object.keys(commandMap)\n .map((key) => {\n return ` ${key}`\n })\n .join('\\n')}`)\n process.exit(0)\n}\n\nif (!(command in commands)) {\n console.error()\n console.warn(chalk.yellow(`Not a valid command: ${command}`))\n process.exit(1)\n}\n\nconst definition = commands[command] as CommandDefinition\n\nmain()\n\nasync function main() {\n if (flags['--help']) {\n console.log(`\\n$ tamagui ${command}: ${definition.description}\\n`)\n console.log(`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`)\n process.exit(0)\n }\n\n const { _, ...cmdFlags } = arg(definition.flags)\n\n // help for any command\n if (cmdFlags['--help']) {\n console.log(`$ tamagui ${_}\n\n Flags: ${JSON.stringify(cmdFlags, null, 2)}\n\n`)\n process.exit(0)\n }\n\n await definition.run()\n process.exit(0)\n}\n\nfunction showHelp(definition: CommandDefinition, flags: { '--help'?: boolean }) {\n if (flags['--help']) {\n console.log(`$ ${definition}`)\n }\n}\n\n// async function main() {\n// const options = await getOptions({\n// host: flags['--host'],\n// })\n\n// switch (command) {\n// // build\n// case 'b':\n// case 'build': {\n// const { build } = await import('./build.js')\n// break\n// }\n\n// // generate\n// case 'generate':\n// case 'gen': {\n// const { generateTamaguiConfig: generateTamgauiConfig } = await import(\n// './tamaguiConfigUtils.js'\n// )\n// const { generateTypes } = await import('./generate.js')\n\n// if (props[0] === 'types') {\n// await generateTypes(options)\n// return\n// }\n// if (props[0] === 'config') {\n// await generateTamgauiConfig(options)\n// return\n// }\n\n// await Promise.all([\n// // all\n// generateTypes(options),\n// generateTamgauiConfig(options),\n// ])\n// break\n// }\n\n// // studio\n// case 'studio': {\n// const { studio } = await import('./studio.js')\n// await studio(options)\n// break\n// }\n\n// // for now, dev === serve, eventually serve can be just prod mode\n// case 'dev': {\n// const { dev } = await import('./dev.js')\n// await dev(options)\n// break\n// }\n\n// default: {\n// if (!command || flags['--help']) {\n// }\n// // eslint-disable-next-line no-console\n// console.warn(chalk.yellow(`No command found ${command}`))\n// process.exit(1)\n// }\n// }\n// }\n"],
5
- "mappings": "AACA,OAAO,SAAmB;AAC1B,OAAO,WAAW;AAElB,SAAS,kBAAkB;AAE3B,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,YAAY,CAAC,GAAG;AAAA,IAChB,aAAa;AAAA,IACb,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,IACA,MAAM,MAAM;AACV,YAAM,EAAE,MAAMA,OAAM,IAAI,IAAI,KAAK,KAAK;AACtC,YAAM,EAAE,MAAM,IAAI,MAAM,OAAO;AAC/B,YAAM,UAAU,MAAM,WAAW;AAAA,QAC/B,OAAOA,OAAM,aAAcA,OAAM,eAAe,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,MAAM,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,MAAM,MAAM;AACV,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO;AAChC,YAAM,OAAO;AAAA,IACf;AAAA,EACF;AACF;AAMA,MAAM,iBAAiB,OAAO,KAAK,UAAU,EAAE,QAAQ,CAACC,aAAY;AAClE,QAAMC,cAAa,WAAWD;AAC9B,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;AAElD,MAAM;AAAA,EACJ,GAAG,CAAC,OAAO;AAAA,KACR;AACL,IAAI;AAAA,EACF;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,YAAY;AAAA,EACd;AACF;AAEA,IAAI,MAAM,cAAc;AACtB,UAAQ,IAAI,QAAQ,iBAAiB,EAAE,OAAO;AAC9C,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAI,CAAC,WAAW,MAAM,WAAW;AAC/B,UAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAIZ,OAAO,KAAK,UAAU,EACrB,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,MAAM,OAAO,wBAAwB,SAAS,CAAC;AAC5D,UAAQ,KAAK,CAAC;AAChB;AAEA,MAAM,aAAa,SAAS;AAE5B,KAAK;AAEL,eAAe,OAAO;AACpB,MAAI,MAAM,WAAW;AACnB,YAAQ,IAAI;AAAA,YAAe,YAAY,WAAW;AAAA,CAAe;AACjE,YAAQ,IAAI,UAAU,OAAO,QAAQ,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG;AAC5F,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,EAAE,MAAM,SAAS,IAAI,IAAI,WAAW,KAAK;AAG/C,MAAI,SAAS,WAAW;AACtB,YAAQ,IAAI,aAAa;AAAA;AAAA,aAEhB,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA;AAAA,CAE5C;AACG,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,IAAI;AACrB,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,SAASA,aAA+BF,QAA+B;AAC9E,MAAIA,OAAM,WAAW;AACnB,YAAQ,IAAI,KAAKE,aAAY;AAAA,EAC/B;AACF;",
4
+ "sourcesContent": ["/* eslint-disable no-console */\nimport arg, { flag } from 'arg'\nimport chalk from 'chalk'\n\nimport { getOptions } from './utils.js'\n\nconst commandMap = {\n build: {\n shorthands: ['b'],\n description: `Use to pre-build a Tamagui component directory`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { build } = await import('./build.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await build(options)\n },\n },\n\n update: {\n shorthands: [],\n description: `Update all tamagui packages within a monorepo`,\n flags: {},\n async run() {\n const { update } = await import('./update.js')\n await update()\n },\n },\n\n dev: {\n shorthands: ['d'],\n description: `Run tamagui vite`,\n flags: {\n '--help': Boolean,\n '--debug': Boolean,\n '--verbose': Boolean,\n },\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { dev } = await import('./dev.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await dev(options)\n },\n },\n\n studio: {\n shorthands: ['s'],\n description: `Studio`,\n flags: {},\n async run() {\n const { _, ...flags } = arg(this.flags)\n const { studio } = await import('./studio.js')\n const options = await getOptions({\n debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,\n })\n await studio(options)\n },\n },\n}\n\ntype CommandDefinitions = typeof commandMap\ntype CommandKey = keyof typeof commandMap\ntype CommandDefinition = CommandDefinitions[CommandKey]\n\nconst commandEntries = Object.keys(commandMap).flatMap((command) => {\n const definition = commandMap[command as CommandKey]\n const entries = [command, ...definition.shorthands].map((cmd) => {\n return [cmd, definition] as const\n })\n return entries\n})\n\nconst commands = Object.fromEntries(commandEntries) as any as Record<\n CommandKey,\n CommandDefinition\n>\n\nconst {\n _: [command],\n ...flags\n} = arg(\n {\n '--help': Boolean,\n '--version': Boolean,\n },\n {\n permissive: true,\n },\n)\n\nif (flags['--version']) {\n console.log(require('../package.json').version)\n process.exit(0)\n}\n\nif (!command && flags['--help']) {\n console.log(`$ tamagui\n\ncommands:\n\n${Object.keys(commandMap)\n .map((key) => {\n return ` ${key}`\n })\n .join('\\n')}`)\n process.exit(0)\n}\n\nif (!(command in commands)) {\n console.error()\n console.warn(chalk.yellow(`Not a valid command: ${command}`))\n process.exit(1)\n}\n\nconst definition = commands[command] as CommandDefinition\n\nmain()\n\nasync function main() {\n if (flags['--help']) {\n console.log(`\\n$ tamagui ${command}: ${definition.description}\\n`)\n console.log(\n `Flags: ${Object.entries(definition.flags).map(\n ([k, v]) => `${k} (${v.name})`,\n )}`,\n )\n process.exit(0)\n }\n\n const { _, ...cmdFlags } = arg(definition.flags)\n\n // help for any command\n if (cmdFlags['--help']) {\n console.log(`$ tamagui ${_}\n\n Flags: ${JSON.stringify(cmdFlags, null, 2)}\n\n`)\n process.exit(0)\n }\n\n await definition.run()\n process.exit(0)\n}\n\nfunction showHelp(definition: CommandDefinition, flags: { '--help'?: boolean }) {\n if (flags['--help']) {\n console.log(`$ ${definition}`)\n }\n}\n\n// async function main() {\n// const options = await getOptions({\n// host: flags['--host'],\n// })\n\n// switch (command) {\n// // build\n// case 'b':\n// case 'build': {\n// const { build } = await import('./build.js')\n// break\n// }\n\n// // generate\n// case 'generate':\n// case 'gen': {\n// const { generateTamaguiConfig: generateTamgauiConfig } = await import(\n// './tamaguiConfigUtils.js'\n// )\n// const { generateTypes } = await import('./generate.js')\n\n// if (props[0] === 'types') {\n// await generateTypes(options)\n// return\n// }\n// if (props[0] === 'config') {\n// await generateTamgauiConfig(options)\n// return\n// }\n\n// await Promise.all([\n// // all\n// generateTypes(options),\n// generateTamgauiConfig(options),\n// ])\n// break\n// }\n\n// // for now, dev === serve, eventually serve can be just prod mode\n// case 'dev': {\n// const { dev } = await import('./dev.js')\n// await dev(options)\n// break\n// }\n\n// default: {\n// if (!command || flags['--help']) {\n// }\n// // eslint-disable-next-line no-console\n// console.warn(chalk.yellow(`No command found ${command}`))\n// process.exit(1)\n// }\n// }\n// }\n"],
5
+ "mappings": "AACA,OAAO,SAAmB;AAC1B,OAAO,WAAW;AAElB,SAAS,kBAAkB;AAE3B,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,YAAY,CAAC,GAAG;AAAA,IAChB,aAAa;AAAA,IACb,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,IACA,MAAM,MAAM;AACV,YAAM,EAAE,MAAMA,OAAM,IAAI,IAAI,KAAK,KAAK;AACtC,YAAM,EAAE,MAAM,IAAI,MAAM,OAAO;AAC/B,YAAM,UAAU,MAAM,WAAW;AAAA,QAC/B,OAAOA,OAAM,aAAcA,OAAM,eAAe,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,MAAM,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,YAAY,CAAC;AAAA,IACb,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,MAAM,MAAM;AACV,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO;AAChC,YAAM,OAAO;AAAA,IACf;AAAA,EACF;AAAA,EAEA,KAAK;AAAA,IACH,YAAY,CAAC,GAAG;AAAA,IAChB,aAAa;AAAA,IACb,OAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,IACA,MAAM,MAAM;AACV,YAAM,EAAE,MAAMA,OAAM,IAAI,IAAI,KAAK,KAAK;AACtC,YAAM,EAAE,IAAI,IAAI,MAAM,OAAO;AAC7B,YAAM,UAAU,MAAM,WAAW;AAAA,QAC/B,OAAOA,OAAM,aAAcA,OAAM,eAAe,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,IAAI,OAAO;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,YAAY,CAAC,GAAG;AAAA,IAChB,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,MAAM,MAAM;AACV,YAAM,EAAE,MAAMA,OAAM,IAAI,IAAI,KAAK,KAAK;AACtC,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO;AAChC,YAAM,UAAU,MAAM,WAAW;AAAA,QAC/B,OAAOA,OAAM,aAAcA,OAAM,eAAe,YAAY,OAAQ;AAAA,MACtE,CAAC;AACD,YAAM,OAAO,OAAO;AAAA,IACtB;AAAA,EACF;AACF;AAMA,MAAM,iBAAiB,OAAO,KAAK,UAAU,EAAE,QAAQ,CAACC,aAAY;AAClE,QAAMC,cAAa,WAAWD;AAC9B,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,KACR;AACL,IAAI;AAAA,EACF;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,YAAY;AAAA,EACd;AACF;AAEA,IAAI,MAAM,cAAc;AACtB,UAAQ,IAAI,QAAQ,iBAAiB,EAAE,OAAO;AAC9C,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAI,CAAC,WAAW,MAAM,WAAW;AAC/B,UAAQ,IAAI;AAAA;AAAA;AAAA;AAAA,EAIZ,OAAO,KAAK,UAAU,EACrB,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,MAAM,OAAO,wBAAwB,SAAS,CAAC;AAC5D,UAAQ,KAAK,CAAC;AAChB;AAEA,MAAM,aAAa,SAAS;AAE5B,KAAK;AAEL,eAAe,OAAO;AACpB,MAAI,MAAM,WAAW;AACnB,YAAQ,IAAI;AAAA,YAAe,YAAY,WAAW;AAAA,CAAe;AACjE,YAAQ;AAAA,MACN,UAAU,OAAO,QAAQ,WAAW,KAAK,EAAE;AAAA,QACzC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;AAAA,MACzB;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,EAAE,MAAM,SAAS,IAAI,IAAI,WAAW,KAAK;AAG/C,MAAI,SAAS,WAAW;AACtB,YAAQ,IAAI,aAAa;AAAA;AAAA,aAEhB,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA;AAAA,CAE5C;AACG,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,IAAI;AACrB,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,SAASA,aAA+BF,QAA+B;AAC9E,MAAIA,OAAM,WAAW;AACnB,YAAQ,IAAI,KAAKE,aAAY;AAAA,EAC/B;AACF;",
6
6
  "names": ["flags", "command", "definition"]
7
7
  }
package/dist/esm/dev.js CHANGED
@@ -8,13 +8,13 @@ import { watchTamaguiConfig } from "./tamaguiConfigUtils.js";
8
8
  import { closeEvent } from "./utils.js";
9
9
  const dev = async (options) => {
10
10
  var _a;
11
- const { default: getPort } = await import("get-port");
12
11
  const { root, mode, paths } = options;
12
+ process.chdir(process.cwd());
13
13
  const server = await createServer({
14
14
  root,
15
15
  server: {
16
- open: true,
17
- host: options.host
16
+ port: options.port,
17
+ host: options.host || "localhost"
18
18
  }
19
19
  });
20
20
  await Promise.all([
@@ -22,9 +22,6 @@ const dev = async (options) => {
22
22
  watchTamaguiConfig(options)
23
23
  ]);
24
24
  const info = (_a = server.httpServer) == null ? void 0 : _a.address();
25
- const port = await getPort({
26
- port: info.port + 1
27
- });
28
25
  const app = express();
29
26
  app.disable("x-powered-by");
30
27
  app.use(express.static(paths.dotDir, { maxAge: "2h" }));
@@ -34,6 +31,7 @@ const dev = async (options) => {
34
31
  res.status(200).json(conf);
35
32
  });
36
33
  app.use("/", proxy(`${info.address}:${info.port}`));
34
+ const port = 8081;
37
35
  app.listen(port);
38
36
  console.log(`Listening on`, chalk.green(`http://localhost:${port}`));
39
37
  server.printUrls();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dev.ts"],
4
- "sourcesContent": ["import { AddressInfo } from 'net'\n\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nexport const dev = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { root, mode, paths } = options\n const server = await createServer({\n root,\n server: {\n open: true,\n host: options.host,\n },\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n // studio specific - move out eventually to studioPlugin\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n server.printUrls()\n\n await closeEvent(server)\n}\n"],
5
- "mappings": "AAEA,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,QAAQ;AACf,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAEpB,MAAM,MAAM,OAAO,YAA6B;AAbvD;AAcE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,MAAM,MAAM,IAAI;AAC9B,QAAM,SAAS,MAAM,aAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,MAAM,QAAQ;AAAA,IAChB;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,IAEd,mBAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAEhC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,MAAM,QAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,IAAI,OAAO,MAAM,CAAC;AAItB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,GAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,MAAM,MAAM,oBAAoB,MAAM,CAAC;AACnE,SAAO,UAAU;AAEjB,QAAM,WAAW,MAAM;AACzB;",
4
+ "sourcesContent": ["import { AddressInfo } from 'net'\nimport { join } from 'path'\n\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nexport const dev = async (options: ResolvedOptions) => {\n const { root, mode, paths } = options\n\n process.chdir(process.cwd())\n\n const server = await createServer({\n root,\n server: {\n port: options.port,\n host: options.host || 'localhost',\n },\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n // studio specific - move out eventually to studioPlugin\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n // react native port\n const port = 8081\n app.listen(port)\n\n // eslint-disable-next-line no-console\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n server.printUrls()\n\n await closeEvent(server)\n}\n"],
5
+ "mappings": "AAGA,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,QAAQ;AACf,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAEpB,MAAM,MAAM,OAAO,YAA6B;AAdvD;AAeE,QAAM,EAAE,MAAM,MAAM,MAAM,IAAI;AAE9B,UAAQ,MAAM,QAAQ,IAAI,CAAC;AAE3B,QAAM,SAAS,MAAM,aAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,MAAM,QAAQ,QAAQ;AAAA,IACxB;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,IAEd,mBAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,QAAM,MAAM,QAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,IAAI,OAAO,MAAM,CAAC;AAItB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,GAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAGlD,QAAM,OAAO;AACb,MAAI,OAAO,IAAI;AAGf,UAAQ,IAAI,gBAAgB,MAAM,MAAM,oBAAoB,MAAM,CAAC;AACnE,SAAO,UAAU;AAEjB,QAAM,WAAW,MAAM;AACzB;",
6
6
  "names": []
7
7
  }
@@ -32,7 +32,10 @@ async function getTypes(options) {
32
32
  k,
33
33
  v[0].getType().getApparentType().getProperties().map((prop) => {
34
34
  var _a;
35
- return [prop.getEscapedName(), (_a = prop.getValueDeclaration()) == null ? void 0 : _a.getType().getText()];
35
+ return [
36
+ prop.getEscapedName(),
37
+ (_a = prop.getValueDeclaration()) == null ? void 0 : _a.getType().getText()
38
+ ];
36
39
  })
37
40
  ];
38
41
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/generate.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n\nimport fs from 'fs-extra'\nimport { Project } from 'ts-morph'\n\nimport { ResolvedOptions } from './types.js'\nimport { loadTamagui } from './utils.js'\n\nexport async function generateTypes(options: ResolvedOptions) {\n const types = await getTypes(options)\n await fs.writeJSON(options.paths.types, types, {\n spaces: 2,\n })\n}\n\nexport async function getTypes(options: ResolvedOptions) {\n const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const uniqueViewExportingPaths = new Set(\n Object.keys(tamagui.nameToPaths).map((name) => {\n return `${[...tamagui.nameToPaths[name]][0]}.ts*`\n })\n )\n\n const project = new Project({\n compilerOptions: {\n noEmit: false,\n declaration: true,\n emitDeclarationOnly: true,\n },\n skipAddingFilesFromTsConfig: true,\n tsConfigFilePath: options.tsconfigPath,\n })\n\n const files = project.addSourceFilesAtPaths([...uniqueViewExportingPaths])\n\n return Object.fromEntries(\n files.flatMap((x) => {\n return [...x.getExportedDeclarations()].map(([k, v]) => {\n return [\n k,\n v[0]\n .getType()\n .getApparentType()\n .getProperties()\n .map((prop) => {\n return [prop.getEscapedName(), prop.getValueDeclaration()?.getType().getText()]\n }),\n ]\n })\n })\n )\n\n // console.log(\n // 'project',\n // files.map((x) => x.getFilePath()),\n // files.map((x) => {\n // return x.getExportedDeclarations()\n // }),\n // Object.fromEntries(\n // files.flatMap((x) => {\n // return [...x.getExportedDeclarations()].map(([k, v]) => {\n // return [k, v[0].getType().getApparentType().getText()]\n // })\n // })\n // ),\n\n // // files.map((f) => f.getExportSymbols())\n}\n"],
5
- "mappings": ";AAEA,OAAO,QAAQ;AACf,SAAS,eAAe;AAGxB,SAAS,mBAAmB;AAE5B,eAAsB,cAAc,SAA0B;AAC5D,QAAM,QAAQ,MAAM,SAAS,OAAO;AACpC,QAAM,GAAG,UAAU,QAAQ,MAAM,OAAO,OAAO;AAAA,IAC7C,QAAQ;AAAA,EACV,CAAC;AACH;AAEA,eAAsB,SAAS,SAA0B;AACvD,QAAM,UAAU,MAAM,YAAY,QAAQ,cAAc;AAExD,QAAM,2BAA2B,IAAI;AAAA,IACnC,OAAO,KAAK,QAAQ,WAAW,EAAE,IAAI,CAAC,SAAS;AAC7C,aAAO,GAAG,CAAC,GAAG,QAAQ,YAAY,KAAK,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,qBAAqB;AAAA,IACvB;AAAA,IACA,6BAA6B;AAAA,IAC7B,kBAAkB,QAAQ;AAAA,EAC5B,CAAC;AAED,QAAM,QAAQ,QAAQ,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAEzE,SAAO,OAAO;AAAA,IACZ,MAAM,QAAQ,CAAC,MAAM;AACnB,aAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACtD,eAAO;AAAA,UACL;AAAA,UACA,EAAE,GACC,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,IAAI,CAAC,SAAS;AA7C3B;AA8Cc,mBAAO,CAAC,KAAK,eAAe,IAAG,UAAK,oBAAoB,MAAzB,mBAA4B,UAAU,SAAS;AAAA,UAChF,CAAC;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAiBF;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n\nimport fs from 'fs-extra'\nimport { Project } from 'ts-morph'\n\nimport { ResolvedOptions } from './types.js'\nimport { loadTamagui } from './utils.js'\n\nexport async function generateTypes(options: ResolvedOptions) {\n const types = await getTypes(options)\n await fs.writeJSON(options.paths.types, types, {\n spaces: 2,\n })\n}\n\nexport async function getTypes(options: ResolvedOptions) {\n const tamagui = await loadTamagui(options.tamaguiOptions)\n\n const uniqueViewExportingPaths = new Set(\n Object.keys(tamagui.nameToPaths).map((name) => {\n return `${[...tamagui.nameToPaths[name]][0]}.ts*`\n }),\n )\n\n const project = new Project({\n compilerOptions: {\n noEmit: false,\n declaration: true,\n emitDeclarationOnly: true,\n },\n skipAddingFilesFromTsConfig: true,\n tsConfigFilePath: options.tsconfigPath,\n })\n\n const files = project.addSourceFilesAtPaths([...uniqueViewExportingPaths])\n\n return Object.fromEntries(\n files.flatMap((x) => {\n return [...x.getExportedDeclarations()].map(([k, v]) => {\n return [\n k,\n v[0]\n .getType()\n .getApparentType()\n .getProperties()\n .map((prop) => {\n return [\n prop.getEscapedName(),\n prop.getValueDeclaration()?.getType().getText(),\n ]\n }),\n ]\n })\n }),\n )\n\n // console.log(\n // 'project',\n // files.map((x) => x.getFilePath()),\n // files.map((x) => {\n // return x.getExportedDeclarations()\n // }),\n // Object.fromEntries(\n // files.flatMap((x) => {\n // return [...x.getExportedDeclarations()].map(([k, v]) => {\n // return [k, v[0].getType().getApparentType().getText()]\n // })\n // })\n // ),\n\n // // files.map((f) => f.getExportSymbols())\n}\n"],
5
+ "mappings": ";AAEA,OAAO,QAAQ;AACf,SAAS,eAAe;AAGxB,SAAS,mBAAmB;AAE5B,eAAsB,cAAc,SAA0B;AAC5D,QAAM,QAAQ,MAAM,SAAS,OAAO;AACpC,QAAM,GAAG,UAAU,QAAQ,MAAM,OAAO,OAAO;AAAA,IAC7C,QAAQ;AAAA,EACV,CAAC;AACH;AAEA,eAAsB,SAAS,SAA0B;AACvD,QAAM,UAAU,MAAM,YAAY,QAAQ,cAAc;AAExD,QAAM,2BAA2B,IAAI;AAAA,IACnC,OAAO,KAAK,QAAQ,WAAW,EAAE,IAAI,CAAC,SAAS;AAC7C,aAAO,GAAG,CAAC,GAAG,QAAQ,YAAY,KAAK,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,qBAAqB;AAAA,IACvB;AAAA,IACA,6BAA6B;AAAA,IAC7B,kBAAkB,QAAQ;AAAA,EAC5B,CAAC;AAED,QAAM,QAAQ,QAAQ,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAEzE,SAAO,OAAO;AAAA,IACZ,MAAM,QAAQ,CAAC,MAAM;AACnB,aAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACtD,eAAO;AAAA,UACL;AAAA,UACA,EAAE,GACC,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,IAAI,CAAC,SAAS;AA7C3B;AA8Cc,mBAAO;AAAA,cACL,KAAK,eAAe;AAAA,eACpB,UAAK,oBAAoB,MAAzB,mBAA4B,UAAU;AAAA,YACxC;AAAA,UACF,CAAC;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAiBF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/studio.ts"],
4
- "sourcesContent": ["import { createRequire } from 'module'\nimport { AddressInfo } from 'net'\nimport { dirname } from 'path'\n\nimport { tamaguiPlugin } from '@tamagui/vite-plugin'\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nconst resolve = 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve\n\nexport const studio = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { paths } = options\n const root = dirname(resolve('@takeout/studio/entry'))\n const server = await createServer({\n root,\n server: {\n // open: true,\n host: options.host,\n },\n plugins: [\n tamaguiPlugin({\n components: ['tamagui'],\n }),\n ],\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n console.log('devServerInfo', info)\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n\n await closeEvent(server)\n}\n"],
5
- "mappings": "AAAA,SAAS,qBAAqB;AAE9B,SAAS,eAAe;AAExB,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,QAAQ;AACf,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,MAAM,UAAU,SAAS,cAAc,cAAc,YAAY,GAAG,EAAE,UAAU,QAAQ;AAEjF,MAAM,SAAS,OAAO,YAA6B;AAlB1D;AAmBE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,OAAO,QAAQ,QAAQ,uBAAuB,CAAC;AACrD,QAAM,SAAS,MAAM,aAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEN,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,MACP,cAAc;AAAA,QACZ,YAAY,CAAC,SAAS;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,IAEd,mBAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,UAAQ,IAAI,iBAAiB,IAAI;AAEjC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,MAAM,QAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,IAAI,OAAO,MAAM,CAAC;AAEtB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,GAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,MAAM,MAAM,oBAAoB,MAAM,CAAC;AAEnE,QAAM,WAAW,MAAM;AACzB;",
4
+ "sourcesContent": ["import { createRequire } from 'module'\nimport { AddressInfo } from 'net'\nimport { dirname } from 'path'\n\nimport { tamaguiPlugin } from '@tamagui/vite-plugin'\nimport chalk from 'chalk'\nimport express from 'express'\nimport proxy from 'express-http-proxy'\nimport fs from 'fs-extra'\nimport morgan from 'morgan'\nimport { createServer } from 'vite'\n\nimport { watchTamaguiConfig } from './tamaguiConfigUtils.js'\nimport { ResolvedOptions } from './types.js'\nimport { closeEvent } from './utils.js'\n\nconst resolve =\n 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve\n\nexport const studio = async (options: ResolvedOptions) => {\n const { default: getPort } = await import('get-port')\n const { paths } = options\n const root = dirname(resolve('@takeout/studio/entry'))\n const server = await createServer({\n root,\n server: {\n // open: true,\n host: options.host,\n },\n plugins: [\n tamaguiPlugin({\n components: ['tamagui'],\n }),\n ],\n })\n\n // these can be lazy loaded (eventually should put in own process)\n await Promise.all([\n server.listen(),\n //\n watchTamaguiConfig(options),\n // generateTypes(options),\n ])\n\n const info = server.httpServer?.address() as AddressInfo\n console.log('devServerInfo', info)\n\n const port = await getPort({\n port: info.port + 1,\n })\n\n const app = express()\n\n app.disable('x-powered-by')\n app.use(express.static(paths.dotDir, { maxAge: '2h' }))\n app.use(morgan('tiny'))\n\n app.get('/conf', async (req, res) => {\n const conf = await fs.readJSON(paths.conf)\n res.status(200).json(conf)\n })\n\n app.use('/', proxy(`${info.address}:${info.port}`))\n\n app.listen(port)\n\n console.log(`Listening on`, chalk.green(`http://localhost:${port}`))\n\n await closeEvent(server)\n}\n"],
5
+ "mappings": "AAAA,SAAS,qBAAqB;AAE9B,SAAS,eAAe;AAExB,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,QAAQ;AACf,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,MAAM,UACJ,SAAS,cAAc,cAAc,YAAY,GAAG,EAAE,UAAU,QAAQ;AAEnE,MAAM,SAAS,OAAO,YAA6B;AAnB1D;AAoBE,QAAM,EAAE,SAAS,QAAQ,IAAI,MAAM,OAAO;AAC1C,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,OAAO,QAAQ,QAAQ,uBAAuB,CAAC;AACrD,QAAM,SAAS,MAAM,aAAa;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MAEN,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,MACP,cAAc;AAAA,QACZ,YAAY,CAAC,SAAS;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,OAAO;AAAA,IAEd,mBAAmB,OAAO;AAAA,EAE5B,CAAC;AAED,QAAM,QAAO,YAAO,eAAP,mBAAmB;AAChC,UAAQ,IAAI,iBAAiB,IAAI;AAEjC,QAAM,OAAO,MAAM,QAAQ;AAAA,IACzB,MAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,MAAM,QAAQ;AAEpB,MAAI,QAAQ,cAAc;AAC1B,MAAI,IAAI,QAAQ,OAAO,MAAM,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC;AACtD,MAAI,IAAI,OAAO,MAAM,CAAC;AAEtB,MAAI,IAAI,SAAS,OAAO,KAAK,QAAQ;AACnC,UAAM,OAAO,MAAM,GAAG,SAAS,MAAM,IAAI;AACzC,QAAI,OAAO,GAAG,EAAE,KAAK,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,IAAI,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,MAAM,CAAC;AAElD,MAAI,OAAO,IAAI;AAEf,UAAQ,IAAI,gBAAgB,MAAM,MAAM,oBAAoB,MAAM,CAAC;AAEnE,QAAM,WAAW,MAAM;AACzB;",
6
6
  "names": []
7
7
  }
package/dist/esm/utils.js CHANGED
@@ -10,7 +10,10 @@ async function getOptions({
10
10
  debug
11
11
  } = {}) {
12
12
  const tsConfigFilePath = join(root, tsconfigPath);
13
- ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`);
13
+ ensure(
14
+ await fs.pathExists(tsConfigFilePath),
15
+ `No tsconfig found: ${tsConfigFilePath}`
16
+ );
14
17
  const dotDir = join(root, ".tamagui");
15
18
  const pkgJson = await readJSON(join(root, "package.json"));
16
19
  return {
@@ -43,9 +46,10 @@ let cachedPath = "";
43
46
  async function getDefaultTamaguiConfigPath() {
44
47
  if (cachedPath)
45
48
  return cachedPath;
46
- const existing = (await Promise.all(defaultPaths.map((path) => pathExists(path)))).findIndex(
47
- (x) => !!x
49
+ const existingPaths = await Promise.all(
50
+ defaultPaths.map((path) => pathExists(path))
48
51
  );
52
+ const existing = existingPaths.findIndex((x) => !!x);
49
53
  const found = defaultPaths[existing];
50
54
  if (!found) {
51
55
  throw new Error(`No found tamagui.config.ts`);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils.ts"],
4
- "sourcesContent": ["import { join } from 'path'\n\nimport type { TamaguiOptions, TamaguiProjectInfo } from '@tamagui/static'\nimport { loadTamagui as loadTamaguiStatic } from '@tamagui/static'\nimport chalk from 'chalk'\nimport fs, { pathExists, readJSON } from 'fs-extra'\nimport { ViteDevServer } from 'vite'\n\nimport { ResolvedOptions, UserOptions } from './types.js'\n\nexport async function getOptions({\n root = process.cwd(),\n tsconfigPath = 'tsconfig.json',\n tamaguiOptions,\n host,\n debug,\n}: Partial<UserOptions> = {}): Promise<ResolvedOptions> {\n const tsConfigFilePath = join(root, tsconfigPath)\n ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`)\n const dotDir = join(root, '.tamagui')\n const pkgJson = await readJSON(join(root, 'package.json'))\n\n return {\n mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',\n root,\n host,\n pkgJson,\n debug,\n tsconfigPath,\n tamaguiOptions: {\n components: ['tamagui'],\n config: await getDefaultTamaguiConfigPath(),\n ...tamaguiOptions,\n },\n paths: {\n dotDir,\n conf: join(dotDir, 'tamagui.config.json'),\n types: join(dotDir, 'types.json'),\n },\n }\n}\n\nexport function ensure(condition: boolean, message: string) {\n if (!condition) {\n console.error(chalk.red.bold('Error:'), chalk.yellow(`${message}`))\n process.exit(1)\n }\n}\n\nconst defaultPaths = ['tamagui.config.ts', join('src', 'tamagui.config.ts')]\nlet cachedPath = ''\nasync function getDefaultTamaguiConfigPath() {\n if (cachedPath) return cachedPath\n const existing = (await Promise.all(defaultPaths.map((path) => pathExists(path)))).findIndex(\n (x) => !!x\n )\n const found = defaultPaths[existing]\n if (!found) {\n throw new Error(`No found tamagui.config.ts`)\n }\n cachedPath = found\n return found\n}\n\nlet cached: TamaguiProjectInfo | null = null\nexport const loadTamagui = async (opts: Partial<TamaguiOptions>): Promise<TamaguiProjectInfo> => {\n return (cached ??= await loadTamaguiStatic({\n config: await getDefaultTamaguiConfigPath(),\n components: ['tamagui'],\n ...opts,\n }))\n}\n\nexport function closeEvent(server: ViteDevServer): Promise<void> {\n return new Promise((resolve) => {\n server.ws.on('close', () => {\n return resolve()\n })\n })\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAGrB,SAAS,eAAe,yBAAyB;AACjD,OAAO,WAAW;AAClB,OAAO,MAAM,YAAY,gBAAgB;AAKzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA0B,CAAC,GAA6B;AACtD,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;AAAA,IACA;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,YAAY,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC,GAAG;AAAA,IACjF,CAAC,MAAM,CAAC,CAAC;AAAA,EACX;AACA,QAAM,QAAQ,aAAa;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OAAO,SAA+D;AAC/F,SAAQ,WAAW,MAAM,kBAAkB;AAAA,IACzC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,WAAW,QAAsC;AAC/D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,WAAO,GAAG,GAAG,SAAS,MAAM;AAC1B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,CAAC;AACH;",
4
+ "sourcesContent": ["import { join } from 'path'\n\nimport type { TamaguiOptions, TamaguiProjectInfo } from '@tamagui/static'\nimport { loadTamagui as loadTamaguiStatic } from '@tamagui/static'\nimport chalk from 'chalk'\nimport fs, { pathExists, readJSON } from 'fs-extra'\nimport { ViteDevServer } from 'vite'\n\nimport { ResolvedOptions, UserOptions } from './types.js'\n\nexport async function getOptions({\n root = process.cwd(),\n tsconfigPath = 'tsconfig.json',\n tamaguiOptions,\n host,\n debug,\n}: Partial<UserOptions> = {}): Promise<ResolvedOptions> {\n const tsConfigFilePath = join(root, tsconfigPath)\n ensure(\n await fs.pathExists(tsConfigFilePath),\n `No tsconfig found: ${tsConfigFilePath}`,\n )\n const dotDir = join(root, '.tamagui')\n const pkgJson = await readJSON(join(root, 'package.json'))\n\n return {\n mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',\n root,\n host,\n pkgJson,\n debug,\n tsconfigPath,\n tamaguiOptions: {\n components: ['tamagui'],\n config: await getDefaultTamaguiConfigPath(),\n ...tamaguiOptions,\n },\n paths: {\n dotDir,\n conf: join(dotDir, 'tamagui.config.json'),\n types: join(dotDir, 'types.json'),\n },\n }\n}\n\nexport function ensure(condition: boolean, message: string) {\n if (!condition) {\n console.error(chalk.red.bold('Error:'), chalk.yellow(`${message}`))\n process.exit(1)\n }\n}\n\nconst defaultPaths = ['tamagui.config.ts', join('src', 'tamagui.config.ts')]\nlet cachedPath = ''\nasync function getDefaultTamaguiConfigPath() {\n if (cachedPath) return cachedPath\n const existingPaths = await Promise.all(\n defaultPaths.map((path) => pathExists(path)),\n )\n const existing = existingPaths.findIndex((x) => !!x)\n const found = defaultPaths[existing]\n if (!found) {\n throw new Error(`No found tamagui.config.ts`)\n }\n cachedPath = found\n return found\n}\n\nlet cached: TamaguiProjectInfo | null = null\nexport const loadTamagui = async (\n opts: Partial<TamaguiOptions>,\n): Promise<TamaguiProjectInfo> => {\n return (cached ??= await loadTamaguiStatic({\n config: await getDefaultTamaguiConfigPath(),\n components: ['tamagui'],\n ...opts,\n }))\n}\n\nexport function closeEvent(server: ViteDevServer): Promise<void> {\n return new Promise((resolve) => {\n server.ws.on('close', () => {\n return resolve()\n })\n })\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAGrB,SAAS,eAAe,yBAAyB;AACjD,OAAO,WAAW;AAClB,OAAO,MAAM,YAAY,gBAAgB;AAKzC,eAAsB,WAAW;AAAA,EAC/B,OAAO,QAAQ,IAAI;AAAA,EACnB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,IAA0B,CAAC,GAA6B;AACtD,QAAM,mBAAmB,KAAK,MAAM,YAAY;AAChD;AAAA,IACE,MAAM,GAAG,WAAW,gBAAgB;AAAA,IACpC,sBAAsB;AAAA,EACxB;AACA,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;AAAA,IACA;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;AAAA,IAClC,aAAa,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,WAAW,cAAc,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,QAAQ,aAAa;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,eAAa;AACb,SAAO;AACT;AAEA,IAAI,SAAoC;AACjC,MAAM,cAAc,OACzB,SACgC;AAChC,SAAQ,WAAW,MAAM,kBAAkB;AAAA,IACzC,QAAQ,MAAM,4BAA4B;AAAA,IAC1C,YAAY,CAAC,SAAS;AAAA,IACtB,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,WAAW,QAAsC;AAC/D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,WAAO,GAAG,GAAG,SAAS,MAAM;AAC1B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,CAAC;AACH;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/cli",
3
- "version": "1.0.1-rc.5",
3
+ "version": "1.0.1-rc.6",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "module": "dist/esm",
@@ -31,9 +31,9 @@
31
31
  "clean:build": "tamagui-build clean:build"
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/build": "^1.0.1-rc.5",
35
- "@tamagui/static": "^1.0.1-rc.5",
36
- "@tamagui/vite-plugin": "^1.0.1-rc.5",
34
+ "@tamagui/build": "^1.0.1-rc.6",
35
+ "@tamagui/static": "^1.0.1-rc.6",
36
+ "@tamagui/vite-plugin": "^1.0.1-rc.6",
37
37
  "@types/compression": "^1.7.2",
38
38
  "@types/morgan": "^1.9.3",
39
39
  "arg": "^5.0.2",
@@ -57,6 +57,6 @@
57
57
  "zx": "^7.1.1"
58
58
  },
59
59
  "devDependencies": {
60
- "@takeout/studio": "^1.0.1-rc.5"
60
+ "@takeout/studio": "^1.0.1-rc.6"
61
61
  }
62
62
  }
package/src/build.ts CHANGED
@@ -11,7 +11,9 @@ export const build = async (options: ResolvedOptions) => {
11
11
 
12
12
  const entry = options.pkgJson.source
13
13
  if (!entry) {
14
- throw new Error(`Must add "source" to package.json pointing to your source directory`)
14
+ throw new Error(
15
+ `Must add "source" to package.json pointing to your source directory`,
16
+ )
15
17
  }
16
18
  const sourceDir = dirname(entry)
17
19
  const promises: Promise<void>[] = []
@@ -49,9 +51,9 @@ export const build = async (options: ResolvedOptions) => {
49
51
  })
50
52
 
51
53
  console.log('gotem', out?.js)
52
- })
54
+ }),
53
55
  )
54
- })()
56
+ })(),
55
57
  )
56
58
  })
57
59
  .on('ready', () => {
package/src/cli.ts CHANGED
@@ -32,6 +32,38 @@ const commandMap = {
32
32
  await update()
33
33
  },
34
34
  },
35
+
36
+ dev: {
37
+ shorthands: ['d'],
38
+ description: `Run tamagui vite`,
39
+ flags: {
40
+ '--help': Boolean,
41
+ '--debug': Boolean,
42
+ '--verbose': Boolean,
43
+ },
44
+ async run() {
45
+ const { _, ...flags } = arg(this.flags)
46
+ const { dev } = await import('./dev.js')
47
+ const options = await getOptions({
48
+ debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
49
+ })
50
+ await dev(options)
51
+ },
52
+ },
53
+
54
+ studio: {
55
+ shorthands: ['s'],
56
+ description: `Studio`,
57
+ flags: {},
58
+ async run() {
59
+ const { _, ...flags } = arg(this.flags)
60
+ const { studio } = await import('./studio.js')
61
+ const options = await getOptions({
62
+ debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
63
+ })
64
+ await studio(options)
65
+ },
66
+ },
35
67
  }
36
68
 
37
69
  type CommandDefinitions = typeof commandMap
@@ -46,7 +78,10 @@ const commandEntries = Object.keys(commandMap).flatMap((command) => {
46
78
  return entries
47
79
  })
48
80
 
49
- const commands = Object.fromEntries(commandEntries) as any as Record<CommandKey, CommandDefinition>
81
+ const commands = Object.fromEntries(commandEntries) as any as Record<
82
+ CommandKey,
83
+ CommandDefinition
84
+ >
50
85
 
51
86
  const {
52
87
  _: [command],
@@ -58,7 +93,7 @@ const {
58
93
  },
59
94
  {
60
95
  permissive: true,
61
- }
96
+ },
62
97
  )
63
98
 
64
99
  if (flags['--version']) {
@@ -92,7 +127,11 @@ main()
92
127
  async function main() {
93
128
  if (flags['--help']) {
94
129
  console.log(`\n$ tamagui ${command}: ${definition.description}\n`)
95
- console.log(`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`)
130
+ console.log(
131
+ `Flags: ${Object.entries(definition.flags).map(
132
+ ([k, v]) => `${k} (${v.name})`,
133
+ )}`,
134
+ )
96
135
  process.exit(0)
97
136
  }
98
137
 
@@ -156,13 +195,6 @@ function showHelp(definition: CommandDefinition, flags: { '--help'?: boolean })
156
195
  // break
157
196
  // }
158
197
 
159
- // // studio
160
- // case 'studio': {
161
- // const { studio } = await import('./studio.js')
162
- // await studio(options)
163
- // break
164
- // }
165
-
166
198
  // // for now, dev === serve, eventually serve can be just prod mode
167
199
  // case 'dev': {
168
200
  // const { dev } = await import('./dev.js')
package/src/dev.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AddressInfo } from 'net'
2
+ import { join } from 'path'
2
3
 
3
4
  import chalk from 'chalk'
4
5
  import express from 'express'
@@ -12,13 +13,15 @@ import { ResolvedOptions } from './types.js'
12
13
  import { closeEvent } from './utils.js'
13
14
 
14
15
  export const dev = async (options: ResolvedOptions) => {
15
- const { default: getPort } = await import('get-port')
16
16
  const { root, mode, paths } = options
17
+
18
+ process.chdir(process.cwd())
19
+
17
20
  const server = await createServer({
18
21
  root,
19
22
  server: {
20
- open: true,
21
- host: options.host,
23
+ port: options.port,
24
+ host: options.host || 'localhost',
22
25
  },
23
26
  })
24
27
 
@@ -31,11 +34,6 @@ export const dev = async (options: ResolvedOptions) => {
31
34
  ])
32
35
 
33
36
  const info = server.httpServer?.address() as AddressInfo
34
-
35
- const port = await getPort({
36
- port: info.port + 1,
37
- })
38
-
39
37
  const app = express()
40
38
 
41
39
  app.disable('x-powered-by')
@@ -51,8 +49,11 @@ export const dev = async (options: ResolvedOptions) => {
51
49
 
52
50
  app.use('/', proxy(`${info.address}:${info.port}`))
53
51
 
52
+ // react native port
53
+ const port = 8081
54
54
  app.listen(port)
55
55
 
56
+ // eslint-disable-next-line no-console
56
57
  console.log(`Listening on`, chalk.green(`http://localhost:${port}`))
57
58
  server.printUrls()
58
59
 
package/src/generate.ts CHANGED
@@ -19,7 +19,7 @@ export async function getTypes(options: ResolvedOptions) {
19
19
  const uniqueViewExportingPaths = new Set(
20
20
  Object.keys(tamagui.nameToPaths).map((name) => {
21
21
  return `${[...tamagui.nameToPaths[name]][0]}.ts*`
22
- })
22
+ }),
23
23
  )
24
24
 
25
25
  const project = new Project({
@@ -44,11 +44,14 @@ export async function getTypes(options: ResolvedOptions) {
44
44
  .getApparentType()
45
45
  .getProperties()
46
46
  .map((prop) => {
47
- return [prop.getEscapedName(), prop.getValueDeclaration()?.getType().getText()]
47
+ return [
48
+ prop.getEscapedName(),
49
+ prop.getValueDeclaration()?.getType().getText(),
50
+ ]
48
51
  }),
49
52
  ]
50
53
  })
51
- })
54
+ }),
52
55
  )
53
56
 
54
57
  // console.log(
package/src/studio.ts CHANGED
@@ -14,7 +14,8 @@ import { watchTamaguiConfig } from './tamaguiConfigUtils.js'
14
14
  import { ResolvedOptions } from './types.js'
15
15
  import { closeEvent } from './utils.js'
16
16
 
17
- const resolve = 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve
17
+ const resolve =
18
+ 'url' in import.meta ? createRequire(import.meta.url).resolve : require.resolve
18
19
 
19
20
  export const studio = async (options: ResolvedOptions) => {
20
21
  const { default: getPort } = await import('get-port')
package/src/types.ts CHANGED
@@ -10,6 +10,7 @@ export type UserOptions = {
10
10
 
11
11
  export type ResolvedOptions = {
12
12
  root: string
13
+ port?: number
13
14
  host?: string
14
15
  mode: 'development' | 'production'
15
16
  debug?: UserOptions['debug']
package/src/utils.ts CHANGED
@@ -16,7 +16,10 @@ export async function getOptions({
16
16
  debug,
17
17
  }: Partial<UserOptions> = {}): Promise<ResolvedOptions> {
18
18
  const tsConfigFilePath = join(root, tsconfigPath)
19
- ensure(await fs.pathExists(tsConfigFilePath), `No tsconfig found: ${tsConfigFilePath}`)
19
+ ensure(
20
+ await fs.pathExists(tsConfigFilePath),
21
+ `No tsconfig found: ${tsConfigFilePath}`,
22
+ )
20
23
  const dotDir = join(root, '.tamagui')
21
24
  const pkgJson = await readJSON(join(root, 'package.json'))
22
25
 
@@ -51,9 +54,10 @@ const defaultPaths = ['tamagui.config.ts', join('src', 'tamagui.config.ts')]
51
54
  let cachedPath = ''
52
55
  async function getDefaultTamaguiConfigPath() {
53
56
  if (cachedPath) return cachedPath
54
- const existing = (await Promise.all(defaultPaths.map((path) => pathExists(path)))).findIndex(
55
- (x) => !!x
57
+ const existingPaths = await Promise.all(
58
+ defaultPaths.map((path) => pathExists(path)),
56
59
  )
60
+ const existing = existingPaths.findIndex((x) => !!x)
57
61
  const found = defaultPaths[existing]
58
62
  if (!found) {
59
63
  throw new Error(`No found tamagui.config.ts`)
@@ -63,7 +67,9 @@ async function getDefaultTamaguiConfigPath() {
63
67
  }
64
68
 
65
69
  let cached: TamaguiProjectInfo | null = null
66
- export const loadTamagui = async (opts: Partial<TamaguiOptions>): Promise<TamaguiProjectInfo> => {
70
+ export const loadTamagui = async (
71
+ opts: Partial<TamaguiOptions>,
72
+ ): Promise<TamaguiProjectInfo> => {
67
73
  return (cached ??= await loadTamaguiStatic({
68
74
  config: await getDefaultTamaguiConfigPath(),
69
75
  components: ['tamagui'],
package/types/types.d.ts CHANGED
@@ -8,6 +8,7 @@ export type UserOptions = {
8
8
  };
9
9
  export type ResolvedOptions = {
10
10
  root: string;
11
+ port?: number;
11
12
  host?: string;
12
13
  mode: 'development' | 'production';
13
14
  debug?: UserOptions['debug'];