@tamagui/generate-themes 1.121.12 → 1.122.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,14 +44,15 @@ async function generateThemes(inputFile) {
44
44
  });
45
45
  const inputFilePath = inputFile[0] === "." ? (0, import_node_path.join)(process.cwd(), inputFile) : inputFile;
46
46
  purgeCache(inputFilePath);
47
- let promise = null;
47
+ const promises = [];
48
48
  import_node_module.default.prototype.require = function (id) {
49
49
  const out = ogRequire.apply(this, arguments);
50
- if (id === "@tamagui/theme-builder" && !promise) {
50
+ if (id === "@tamagui/theme-builder") {
51
51
  let resolve;
52
- return promise = new Promise(res => {
52
+ const promise = new Promise(res => {
53
53
  resolve = res;
54
- }), createThemeIntercept(out, {
54
+ });
55
+ return promises.push(promise), createThemeIntercept(out, {
55
56
  onComplete: result => {
56
57
  resolve?.(result.themeBuilder);
57
58
  }
@@ -59,28 +60,31 @@ async function generateThemes(inputFile) {
59
60
  }
60
61
  return out;
61
62
  };
63
+ let og = process.env.TAMAGUI_KEEP_THEMES;
64
+ process.env.TAMAGUI_KEEP_THEMES = "1", process.env.TAMAGUI_RUN_THEMEBUILDER = "1";
62
65
  try {
63
66
  const requiredThemes = require(inputFilePath),
64
67
  themes = requiredThemes.default || requiredThemes.themes || requiredThemes[Object.keys(requiredThemes)[0]],
65
68
  generatedThemes = generatedThemesToTypescript(themes);
66
69
  let tm;
67
- if (promise) {
70
+ if (promises.length) {
68
71
  let finished = !1;
69
- promise.then(() => {
72
+ await Promise.any(promises).then(() => {
70
73
  finished = !0;
71
74
  }), tm = setTimeout(() => {
72
75
  finished || console.warn("Warning: ThemeBuilder didn't finish after a couple seconds, did you forget to call .build()?");
73
76
  }, 2e3);
74
77
  }
75
- const themeBuilder = promise ? await promise : null;
78
+ const themeBuilder = await Promise.any(promises);
76
79
  return clearTimeout(tm), {
77
80
  generated: generatedThemes,
78
81
  state: themeBuilder?.state
79
82
  };
80
83
  } catch (err) {
81
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
84
+ console.warn(` \u26A0\uFE0F Error running theme builder:
85
+ `, err?.stack || err);
82
86
  } finally {
83
- import_node_module.default.prototype.require = ogRequire;
87
+ process.env.TAMAGUI_KEEP_THEMES = og, import_node_module.default.prototype.require = ogRequire;
84
88
  }
85
89
  }
86
90
  const dedupedTokens = /* @__PURE__ */new Map();
@@ -111,11 +115,11 @@ ${baseKeys.map(([k]) => ` ${k}: string;
111
115
  function t(a: [number, number][]) {
112
116
  let res: Record<string,string> = {}
113
117
  for (const [ki, vi] of a) {
114
- res[ks[ki] as string] = vs[vi] as string
118
+ res[ks[ki] as string] = colors[vi] as string
115
119
  }
116
120
  return res as Theme
117
121
  }
118
- `, out += `const vs = [
122
+ `, out += `export const colors = [
119
123
  `;
120
124
  let index = 0;
121
125
  const valueToIndex = {};
@@ -131,7 +135,9 @@ function t(a: [number, number][]) {
131
135
  `), out += `]
132
136
 
133
137
  `;
134
- let nameI = 0;
138
+ let nameI = 0,
139
+ themeTypes = "type ThemeNames =",
140
+ exported = "export const themes: Record<ThemeNames, Theme> = {";
135
141
  return dedupedThemes.forEach(theme => {
136
142
  nameI++;
137
143
  const key = JSON.stringify(theme),
@@ -139,13 +145,18 @@ function t(a: [number, number][]) {
139
145
  name = `n${nameI}`,
140
146
  baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
141
147
  out += `
142
- ${baseTheme}`;
143
- const duplicateThemes = names.map(n => `export const ${n} = ${name}`);
144
- out += `
148
+ ${baseTheme}`, names.forEach(n => {
149
+ exported += `
150
+ ${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
151
+ | '${n}'`);
152
+ });
153
+ }), out += `
145
154
 
146
- ` + duplicateThemes.join(`
147
- `);
148
- }), out;
155
+ ${themeTypes}
156
+
157
+ ${exported}
158
+ }
159
+ `, out;
149
160
  }
150
161
  function objectToJsString(obj, keys, valueToIndex) {
151
162
  let arrItems = [];
@@ -180,16 +191,16 @@ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
180
191
  });
181
192
  }
182
193
  function purgeCache(moduleName) {
183
- searchCache(moduleName, function (mod) {
194
+ searchCache(moduleName, mod => {
184
195
  delete require.cache[mod.id];
185
- }), Object.keys(module.constructor._pathCache).forEach(function (cacheKey) {
196
+ }), Object.keys(module.constructor._pathCache).forEach(cacheKey => {
186
197
  cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
187
198
  });
188
199
  }
189
200
  function searchCache(moduleName, callback) {
190
201
  let mod = require.resolve(moduleName);
191
202
  mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
192
- depth > 10 || (mod2.children.forEach(function (child) {
203
+ depth > 10 || (mod2.children.forEach(child => {
193
204
  traverse(child, depth + 1);
194
205
  }), callback(mod2));
195
206
  }(mod);
@@ -34,14 +34,15 @@ async function generateThemes(inputFile) {
34
34
  });
35
35
  const inputFilePath = inputFile[0] === "." ? (0, import_node_path.join)(process.cwd(), inputFile) : inputFile;
36
36
  purgeCache(inputFilePath);
37
- let promise = null;
37
+ const promises = [];
38
38
  import_node_module.default.prototype.require = function(id) {
39
39
  const out = ogRequire.apply(this, arguments);
40
- if (id === "@tamagui/theme-builder" && !promise) {
40
+ if (id === "@tamagui/theme-builder") {
41
41
  let resolve;
42
- return promise = new Promise((res) => {
42
+ const promise = new Promise((res) => {
43
43
  resolve = res;
44
- }), createThemeIntercept(out, {
44
+ });
45
+ return promises.push(promise), createThemeIntercept(out, {
45
46
  onComplete: (result) => {
46
47
  resolve?.(result.themeBuilder);
47
48
  }
@@ -49,12 +50,14 @@ async function generateThemes(inputFile) {
49
50
  }
50
51
  return out;
51
52
  };
53
+ let og = process.env.TAMAGUI_KEEP_THEMES;
54
+ process.env.TAMAGUI_KEEP_THEMES = "1", process.env.TAMAGUI_RUN_THEMEBUILDER = "1";
52
55
  try {
53
56
  const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes || requiredThemes[Object.keys(requiredThemes)[0]], generatedThemes = generatedThemesToTypescript(themes);
54
57
  let tm;
55
- if (promise) {
58
+ if (promises.length) {
56
59
  let finished = !1;
57
- promise.then(() => {
60
+ await Promise.any(promises).then(() => {
58
61
  finished = !0;
59
62
  }), tm = setTimeout(() => {
60
63
  finished || console.warn(
@@ -62,15 +65,16 @@ async function generateThemes(inputFile) {
62
65
  );
63
66
  }, 2e3);
64
67
  }
65
- const themeBuilder = promise ? await promise : null;
68
+ const themeBuilder = await Promise.any(promises);
66
69
  return clearTimeout(tm), {
67
70
  generated: generatedThemes,
68
71
  state: themeBuilder?.state
69
72
  };
70
73
  } catch (err) {
71
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
74
+ console.warn(` \u26A0\uFE0F Error running theme builder:
75
+ `, err?.stack || err);
72
76
  } finally {
73
- import_node_module.default.prototype.require = ogRequire;
77
+ process.env.TAMAGUI_KEEP_THEMES = og, import_node_module.default.prototype.require = ogRequire;
74
78
  }
75
79
  }
76
80
  const dedupedTokens = /* @__PURE__ */ new Map();
@@ -101,11 +105,11 @@ ${baseKeys.map(([k]) => ` ${k}: string;
101
105
  function t(a: [number, number][]) {
102
106
  let res: Record<string,string> = {}
103
107
  for (const [ki, vi] of a) {
104
- res[ks[ki] as string] = vs[vi] as string
108
+ res[ks[ki] as string] = colors[vi] as string
105
109
  }
106
110
  return res as Theme
107
111
  }
108
- `, out += `const vs = [
112
+ `, out += `export const colors = [
109
113
  `;
110
114
  let index = 0;
111
115
  const valueToIndex = {};
@@ -121,18 +125,23 @@ function t(a: [number, number][]) {
121
125
  `), out += `]
122
126
 
123
127
  `;
124
- let nameI = 0;
128
+ let nameI = 0, themeTypes = "type ThemeNames =", exported = "export const themes: Record<ThemeNames, Theme> = {";
125
129
  return dedupedThemes.forEach((theme) => {
126
130
  nameI++;
127
131
  const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
128
132
  out += `
129
- ${baseTheme}`;
130
- const duplicateThemes = names.map((n) => `export const ${n} = ${name}`);
131
- out += `
133
+ ${baseTheme}`, names.forEach((n) => {
134
+ exported += `
135
+ ${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
136
+ | '${n}'`);
137
+ });
138
+ }), out += `
132
139
 
133
- ` + duplicateThemes.join(`
134
- `);
135
- }), out;
140
+ ${themeTypes}
141
+
142
+ ${exported}
143
+ }
144
+ `, out;
136
145
  }
137
146
  function objectToJsString(obj, keys, valueToIndex) {
138
147
  let arrItems = [];
@@ -166,16 +175,16 @@ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
166
175
  });
167
176
  }
168
177
  function purgeCache(moduleName) {
169
- searchCache(moduleName, function(mod) {
178
+ searchCache(moduleName, (mod) => {
170
179
  delete require.cache[mod.id];
171
- }), Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
180
+ }), Object.keys(module.constructor._pathCache).forEach((cacheKey) => {
172
181
  cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
173
182
  });
174
183
  }
175
184
  function searchCache(moduleName, callback) {
176
185
  let mod = require.resolve(moduleName);
177
186
  mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
178
- depth > 10 || (mod2.children.forEach(function(child) {
187
+ depth > 10 || (mod2.children.forEach((child) => {
179
188
  traverse(child, depth + 1);
180
189
  }), callback(mod2));
181
190
  }(mod);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/generate-themes.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["Module", "key", "target", "mod"]
6
6
  }
@@ -33,14 +33,14 @@ async function generateThemes(inputFile) {
33
33
  });
34
34
  var inputFilePath = inputFile[0] === "." ? (0, import_node_path.join)(process.cwd(), inputFile) : inputFile;
35
35
  purgeCache(inputFilePath);
36
- var promise = null;
36
+ var promises = [];
37
37
  import_node_module.default.prototype.require = function(id) {
38
38
  var out = ogRequire.apply(this, arguments);
39
- if (id === "@tamagui/theme-builder" && !promise) {
40
- var resolve;
41
- return promise = new Promise(function(res) {
39
+ if (id === "@tamagui/theme-builder") {
40
+ var resolve, promise = new Promise(function(res) {
42
41
  resolve = res;
43
- }), createThemeIntercept(out, {
42
+ });
43
+ return promises.push(promise), createThemeIntercept(out, {
44
44
  onComplete: function(result) {
45
45
  resolve == null || resolve(result.themeBuilder);
46
46
  }
@@ -48,25 +48,28 @@ async function generateThemes(inputFile) {
48
48
  }
49
49
  return out;
50
50
  };
51
+ var og = process.env.TAMAGUI_KEEP_THEMES;
52
+ process.env.TAMAGUI_KEEP_THEMES = "1", process.env.TAMAGUI_RUN_THEMEBUILDER = "1";
51
53
  try {
52
54
  var requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes || requiredThemes[Object.keys(requiredThemes)[0]], generatedThemes = generatedThemesToTypescript(themes), tm;
53
- if (promise) {
55
+ if (promises.length) {
54
56
  var finished = !1;
55
- promise.then(function() {
57
+ await Promise.any(promises).then(function() {
56
58
  finished = !0;
57
59
  }), tm = setTimeout(function() {
58
60
  finished || console.warn("Warning: ThemeBuilder didn't finish after a couple seconds, did you forget to call .build()?");
59
61
  }, 2e3);
60
62
  }
61
- var themeBuilder = promise ? await promise : null;
63
+ var themeBuilder = await Promise.any(promises);
62
64
  return clearTimeout(tm), {
63
65
  generated: generatedThemes,
64
66
  state: themeBuilder == null ? void 0 : themeBuilder.state
65
67
  };
66
68
  } catch (err) {
67
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err == null ? void 0 : err.stack);
69
+ console.warn(` \u26A0\uFE0F Error running theme builder:
70
+ `, (err == null ? void 0 : err.stack) || err);
68
71
  } finally {
69
- import_node_module.default.prototype.require = ogRequire;
72
+ process.env.TAMAGUI_KEEP_THEMES = og, import_node_module.default.prototype.require = ogRequire;
70
73
  }
71
74
  }
72
75
  var dedupedTokens = /* @__PURE__ */ new Map();
@@ -114,11 +117,11 @@ ${baseKeys.map(function(param) {
114
117
  function t(a: [number, number][]) {
115
118
  let res: Record<string,string> = {}
116
119
  for (const [ki, vi] of a) {
117
- res[ks[ki] as string] = vs[vi] as string
120
+ res[ks[ki] as string] = colors[vi] as string
118
121
  }
119
122
  return res as Theme
120
123
  }
121
- `, out += `const vs = [
124
+ `, out += `export const colors = [
122
125
  `;
123
126
  var index = 0, valueToIndex = {};
124
127
  dedupedTokens.forEach(function(name2, value2) {
@@ -138,20 +141,23 @@ function t(a: [number, number][]) {
138
141
  `), out += `]
139
142
 
140
143
  `;
141
- var nameI = 0;
144
+ var nameI = 0, themeTypes = "type ThemeNames =", exported = "export const themes: Record<ThemeNames, Theme> = {";
142
145
  return dedupedThemes.forEach(function(theme2) {
143
146
  nameI++;
144
147
  var key2 = JSON.stringify(theme2), names = dedupedThemeToNames.get(key2), name2 = `n${nameI}`, baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
145
148
  out += `
146
- ${baseTheme}`;
147
- var duplicateThemes = names.map(function(n) {
148
- return `export const ${n} = ${name2}`;
149
+ ${baseTheme}`, names.forEach(function(n) {
150
+ exported += `
151
+ ${n}: ${name2},`, n.toLowerCase() === n && (themeTypes += `
152
+ | '${n}'`);
149
153
  });
150
- out += `
154
+ }), out += `
151
155
 
152
- ` + duplicateThemes.join(`
153
- `);
154
- }), out;
156
+ ${themeTypes}
157
+
158
+ ${exported}
159
+ }
160
+ `, out;
155
161
  }
156
162
  function objectToJsString(obj, keys, valueToIndex) {
157
163
  var arrItems = [];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/generate-themes/src/generate-themes.ts"],
4
- "mappings": "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",
5
- "names": ["ogRequire", "Module", "prototype", "require", "didRegisterOnce", "generateThemes", "inputFile", "register", "hookIgnoreNodeModules", "inputFilePath", "join", "process", "cwd", "purgeCache", "promise", "id", "out", "apply", "arguments", "resolve", "Promise", "res", "createThemeIntercept", "onComplete", "result", "themeBuilder", "requiredThemes", "themes", "Object", "keys", "generatedThemes", "generatedThemesToTypescript", "tm", "finished", "then", "setTimeout", "console", "warn", "clearTimeout", "generated", "state", "err", "dedupedTokens", "Map", "dedupedThemes", "dedupedThemeToNames", "i", "name", "theme", "j", "entries", "key", "value", "uniqueKey", "has", "set", "JSON", "stringify", "get", "Error", "baseKeys", "light", "baseTypeString", "map", "k", "index", "valueToIndex", "forEach", "nameI", "names", "baseTheme", "objectToJsString", "duplicateThemes", "n", "obj", "arrItems", "ki", "indexOf", "vi", "push", "createThemeExport", "themeBuilderInterceptOpts", "Proxy", "target", "Reflect", "thisArg", "argArray", "builder", "themeBuilderIntercept", "moduleName", "searchCache", "mod", "cache", "module", "constructor", "_pathCache", "cacheKey", "callback", "undefined", "traverse", "depth", "children", "child"]
4
+ "mappings": "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",
5
+ "names": ["ogRequire", "Module", "prototype", "require", "didRegisterOnce", "generateThemes", "inputFile", "register", "hookIgnoreNodeModules", "inputFilePath", "join", "process", "cwd", "purgeCache", "promises", "id", "out", "apply", "arguments", "resolve", "promise", "Promise", "res", "push", "createThemeIntercept", "onComplete", "result", "themeBuilder", "og", "env", "TAMAGUI_KEEP_THEMES", "TAMAGUI_RUN_THEMEBUILDER", "requiredThemes", "themes", "Object", "keys", "generatedThemes", "generatedThemesToTypescript", "tm", "length", "finished", "any", "then", "setTimeout", "console", "warn", "clearTimeout", "generated", "state", "err", "dedupedTokens", "Map", "dedupedThemes", "dedupedThemeToNames", "i", "name", "theme", "j", "entries", "key", "value", "uniqueKey", "has", "set", "JSON", "stringify", "get", "Error", "baseKeys", "light", "baseTypeString", "map", "k", "index", "valueToIndex", "forEach", "nameI", "themeTypes", "exported", "names", "baseTheme", "objectToJsString", "n", "toLowerCase", "obj", "arrItems", "ki", "indexOf", "vi", "createThemeExport", "themeBuilderInterceptOpts", "Proxy", "target", "Reflect", "thisArg", "argArray", "builder", "themeBuilderIntercept", "moduleName", "searchCache", "mod", "cache", "module", "constructor", "_pathCache", "cacheKey", "callback", "undefined", "traverse", "depth", "children", "child"]
6
6
  }
@@ -34,7 +34,7 @@ __export(write_generate_themes_exports, {
34
34
  writeGeneratedThemes: () => writeGeneratedThemes
35
35
  });
36
36
  module.exports = __toCommonJS(write_generate_themes_exports);
37
- var import_path = require("path"),
37
+ var import_node_path = require("node:path"),
38
38
  fs = __toESM(require("fs-extra"));
39
39
  async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
40
40
  if (!generatedOutput) return;
@@ -43,9 +43,10 @@ async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
43
43
  state
44
44
  } = generatedOutput,
45
45
  tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir),
46
- themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, "theme-builder.json");
46
+ themeBuilderStatePath = (0, import_node_path.join)(tamaguiDotDir, "theme-builder.json");
47
47
  process.env.DEBUG === "tamagui" && (console.info("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.info("Writing themes to", {
48
48
  outPath,
49
49
  themeBuilderStatePath
50
- })), await Promise.all([fs.writeFile(outPath, generated), state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null]);
50
+ })), await Promise.all([fs.writeFile(outPath, `// @ts-nocheck
51
+ ` + generated), state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null]);
51
52
  }
@@ -25,12 +25,13 @@ __export(write_generate_themes_exports, {
25
25
  writeGeneratedThemes: () => writeGeneratedThemes
26
26
  });
27
27
  module.exports = __toCommonJS(write_generate_themes_exports);
28
- var import_path = require("path"), fs = __toESM(require("fs-extra"));
28
+ var import_node_path = require("node:path"), fs = __toESM(require("fs-extra"));
29
29
  async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
30
30
  if (!generatedOutput) return;
31
- const { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, "theme-builder.json");
31
+ const { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_node_path.join)(tamaguiDotDir, "theme-builder.json");
32
32
  process.env.DEBUG === "tamagui" && (console.info("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.info("Writing themes to", { outPath, themeBuilderStatePath })), await Promise.all([
33
- fs.writeFile(outPath, generated),
33
+ fs.writeFile(outPath, `// @ts-nocheck
34
+ ` + generated),
34
35
  state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
35
36
  ]);
36
37
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/write-generate-themes.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB,iBAErB,KAAoB;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC,gBAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI,iBAEvB,sBAAsB,MAAM,GAAG,WAAW,aAAa,GACvD,4BAAwB,kBAAK,eAAe,oBAAoB;AAEtE,EAAI,QAAQ,IAAI,UAAU,cACxB,QAAQ,KAAK,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC,GAC1E,QAAQ,KAAK,qBAAqB,EAAE,SAAS,sBAAsB,CAAC,IAGtE,MAAM,QAAQ,IAAI;AAAA,IAChB,GAAG,UAAU,SAAS,SAAS;AAAA,IAC/B,SAAS,sBACL,GAAG,UAAU,uBAAuB,KAAK,UAAU,KAAK,CAAC,IACzD;AAAA,EACN,CAAC;AACH;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqB,sBAErB,KAAoB;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC,gBAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI,iBAEvB,sBAAsB,MAAM,GAAG,WAAW,aAAa,GACvD,4BAAwB,uBAAK,eAAe,oBAAoB;AAEtE,EAAI,QAAQ,IAAI,UAAU,cACxB,QAAQ,KAAK,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC,GAC1E,QAAQ,KAAK,qBAAqB,EAAE,SAAS,sBAAsB,CAAC,IAGtE,MAAM,QAAQ,IAAI;AAAA,IAChB,GAAG,UAAU,SAAS;AAAA,IAAqB,SAAS;AAAA,IACpD,SAAS,sBACL,GAAG,UAAU,uBAAuB,KAAK,UAAU,KAAK,CAAC,IACzD;AAAA,EACN,CAAC;AACH;",
5
5
  "names": []
6
6
  }
@@ -26,15 +26,16 @@ __export(write_generate_themes_exports, {
26
26
  writeGeneratedThemes: () => writeGeneratedThemes
27
27
  });
28
28
  module.exports = __toCommonJS(write_generate_themes_exports);
29
- var import_path = require("path"), fs = __toESM(require("fs-extra"));
29
+ var import_node_path = require("node:path"), fs = __toESM(require("fs-extra"));
30
30
  async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
31
31
  if (generatedOutput) {
32
- var { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, "theme-builder.json");
32
+ var { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_node_path.join)(tamaguiDotDir, "theme-builder.json");
33
33
  process.env.DEBUG === "tamagui" && (console.info("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.info("Writing themes to", {
34
34
  outPath,
35
35
  themeBuilderStatePath
36
36
  })), await Promise.all([
37
- fs.writeFile(outPath, generated),
37
+ fs.writeFile(outPath, `// @ts-nocheck
38
+ ` + generated),
38
39
  state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
39
40
  ]);
40
41
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/generate-themes/src/write-generate-themes.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;kBAAqB,iBAErB,KAAoB;AAIpB,eAAsBA,qBACpBC,eACAC,SACAC,iBAA2D;AAE3D,MAAKA,iBAEL;QAAM,EAAEC,WAAWC,MAAK,IAAKF,iBAEvBG,sBAAsB,MAAMC,GAAGC,WAAWP,aAAAA,GAC1CQ,4BAAwBC,kBAAKT,eAAe,oBAAoB;AAEtE,IAAIU,QAAQC,IAAIC,UAAU,cACxBC,QAAQC,KAAK,qBAAqBC,KAAKC,UAAUd,iBAAiB,MAAM,CAAA,CAAA,GACxEW,QAAQC,KAAK,qBAAqB;MAAEb;MAASO;IAAsB,CAAA,IAGrE,MAAMS,QAAQC,IAAI;MAChBZ,GAAGa,UAAUlB,SAASE,SAAAA;MACtBC,SAASC,sBACLC,GAAGa,UAAUX,uBAAuBO,KAAKC,UAAUZ,KAAAA,CAAAA,IACnD;KACL;;AACH;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;uBAAqB,sBAErB,KAAoB;AAIpB,eAAsBA,qBACpBC,eACAC,SACAC,iBAA2D;AAE3D,MAAKA,iBAEL;QAAM,EAAEC,WAAWC,MAAK,IAAKF,iBAEvBG,sBAAsB,MAAMC,GAAGC,WAAWP,aAAAA,GAC1CQ,4BAAwBC,uBAAKT,eAAe,oBAAoB;AAEtE,IAAIU,QAAQC,IAAIC,UAAU,cACxBC,QAAQC,KAAK,qBAAqBC,KAAKC,UAAUd,iBAAiB,MAAM,CAAA,CAAA,GACxEW,QAAQC,KAAK,qBAAqB;MAAEb;MAASO;IAAsB,CAAA,IAGrE,MAAMS,QAAQC,IAAI;MAChBZ,GAAGa,UAAUlB,SAAS;IAAqBE,SAAAA;MAC3CC,SAASC,sBACLC,GAAGa,UAAUX,uBAAuBO,KAAKC,UAAUZ,KAAAA,CAAAA,IACnD;KACL;;AACH;",
5
5
  "names": ["writeGeneratedThemes", "tamaguiDotDir", "outPath", "generatedOutput", "generated", "state", "tamaguiDotDirExists", "fs", "pathExists", "themeBuilderStatePath", "join", "process", "env", "DEBUG", "console", "info", "JSON", "stringify", "Promise", "all", "writeFile"]
6
6
  }
@@ -8,14 +8,15 @@ async function generateThemes(inputFile) {
8
8
  });
9
9
  const inputFilePath = inputFile[0] === "." ? join(process.cwd(), inputFile) : inputFile;
10
10
  purgeCache(inputFilePath);
11
- let promise = null;
11
+ const promises = [];
12
12
  Module.prototype.require = function(id) {
13
13
  const out = ogRequire.apply(this, arguments);
14
- if (id === "@tamagui/theme-builder" && !promise) {
14
+ if (id === "@tamagui/theme-builder") {
15
15
  let resolve;
16
- return promise = new Promise((res) => {
16
+ const promise = new Promise((res) => {
17
17
  resolve = res;
18
- }), createThemeIntercept(out, {
18
+ });
19
+ return promises.push(promise), createThemeIntercept(out, {
19
20
  onComplete: (result) => {
20
21
  resolve?.(result.themeBuilder);
21
22
  }
@@ -23,12 +24,14 @@ async function generateThemes(inputFile) {
23
24
  }
24
25
  return out;
25
26
  };
27
+ let og = process.env.TAMAGUI_KEEP_THEMES;
28
+ process.env.TAMAGUI_KEEP_THEMES = "1", process.env.TAMAGUI_RUN_THEMEBUILDER = "1";
26
29
  try {
27
30
  const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes || requiredThemes[Object.keys(requiredThemes)[0]], generatedThemes = generatedThemesToTypescript(themes);
28
31
  let tm;
29
- if (promise) {
32
+ if (promises.length) {
30
33
  let finished = !1;
31
- promise.then(() => {
34
+ await Promise.any(promises).then(() => {
32
35
  finished = !0;
33
36
  }), tm = setTimeout(() => {
34
37
  finished || console.warn(
@@ -36,15 +39,16 @@ async function generateThemes(inputFile) {
36
39
  );
37
40
  }, 2e3);
38
41
  }
39
- const themeBuilder = promise ? await promise : null;
42
+ const themeBuilder = await Promise.any(promises);
40
43
  return clearTimeout(tm), {
41
44
  generated: generatedThemes,
42
45
  state: themeBuilder?.state
43
46
  };
44
47
  } catch (err) {
45
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
48
+ console.warn(` \u26A0\uFE0F Error running theme builder:
49
+ `, err?.stack || err);
46
50
  } finally {
47
- Module.prototype.require = ogRequire;
51
+ process.env.TAMAGUI_KEEP_THEMES = og, Module.prototype.require = ogRequire;
48
52
  }
49
53
  }
50
54
  const dedupedTokens = /* @__PURE__ */ new Map();
@@ -75,11 +79,11 @@ ${baseKeys.map(([k]) => ` ${k}: string;
75
79
  function t(a: [number, number][]) {
76
80
  let res: Record<string,string> = {}
77
81
  for (const [ki, vi] of a) {
78
- res[ks[ki] as string] = vs[vi] as string
82
+ res[ks[ki] as string] = colors[vi] as string
79
83
  }
80
84
  return res as Theme
81
85
  }
82
- `, out += `const vs = [
86
+ `, out += `export const colors = [
83
87
  `;
84
88
  let index = 0;
85
89
  const valueToIndex = {};
@@ -95,18 +99,23 @@ function t(a: [number, number][]) {
95
99
  `), out += `]
96
100
 
97
101
  `;
98
- let nameI = 0;
102
+ let nameI = 0, themeTypes = "type ThemeNames =", exported = "export const themes: Record<ThemeNames, Theme> = {";
99
103
  return dedupedThemes.forEach((theme) => {
100
104
  nameI++;
101
105
  const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
102
106
  out += `
103
- ${baseTheme}`;
104
- const duplicateThemes = names.map((n) => `export const ${n} = ${name}`);
105
- out += `
107
+ ${baseTheme}`, names.forEach((n) => {
108
+ exported += `
109
+ ${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
110
+ | '${n}'`);
111
+ });
112
+ }), out += `
106
113
 
107
- ` + duplicateThemes.join(`
108
- `);
109
- }), out;
114
+ ${themeTypes}
115
+
116
+ ${exported}
117
+ }
118
+ `, out;
110
119
  }
111
120
  function objectToJsString(obj, keys, valueToIndex) {
112
121
  let arrItems = [];
@@ -140,16 +149,16 @@ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
140
149
  });
141
150
  }
142
151
  function purgeCache(moduleName) {
143
- searchCache(moduleName, function(mod) {
152
+ searchCache(moduleName, (mod) => {
144
153
  delete require.cache[mod.id];
145
- }), Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
154
+ }), Object.keys(module.constructor._pathCache).forEach((cacheKey) => {
146
155
  cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
147
156
  });
148
157
  }
149
158
  function searchCache(moduleName, callback) {
150
159
  let mod = require.resolve(moduleName);
151
160
  mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
152
- depth > 10 || (mod2.children.forEach(function(child) {
161
+ depth > 10 || (mod2.children.forEach((child) => {
153
162
  traverse(child, depth + 1);
154
163
  }), callback(mod2));
155
164
  }(mod);