@tamagui/generate-themes 1.61.2 → 1.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,15 @@
1
- "use strict";
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
14
11
  for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
13
  return to;
19
14
  };
20
15
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
@@ -22,62 +17,51 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
17
  // file that has been converted to a CommonJS file using a Babel-
23
18
  // compatible transform (i.e. "__esModule" has not been set), then set
24
19
  // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
26
21
  mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
29
23
  var generate_themes_exports = {};
30
24
  __export(generate_themes_exports, {
31
25
  generateThemes: () => generateThemes
32
26
  });
33
27
  module.exports = __toCommonJS(generate_themes_exports);
34
- var import_module = __toESM(require("module"));
35
- var import_path = require("path");
28
+ var import_module = __toESM(require("module")), import_path = require("path");
36
29
  const ogRequire = import_module.default.prototype.require;
37
30
  async function generateThemes(inputFile) {
38
31
  const { unregister } = require("esbuild-register/dist/node").register({
39
- hookIgnoreNodeModules: false
40
- });
41
- const inputFilePath = inputFile[0] === "." ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;
32
+ hookIgnoreNodeModules: !1
33
+ }), inputFilePath = inputFile[0] === "." ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;
42
34
  purgeCache(inputFilePath);
43
35
  let promise = null;
44
36
  import_module.default.prototype.require = function(id) {
45
37
  const out = ogRequire.apply(this, arguments);
46
- if (id === "@tamagui/theme-builder") {
47
- if (!promise) {
48
- let resolve;
49
- promise = new Promise((res) => {
50
- resolve = res;
51
- });
52
- return createThemeIntercept(out, {
53
- onComplete: (result) => {
54
- resolve == null ? void 0 : resolve(result.themeBuilder);
55
- }
56
- });
57
- }
38
+ if (id === "@tamagui/theme-builder" && !promise) {
39
+ let resolve;
40
+ return promise = new Promise((res) => {
41
+ resolve = res;
42
+ }), createThemeIntercept(out, {
43
+ onComplete: (result) => {
44
+ resolve?.(result.themeBuilder);
45
+ }
46
+ });
58
47
  }
59
48
  return out;
60
49
  };
61
50
  try {
62
- const requiredThemes = require(inputFilePath);
63
- const themes = requiredThemes["default"] || requiredThemes["themes"];
64
- const generatedThemes = generatedThemesToTypescript(themes);
65
- const themeBuilder = promise ? await promise : null;
51
+ const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes, generatedThemes = generatedThemesToTypescript(themes), themeBuilder = promise ? await promise : null;
66
52
  return {
67
53
  generated: generatedThemes,
68
- state: themeBuilder == null ? void 0 : themeBuilder.state
54
+ state: themeBuilder?.state
69
55
  };
70
56
  } catch (err) {
71
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err == null ? void 0 : err["stack"]);
57
+ console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
72
58
  } finally {
73
- import_module.default.prototype.require = ogRequire;
74
- unregister();
59
+ import_module.default.prototype.require = ogRequire, unregister();
75
60
  }
76
61
  }
77
62
  const dedupedTokens = /* @__PURE__ */ new Map();
78
63
  function generatedThemesToTypescript(themes) {
79
- const dedupedThemes = /* @__PURE__ */ new Map();
80
- const dedupedThemeToNames = /* @__PURE__ */ new Map();
64
+ const dedupedThemes = /* @__PURE__ */ new Map(), dedupedThemeToNames = /* @__PURE__ */ new Map();
81
65
  let i = 0;
82
66
  for (const name in themes) {
83
67
  i++;
@@ -86,26 +70,16 @@ function generatedThemesToTypescript(themes) {
86
70
  for (const [key2, value] of Object.entries(theme)) {
87
71
  i++;
88
72
  const uniqueKey = `t${i}${j}`;
89
- if (!dedupedTokens.has(value)) {
90
- dedupedTokens.set(value, uniqueKey);
91
- }
73
+ dedupedTokens.has(value) || dedupedTokens.set(value, uniqueKey);
92
74
  }
93
75
  const key = JSON.stringify(theme);
94
- if (dedupedThemes.has(key)) {
95
- dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
96
- } else {
97
- dedupedThemes.set(key, theme);
98
- dedupedThemeToNames.set(key, [name]);
99
- }
76
+ dedupedThemes.has(key) ? dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]) : (dedupedThemes.set(key, theme), dedupedThemeToNames.set(key, [name]));
100
77
  }
101
78
  const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);
102
- const baseTypeString = `type Theme = {
103
- ${baseKeys.map(([k]) => {
104
- return ` ${k}: string;
105
- `;
106
- }).join("")}
107
- }`;
108
- let out = `${baseTypeString}
79
+ let out = `${`type Theme = {
80
+ ${baseKeys.map(([k]) => ` ${k}: string;
81
+ `).join("")}
82
+ }`}
109
83
  `;
110
84
  out += `
111
85
  function t(a) {
@@ -116,32 +90,26 @@ function t(a) {
116
90
  }
117
91
  return res
118
92
  }
119
- `;
120
- out += `const vs = [
93
+ `, out += `const vs = [
121
94
  `;
122
95
  let index = 0;
123
96
  const valueToIndex = {};
124
97
  dedupedTokens.forEach((name, value) => {
125
- valueToIndex[value] = index;
126
- index++;
127
- out += ` '${value}',
98
+ valueToIndex[value] = index, index++, out += ` '${value}',
99
+ `;
100
+ }), out += `]
101
+
128
102
  `;
129
- });
130
- out += "]\n\n";
131
103
  const keys = baseKeys.map(([k]) => k);
132
104
  out += `const ks = [
133
- `;
134
- out += keys.map((k) => `'${k}'`).join(",\n");
135
- out += `]
105
+ `, out += keys.map((k) => `'${k}'`).join(`,
106
+ `), out += `]
136
107
 
137
108
  `;
138
109
  let nameI = 0;
139
- dedupedThemes.forEach((theme) => {
110
+ return dedupedThemes.forEach((theme) => {
140
111
  nameI++;
141
- const key = JSON.stringify(theme);
142
- const names = dedupedThemeToNames.get(key);
143
- const name = `n${nameI}`;
144
- const baseTheme = `const ${name} = ${objectToJsString(
112
+ const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(
145
113
  theme,
146
114
  keys,
147
115
  valueToIndex
@@ -151,15 +119,14 @@ ${baseTheme}`;
151
119
  const duplicateThemes = names.map((n) => `export const ${n} = ${name} as Theme`);
152
120
  out += `
153
121
 
154
- ` + duplicateThemes.join("\n");
155
- });
156
- return out;
122
+ ` + duplicateThemes.join(`
123
+ `);
124
+ }), out;
157
125
  }
158
126
  function objectToJsString(obj, keys, valueToIndex) {
159
127
  let arrItems = [];
160
128
  for (const key in obj) {
161
- const ki = keys.indexOf(key);
162
- const vi = valueToIndex[obj[key]];
129
+ const ki = keys.indexOf(key), vi = valueToIndex[obj[key]];
163
130
  arrItems.push(`[${ki}, ${vi}]`);
164
131
  }
165
132
  return `t([${arrItems.join(",")}])`;
@@ -168,15 +135,12 @@ function createThemeIntercept(createThemeExport, themeBuilderInterceptOpts) {
168
135
  return new Proxy(createThemeExport, {
169
136
  get(target, key) {
170
137
  const out = Reflect.get(target, key);
171
- if (key === "createThemeBuilder") {
172
- return new Proxy(out, {
173
- apply(target2, thisArg, argArray) {
174
- const builder = Reflect.apply(target2, thisArg, argArray);
175
- return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
176
- }
177
- });
178
- }
179
- return out;
138
+ return key === "createThemeBuilder" ? new Proxy(out, {
139
+ apply(target2, thisArg, argArray) {
140
+ const builder = Reflect.apply(target2, thisArg, argArray);
141
+ return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
142
+ }
143
+ }) : out;
180
144
  }
181
145
  });
182
146
  }
@@ -184,38 +148,26 @@ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
184
148
  return new Proxy(themeBuilder, {
185
149
  get(target, key) {
186
150
  const out = Reflect.get(target, key);
187
- if (key === "build") {
188
- themeBuilderInterceptOpts.onComplete({
189
- themeBuilder
190
- });
191
- }
192
- return out;
151
+ return key === "build" && themeBuilderInterceptOpts.onComplete({
152
+ themeBuilder
153
+ }), out;
193
154
  }
194
155
  });
195
156
  }
196
157
  function purgeCache(moduleName) {
197
158
  searchCache(moduleName, function(mod) {
198
159
  delete require.cache[mod.id];
199
- });
200
- Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
201
- if (cacheKey.indexOf(moduleName) > 0) {
202
- delete module.constructor._pathCache[cacheKey];
203
- }
160
+ }), Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
161
+ cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
204
162
  });
205
163
  }
206
164
  function searchCache(moduleName, callback) {
207
165
  let mod = require.resolve(moduleName);
208
- if (mod && (mod = require.cache[mod]) !== void 0) {
209
- ;
210
- (function traverse(mod2, depth = 0) {
211
- if (depth > 10)
212
- return;
213
- mod2.children.forEach(function(child) {
214
- traverse(child, depth + 1);
215
- });
216
- callback(mod2);
217
- })(mod);
218
- }
166
+ mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
167
+ depth > 10 || (mod2.children.forEach(function(child) {
168
+ traverse(child, depth + 1);
169
+ }), callback(mod2));
170
+ }(mod);
219
171
  }
220
172
  // Annotate the CommonJS export names for ESM import in node:
221
173
  0 && (module.exports = {
@@ -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
  }
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: !0 });
10
+ }, __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from == "object" || typeof from == "function")
12
+ for (let key of __getOwnPropNames(from))
13
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
22
+ mod
23
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
24
+ var generate_themes_exports = {};
25
+ __export(generate_themes_exports, {
26
+ generateThemes: () => generateThemes
27
+ });
28
+ module.exports = __toCommonJS(generate_themes_exports);
29
+ var import_module = __toESM(require("module")), import_path = require("path");
30
+ const ogRequire = import_module.default.prototype.require;
31
+ async function generateThemes(inputFile) {
32
+ const { unregister } = require("esbuild-register/dist/node").register({
33
+ hookIgnoreNodeModules: !1
34
+ }), inputFilePath = inputFile[0] === "." ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;
35
+ purgeCache(inputFilePath);
36
+ let promise = null;
37
+ import_module.default.prototype.require = function(id) {
38
+ const out = ogRequire.apply(this, arguments);
39
+ if (id === "@tamagui/theme-builder" && !promise) {
40
+ let resolve;
41
+ return promise = new Promise((res) => {
42
+ resolve = res;
43
+ }), createThemeIntercept(out, {
44
+ onComplete: (result) => {
45
+ resolve?.(result.themeBuilder);
46
+ }
47
+ });
48
+ }
49
+ return out;
50
+ };
51
+ try {
52
+ const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes, generatedThemes = generatedThemesToTypescript(themes), themeBuilder = promise ? await promise : null;
53
+ return {
54
+ generated: generatedThemes,
55
+ state: themeBuilder?.state
56
+ };
57
+ } catch (err) {
58
+ console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
59
+ } finally {
60
+ import_module.default.prototype.require = ogRequire, unregister();
61
+ }
62
+ }
63
+ const dedupedTokens = /* @__PURE__ */ new Map();
64
+ function generatedThemesToTypescript(themes) {
65
+ const dedupedThemes = /* @__PURE__ */ new Map(), dedupedThemeToNames = /* @__PURE__ */ new Map();
66
+ let i = 0;
67
+ for (const name in themes) {
68
+ i++;
69
+ const theme = themes[name];
70
+ let j = 0;
71
+ for (const [key2, value] of Object.entries(theme)) {
72
+ i++;
73
+ const uniqueKey = `t${i}${j}`;
74
+ dedupedTokens.has(value) || dedupedTokens.set(value, uniqueKey);
75
+ }
76
+ const key = JSON.stringify(theme);
77
+ dedupedThemes.has(key) ? dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]) : (dedupedThemes.set(key, theme), dedupedThemeToNames.set(key, [name]));
78
+ }
79
+ const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);
80
+ let out = `${`type Theme = {
81
+ ${baseKeys.map(([k]) => ` ${k}: string;
82
+ `).join("")}
83
+ }`}
84
+ `;
85
+ out += `
86
+ function t(a) {
87
+ let res: Record<string, string> = {}
88
+ for (const [ki, vi] of a) {
89
+ // @ts-ignore
90
+ res[ks[ki]] = vs[vi]
91
+ }
92
+ return res
93
+ }
94
+ `, out += `const vs = [
95
+ `;
96
+ let index = 0;
97
+ const valueToIndex = {};
98
+ dedupedTokens.forEach((name, value) => {
99
+ valueToIndex[value] = index, index++, out += ` '${value}',
100
+ `;
101
+ }), out += `]
102
+
103
+ `;
104
+ const keys = baseKeys.map(([k]) => k);
105
+ out += `const ks = [
106
+ `, out += keys.map((k) => `'${k}'`).join(`,
107
+ `), out += `]
108
+
109
+ `;
110
+ let nameI = 0;
111
+ return dedupedThemes.forEach((theme) => {
112
+ nameI++;
113
+ const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(
114
+ theme,
115
+ keys,
116
+ valueToIndex
117
+ )} as Theme`;
118
+ out += `
119
+ ${baseTheme}`;
120
+ const duplicateThemes = names.map((n) => `export const ${n} = ${name} as Theme`);
121
+ out += `
122
+
123
+ ` + duplicateThemes.join(`
124
+ `);
125
+ }), out;
126
+ }
127
+ function objectToJsString(obj, keys, valueToIndex) {
128
+ let arrItems = [];
129
+ for (const key in obj) {
130
+ const ki = keys.indexOf(key), vi = valueToIndex[obj[key]];
131
+ arrItems.push(`[${ki}, ${vi}]`);
132
+ }
133
+ return `t([${arrItems.join(",")}])`;
134
+ }
135
+ function createThemeIntercept(createThemeExport, themeBuilderInterceptOpts) {
136
+ return new Proxy(createThemeExport, {
137
+ get(target, key) {
138
+ const out = Reflect.get(target, key);
139
+ return key === "createThemeBuilder" ? new Proxy(out, {
140
+ apply(target2, thisArg, argArray) {
141
+ const builder = Reflect.apply(target2, thisArg, argArray);
142
+ return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
143
+ }
144
+ }) : out;
145
+ }
146
+ });
147
+ }
148
+ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
149
+ return new Proxy(themeBuilder, {
150
+ get(target, key) {
151
+ const out = Reflect.get(target, key);
152
+ return key === "build" && themeBuilderInterceptOpts.onComplete({
153
+ themeBuilder
154
+ }), out;
155
+ }
156
+ });
157
+ }
158
+ function purgeCache(moduleName) {
159
+ searchCache(moduleName, function(mod) {
160
+ delete require.cache[mod.id];
161
+ }), Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
162
+ cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
163
+ });
164
+ }
165
+ function searchCache(moduleName, callback) {
166
+ let mod = require.resolve(moduleName);
167
+ mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
168
+ depth > 10 || (mod2.children.forEach(function(child) {
169
+ traverse(child, depth + 1);
170
+ }), callback(mod2));
171
+ }(mod);
172
+ }
173
+ // Annotate the CommonJS export names for ESM import in node:
174
+ 0 && (module.exports = {
175
+ generateThemes
176
+ });
177
+ //# sourceMappingURL=generate-themes.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/generate-themes.ts"],
4
+ "mappings": "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",
5
+ "names": ["Module", "key", "target", "mod"]
6
+ }
package/dist/cjs/index.js CHANGED
@@ -1,18 +1,14 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
6
+ if (from && typeof from == "object" || typeof from == "function")
8
7
  for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
8
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
9
  return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
10
+ }, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
11
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
12
  var src_exports = {};
17
13
  module.exports = __toCommonJS(src_exports);
18
14
  __reExport(src_exports, require("./generate-themes"), module.exports);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,8BAAd;AACA,wBAAc,oCADd;",
4
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,8BAAd;AACA,wBAAc,oCADd;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from == "object" || typeof from == "function")
8
+ for (let key of __getOwnPropNames(from))
9
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ return to;
11
+ }, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
12
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
13
+ var src_exports = {};
14
+ module.exports = __toCommonJS(src_exports);
15
+ __reExport(src_exports, require("./generate-themes"), module.exports);
16
+ __reExport(src_exports, require("./write-generate-themes"), module.exports);
17
+ // Annotate the CommonJS export names for ESM import in node:
18
+ 0 && (module.exports = {
19
+ ...require("./generate-themes"),
20
+ ...require("./write-generate-themes")
21
+ });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,8BAAd;AACA,wBAAc,oCADd;",
5
+ "names": []
6
+ }
@@ -1,20 +1,15 @@
1
- "use strict";
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
14
11
  for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
13
  return to;
19
14
  };
20
15
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
@@ -22,28 +17,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
17
  // file that has been converted to a CommonJS file using a Babel-
23
18
  // compatible transform (i.e. "__esModule" has not been set), then set
24
19
  // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
26
21
  mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
29
23
  var write_generate_themes_exports = {};
30
24
  __export(write_generate_themes_exports, {
31
25
  writeGeneratedThemes: () => writeGeneratedThemes
32
26
  });
33
27
  module.exports = __toCommonJS(write_generate_themes_exports);
34
- var import_path = require("path");
35
- var fs = __toESM(require("fs-extra"));
28
+ var import_path = require("path"), fs = __toESM(require("fs-extra"));
36
29
  async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
37
30
  if (!generatedOutput)
38
31
  return;
39
- const { generated, state } = generatedOutput;
40
- const tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir);
41
- const themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, `theme-builder.json`);
42
- if (process.env.DEBUG === "tamagui") {
43
- console.log(`Generated themes:`, JSON.stringify(generatedOutput, null, 2));
44
- console.log(`Writing themes to`, { outPath, themeBuilderStatePath });
45
- }
46
- await Promise.all([
32
+ const { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, "theme-builder.json");
33
+ process.env.DEBUG === "tamagui" && (console.log("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.log("Writing themes to", { outPath, themeBuilderStatePath })), await Promise.all([
47
34
  fs.writeFile(outPath, generated),
48
35
  state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
49
36
  ]);
@@ -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;AAErB,SAAoB;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI;AAE7B,QAAM,sBAAsB,MAAM,GAAG,WAAW,aAAa;AAC7D,QAAM,4BAAwB,kBAAK,eAAe,oBAAoB;AAEtE,MAAI,QAAQ,IAAI,UAAU,WAAW;AAEnC,YAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;AAEzE,YAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC;AAAA,EACrE;AAEA,QAAM,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,kBAAqB,iBAErB,KAAoB;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI,iBAEvB,sBAAsB,MAAM,GAAG,WAAW,aAAa,GACvD,4BAAwB,kBAAK,eAAe,oBAAoB;AAEtE,EAAI,QAAQ,IAAI,UAAU,cAExB,QAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC,GAEzE,QAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC,IAGrE,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;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: !0 });
10
+ }, __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from == "object" || typeof from == "function")
12
+ for (let key of __getOwnPropNames(from))
13
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
22
+ mod
23
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
24
+ var write_generate_themes_exports = {};
25
+ __export(write_generate_themes_exports, {
26
+ writeGeneratedThemes: () => writeGeneratedThemes
27
+ });
28
+ module.exports = __toCommonJS(write_generate_themes_exports);
29
+ var import_path = require("path"), fs = __toESM(require("fs-extra"));
30
+ async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
31
+ if (!generatedOutput)
32
+ return;
33
+ const { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = (0, import_path.join)(tamaguiDotDir, "theme-builder.json");
34
+ process.env.DEBUG === "tamagui" && (console.log("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.log("Writing themes to", { outPath, themeBuilderStatePath })), await Promise.all([
35
+ fs.writeFile(outPath, generated),
36
+ state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
37
+ ]);
38
+ }
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ writeGeneratedThemes
42
+ });
43
+ //# sourceMappingURL=write-generate-themes.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 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;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI,iBAEvB,sBAAsB,MAAM,GAAG,WAAW,aAAa,GACvD,4BAAwB,kBAAK,eAAe,oBAAoB;AAEtE,EAAI,QAAQ,IAAI,UAAU,cAExB,QAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC,GAEzE,QAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC,IAGrE,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;",
5
+ "names": []
6
+ }
@@ -3,48 +3,39 @@ import { join } from "path";
3
3
  const ogRequire = Module.prototype.require;
4
4
  async function generateThemes(inputFile) {
5
5
  const { unregister } = require("esbuild-register/dist/node").register({
6
- hookIgnoreNodeModules: false
7
- });
8
- const inputFilePath = inputFile[0] === "." ? join(process.cwd(), inputFile) : inputFile;
6
+ hookIgnoreNodeModules: !1
7
+ }), inputFilePath = inputFile[0] === "." ? join(process.cwd(), inputFile) : inputFile;
9
8
  purgeCache(inputFilePath);
10
9
  let promise = null;
11
10
  Module.prototype.require = function(id) {
12
11
  const out = ogRequire.apply(this, arguments);
13
- if (id === "@tamagui/theme-builder") {
14
- if (!promise) {
15
- let resolve;
16
- promise = new Promise((res) => {
17
- resolve = res;
18
- });
19
- return createThemeIntercept(out, {
20
- onComplete: (result) => {
21
- resolve == null ? void 0 : resolve(result.themeBuilder);
22
- }
23
- });
24
- }
12
+ if (id === "@tamagui/theme-builder" && !promise) {
13
+ let resolve;
14
+ return promise = new Promise((res) => {
15
+ resolve = res;
16
+ }), createThemeIntercept(out, {
17
+ onComplete: (result) => {
18
+ resolve?.(result.themeBuilder);
19
+ }
20
+ });
25
21
  }
26
22
  return out;
27
23
  };
28
24
  try {
29
- const requiredThemes = require(inputFilePath);
30
- const themes = requiredThemes["default"] || requiredThemes["themes"];
31
- const generatedThemes = generatedThemesToTypescript(themes);
32
- const themeBuilder = promise ? await promise : null;
25
+ const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes, generatedThemes = generatedThemesToTypescript(themes), themeBuilder = promise ? await promise : null;
33
26
  return {
34
27
  generated: generatedThemes,
35
- state: themeBuilder == null ? void 0 : themeBuilder.state
28
+ state: themeBuilder?.state
36
29
  };
37
30
  } catch (err) {
38
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err == null ? void 0 : err["stack"]);
31
+ console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err?.stack);
39
32
  } finally {
40
- Module.prototype.require = ogRequire;
41
- unregister();
33
+ Module.prototype.require = ogRequire, unregister();
42
34
  }
43
35
  }
44
36
  const dedupedTokens = /* @__PURE__ */ new Map();
45
37
  function generatedThemesToTypescript(themes) {
46
- const dedupedThemes = /* @__PURE__ */ new Map();
47
- const dedupedThemeToNames = /* @__PURE__ */ new Map();
38
+ const dedupedThemes = /* @__PURE__ */ new Map(), dedupedThemeToNames = /* @__PURE__ */ new Map();
48
39
  let i = 0;
49
40
  for (const name in themes) {
50
41
  i++;
@@ -53,26 +44,16 @@ function generatedThemesToTypescript(themes) {
53
44
  for (const [key2, value] of Object.entries(theme)) {
54
45
  i++;
55
46
  const uniqueKey = `t${i}${j}`;
56
- if (!dedupedTokens.has(value)) {
57
- dedupedTokens.set(value, uniqueKey);
58
- }
47
+ dedupedTokens.has(value) || dedupedTokens.set(value, uniqueKey);
59
48
  }
60
49
  const key = JSON.stringify(theme);
61
- if (dedupedThemes.has(key)) {
62
- dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
63
- } else {
64
- dedupedThemes.set(key, theme);
65
- dedupedThemeToNames.set(key, [name]);
66
- }
50
+ dedupedThemes.has(key) ? dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]) : (dedupedThemes.set(key, theme), dedupedThemeToNames.set(key, [name]));
67
51
  }
68
52
  const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);
69
- const baseTypeString = `type Theme = {
70
- ${baseKeys.map(([k]) => {
71
- return ` ${k}: string;
72
- `;
73
- }).join("")}
74
- }`;
75
- let out = `${baseTypeString}
53
+ let out = `${`type Theme = {
54
+ ${baseKeys.map(([k]) => ` ${k}: string;
55
+ `).join("")}
56
+ }`}
76
57
  `;
77
58
  out += `
78
59
  function t(a) {
@@ -83,32 +64,26 @@ function t(a) {
83
64
  }
84
65
  return res
85
66
  }
86
- `;
87
- out += `const vs = [
67
+ `, out += `const vs = [
88
68
  `;
89
69
  let index = 0;
90
70
  const valueToIndex = {};
91
71
  dedupedTokens.forEach((name, value) => {
92
- valueToIndex[value] = index;
93
- index++;
94
- out += ` '${value}',
72
+ valueToIndex[value] = index, index++, out += ` '${value}',
73
+ `;
74
+ }), out += `]
75
+
95
76
  `;
96
- });
97
- out += "]\n\n";
98
77
  const keys = baseKeys.map(([k]) => k);
99
78
  out += `const ks = [
100
- `;
101
- out += keys.map((k) => `'${k}'`).join(",\n");
102
- out += `]
79
+ `, out += keys.map((k) => `'${k}'`).join(`,
80
+ `), out += `]
103
81
 
104
82
  `;
105
83
  let nameI = 0;
106
- dedupedThemes.forEach((theme) => {
84
+ return dedupedThemes.forEach((theme) => {
107
85
  nameI++;
108
- const key = JSON.stringify(theme);
109
- const names = dedupedThemeToNames.get(key);
110
- const name = `n${nameI}`;
111
- const baseTheme = `const ${name} = ${objectToJsString(
86
+ const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(
112
87
  theme,
113
88
  keys,
114
89
  valueToIndex
@@ -118,15 +93,14 @@ ${baseTheme}`;
118
93
  const duplicateThemes = names.map((n) => `export const ${n} = ${name} as Theme`);
119
94
  out += `
120
95
 
121
- ` + duplicateThemes.join("\n");
122
- });
123
- return out;
96
+ ` + duplicateThemes.join(`
97
+ `);
98
+ }), out;
124
99
  }
125
100
  function objectToJsString(obj, keys, valueToIndex) {
126
101
  let arrItems = [];
127
102
  for (const key in obj) {
128
- const ki = keys.indexOf(key);
129
- const vi = valueToIndex[obj[key]];
103
+ const ki = keys.indexOf(key), vi = valueToIndex[obj[key]];
130
104
  arrItems.push(`[${ki}, ${vi}]`);
131
105
  }
132
106
  return `t([${arrItems.join(",")}])`;
@@ -135,15 +109,12 @@ function createThemeIntercept(createThemeExport, themeBuilderInterceptOpts) {
135
109
  return new Proxy(createThemeExport, {
136
110
  get(target, key) {
137
111
  const out = Reflect.get(target, key);
138
- if (key === "createThemeBuilder") {
139
- return new Proxy(out, {
140
- apply(target2, thisArg, argArray) {
141
- const builder = Reflect.apply(target2, thisArg, argArray);
142
- return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
143
- }
144
- });
145
- }
146
- return out;
112
+ return key === "createThemeBuilder" ? new Proxy(out, {
113
+ apply(target2, thisArg, argArray) {
114
+ const builder = Reflect.apply(target2, thisArg, argArray);
115
+ return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
116
+ }
117
+ }) : out;
147
118
  }
148
119
  });
149
120
  }
@@ -151,38 +122,26 @@ function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
151
122
  return new Proxy(themeBuilder, {
152
123
  get(target, key) {
153
124
  const out = Reflect.get(target, key);
154
- if (key === "build") {
155
- themeBuilderInterceptOpts.onComplete({
156
- themeBuilder
157
- });
158
- }
159
- return out;
125
+ return key === "build" && themeBuilderInterceptOpts.onComplete({
126
+ themeBuilder
127
+ }), out;
160
128
  }
161
129
  });
162
130
  }
163
131
  function purgeCache(moduleName) {
164
132
  searchCache(moduleName, function(mod) {
165
133
  delete require.cache[mod.id];
166
- });
167
- Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
168
- if (cacheKey.indexOf(moduleName) > 0) {
169
- delete module.constructor._pathCache[cacheKey];
170
- }
134
+ }), Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
135
+ cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
171
136
  });
172
137
  }
173
138
  function searchCache(moduleName, callback) {
174
139
  let mod = require.resolve(moduleName);
175
- if (mod && (mod = require.cache[mod]) !== void 0) {
176
- ;
177
- (function traverse(mod2, depth = 0) {
178
- if (depth > 10)
179
- return;
180
- mod2.children.forEach(function(child) {
181
- traverse(child, depth + 1);
182
- });
183
- callback(mod2);
184
- })(mod);
185
- }
140
+ mod && (mod = require.cache[mod]) !== void 0 && function traverse(mod2, depth = 0) {
141
+ depth > 10 || (mod2.children.forEach(function(child) {
142
+ traverse(child, depth + 1);
143
+ }), callback(mod2));
144
+ }(mod);
186
145
  }
187
146
  export {
188
147
  generateThemes
@@ -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": ["key", "target", "mod"]
6
6
  }
@@ -3,14 +3,8 @@ import * as fs from "fs-extra";
3
3
  async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
4
4
  if (!generatedOutput)
5
5
  return;
6
- const { generated, state } = generatedOutput;
7
- const tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir);
8
- const themeBuilderStatePath = join(tamaguiDotDir, `theme-builder.json`);
9
- if (process.env.DEBUG === "tamagui") {
10
- console.log(`Generated themes:`, JSON.stringify(generatedOutput, null, 2));
11
- console.log(`Writing themes to`, { outPath, themeBuilderStatePath });
12
- }
13
- await Promise.all([
6
+ const { generated, state } = generatedOutput, tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir), themeBuilderStatePath = join(tamaguiDotDir, "theme-builder.json");
7
+ process.env.DEBUG === "tamagui" && (console.log("Generated themes:", JSON.stringify(generatedOutput, null, 2)), console.log("Writing themes to", { outPath, themeBuilderStatePath })), await Promise.all([
14
8
  fs.writeFile(outPath, generated),
15
9
  state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
16
10
  ]);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/write-generate-themes.ts"],
4
- "mappings": "AAAA,SAAS,YAAY;AAErB,YAAY,QAAQ;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI;AAE7B,QAAM,sBAAsB,MAAM,GAAG,WAAW,aAAa;AAC7D,QAAM,wBAAwB,KAAK,eAAe,oBAAoB;AAEtE,MAAI,QAAQ,IAAI,UAAU,WAAW;AAEnC,YAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;AAEzE,YAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC;AAAA,EACrE;AAEA,QAAM,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,SAAS,YAAY;AAErB,YAAY,QAAQ;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI,iBAEvB,sBAAsB,MAAM,GAAG,WAAW,aAAa,GACvD,wBAAwB,KAAK,eAAe,oBAAoB;AAEtE,EAAI,QAAQ,IAAI,UAAU,cAExB,QAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC,GAEzE,QAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC,IAGrE,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;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/generate-themes",
3
- "version": "1.61.2",
3
+ "version": "1.62.0",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "main": "dist/cjs",
@@ -22,18 +22,18 @@
22
22
  }
23
23
  },
24
24
  "scripts": {
25
- "build": "tamagui-build --output-mjs",
25
+ "build": "tamagui-build",
26
26
  "watch": "yarn build --watch",
27
27
  "clean": "tamagui-build clean",
28
28
  "clean:build": "tamagui-build clean:build"
29
29
  },
30
30
  "dependencies": {
31
- "@tamagui/create-theme": "1.61.2",
32
- "@tamagui/types": "1.61.2",
31
+ "@tamagui/create-theme": "1.62.0",
32
+ "@tamagui/types": "1.62.0",
33
33
  "esbuild-register": "^3.4.2",
34
34
  "fs-extra": "^11.1.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@tamagui/build": "1.61.2"
37
+ "@tamagui/build": "1.62.0"
38
38
  }
39
39
  }
@@ -1,190 +0,0 @@
1
- import Module from "module";
2
- import { join } from "path";
3
- const ogRequire = Module.prototype.require;
4
- async function generateThemes(inputFile) {
5
- const { unregister } = require("esbuild-register/dist/node").register({
6
- hookIgnoreNodeModules: false
7
- });
8
- const inputFilePath = inputFile[0] === "." ? join(process.cwd(), inputFile) : inputFile;
9
- purgeCache(inputFilePath);
10
- let promise = null;
11
- Module.prototype.require = function(id) {
12
- const out = ogRequire.apply(this, arguments);
13
- if (id === "@tamagui/theme-builder") {
14
- if (!promise) {
15
- let resolve;
16
- promise = new Promise((res) => {
17
- resolve = res;
18
- });
19
- return createThemeIntercept(out, {
20
- onComplete: (result) => {
21
- resolve == null ? void 0 : resolve(result.themeBuilder);
22
- }
23
- });
24
- }
25
- }
26
- return out;
27
- };
28
- try {
29
- const requiredThemes = require(inputFilePath);
30
- const themes = requiredThemes["default"] || requiredThemes["themes"];
31
- const generatedThemes = generatedThemesToTypescript(themes);
32
- const themeBuilder = promise ? await promise : null;
33
- return {
34
- generated: generatedThemes,
35
- state: themeBuilder == null ? void 0 : themeBuilder.state
36
- };
37
- } catch (err) {
38
- console.warn(` \u26A0\uFE0F Error running theme builder: ${err}`, err == null ? void 0 : err["stack"]);
39
- } finally {
40
- Module.prototype.require = ogRequire;
41
- unregister();
42
- }
43
- }
44
- const dedupedTokens = /* @__PURE__ */ new Map();
45
- function generatedThemesToTypescript(themes) {
46
- const dedupedThemes = /* @__PURE__ */ new Map();
47
- const dedupedThemeToNames = /* @__PURE__ */ new Map();
48
- let i = 0;
49
- for (const name in themes) {
50
- i++;
51
- const theme = themes[name];
52
- let j = 0;
53
- for (const [key2, value] of Object.entries(theme)) {
54
- i++;
55
- const uniqueKey = `t${i}${j}`;
56
- if (!dedupedTokens.has(value)) {
57
- dedupedTokens.set(value, uniqueKey);
58
- }
59
- }
60
- const key = JSON.stringify(theme);
61
- if (dedupedThemes.has(key)) {
62
- dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
63
- } else {
64
- dedupedThemes.set(key, theme);
65
- dedupedThemeToNames.set(key, [name]);
66
- }
67
- }
68
- const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);
69
- const baseTypeString = `type Theme = {
70
- ${baseKeys.map(([k]) => {
71
- return ` ${k}: string;
72
- `;
73
- }).join("")}
74
- }`;
75
- let out = `${baseTypeString}
76
- `;
77
- out += `
78
- function t(a) {
79
- let res: Record<string, string> = {}
80
- for (const [ki, vi] of a) {
81
- // @ts-ignore
82
- res[ks[ki]] = vs[vi]
83
- }
84
- return res
85
- }
86
- `;
87
- out += `const vs = [
88
- `;
89
- let index = 0;
90
- const valueToIndex = {};
91
- dedupedTokens.forEach((name, value) => {
92
- valueToIndex[value] = index;
93
- index++;
94
- out += ` '${value}',
95
- `;
96
- });
97
- out += "]\n\n";
98
- const keys = baseKeys.map(([k]) => k);
99
- out += `const ks = [
100
- `;
101
- out += keys.map((k) => `'${k}'`).join(",\n");
102
- out += `]
103
-
104
- `;
105
- let nameI = 0;
106
- dedupedThemes.forEach((theme) => {
107
- nameI++;
108
- const key = JSON.stringify(theme);
109
- const names = dedupedThemeToNames.get(key);
110
- const name = `n${nameI}`;
111
- const baseTheme = `const ${name} = ${objectToJsString(
112
- theme,
113
- keys,
114
- valueToIndex
115
- )} as Theme`;
116
- out += `
117
- ${baseTheme}`;
118
- const duplicateThemes = names.map((n) => `export const ${n} = ${name} as Theme`);
119
- out += `
120
-
121
- ` + duplicateThemes.join("\n");
122
- });
123
- return out;
124
- }
125
- function objectToJsString(obj, keys, valueToIndex) {
126
- let arrItems = [];
127
- for (const key in obj) {
128
- const ki = keys.indexOf(key);
129
- const vi = valueToIndex[obj[key]];
130
- arrItems.push(`[${ki}, ${vi}]`);
131
- }
132
- return `t([${arrItems.join(",")}])`;
133
- }
134
- function createThemeIntercept(createThemeExport, themeBuilderInterceptOpts) {
135
- return new Proxy(createThemeExport, {
136
- get(target, key) {
137
- const out = Reflect.get(target, key);
138
- if (key === "createThemeBuilder") {
139
- return new Proxy(out, {
140
- apply(target2, thisArg, argArray) {
141
- const builder = Reflect.apply(target2, thisArg, argArray);
142
- return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
143
- }
144
- });
145
- }
146
- return out;
147
- }
148
- });
149
- }
150
- function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
151
- return new Proxy(themeBuilder, {
152
- get(target, key) {
153
- const out = Reflect.get(target, key);
154
- if (key === "build") {
155
- themeBuilderInterceptOpts.onComplete({
156
- themeBuilder
157
- });
158
- }
159
- return out;
160
- }
161
- });
162
- }
163
- function purgeCache(moduleName) {
164
- searchCache(moduleName, function(mod) {
165
- delete require.cache[mod.id];
166
- });
167
- Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
168
- if (cacheKey.indexOf(moduleName) > 0) {
169
- delete module.constructor._pathCache[cacheKey];
170
- }
171
- });
172
- }
173
- function searchCache(moduleName, callback) {
174
- let mod = require.resolve(moduleName);
175
- if (mod && (mod = require.cache[mod]) !== void 0) {
176
- ;
177
- (function traverse(mod2, depth = 0) {
178
- if (depth > 10)
179
- return;
180
- mod2.children.forEach(function(child) {
181
- traverse(child, depth + 1);
182
- });
183
- callback(mod2);
184
- })(mod);
185
- }
186
- }
187
- export {
188
- generateThemes
189
- };
190
- //# sourceMappingURL=generate-themes.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/generate-themes.ts"],
4
- "mappings": "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",
5
- "names": ["key", "target", "mod"]
6
- }
@@ -1,3 +0,0 @@
1
- export * from "./generate-themes";
2
- export * from "./write-generate-themes";
3
- //# sourceMappingURL=index.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
@@ -1,21 +0,0 @@
1
- import { join } from "path";
2
- import * as fs from "fs-extra";
3
- async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
4
- if (!generatedOutput)
5
- return;
6
- const { generated, state } = generatedOutput;
7
- const tamaguiDotDirExists = await fs.pathExists(tamaguiDotDir);
8
- const themeBuilderStatePath = join(tamaguiDotDir, `theme-builder.json`);
9
- if (process.env.DEBUG === "tamagui") {
10
- console.log(`Generated themes:`, JSON.stringify(generatedOutput, null, 2));
11
- console.log(`Writing themes to`, { outPath, themeBuilderStatePath });
12
- }
13
- await Promise.all([
14
- fs.writeFile(outPath, generated),
15
- state && tamaguiDotDirExists ? fs.writeFile(themeBuilderStatePath, JSON.stringify(state)) : null
16
- ]);
17
- }
18
- export {
19
- writeGeneratedThemes
20
- };
21
- //# sourceMappingURL=write-generate-themes.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/write-generate-themes.ts"],
4
- "mappings": "AAAA,SAAS,YAAY;AAErB,YAAY,QAAQ;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC;AAAiB;AAEtB,QAAM,EAAE,WAAW,MAAM,IAAI;AAE7B,QAAM,sBAAsB,MAAM,GAAG,WAAW,aAAa;AAC7D,QAAM,wBAAwB,KAAK,eAAe,oBAAoB;AAEtE,MAAI,QAAQ,IAAI,UAAU,WAAW;AAEnC,YAAQ,IAAI,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;AAEzE,YAAQ,IAAI,qBAAqB,EAAE,SAAS,sBAAsB,CAAC;AAAA,EACrE;AAEA,QAAM,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;",
5
- "names": []
6
- }