@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.
- package/dist/cjs/generate-themes.cjs +32 -21
- package/dist/cjs/generate-themes.js +30 -21
- package/dist/cjs/generate-themes.js.map +1 -1
- package/dist/cjs/generate-themes.native.js +26 -20
- package/dist/cjs/generate-themes.native.js.map +2 -2
- package/dist/cjs/write-generate-themes.cjs +4 -3
- package/dist/cjs/write-generate-themes.js +4 -3
- package/dist/cjs/write-generate-themes.js.map +1 -1
- package/dist/cjs/write-generate-themes.native.js +4 -3
- package/dist/cjs/write-generate-themes.native.js.map +1 -1
- package/dist/esm/generate-themes.js +30 -21
- package/dist/esm/generate-themes.js.map +1 -1
- package/dist/esm/generate-themes.mjs +32 -21
- package/dist/esm/generate-themes.mjs.map +1 -1
- package/dist/esm/generate-themes.native.js +26 -20
- package/dist/esm/generate-themes.native.js.map +2 -2
- package/dist/esm/write-generate-themes.js +3 -2
- package/dist/esm/write-generate-themes.js.map +1 -1
- package/dist/esm/write-generate-themes.mjs +3 -2
- package/dist/esm/write-generate-themes.mjs.map +1 -1
- package/dist/esm/write-generate-themes.native.js +3 -2
- package/dist/esm/write-generate-themes.native.js.map +1 -1
- package/package.json +5 -5
- package/src/generate-themes.ts +39 -23
- package/src/write-generate-themes.ts +2 -2
- package/types/generate-themes.d.ts.map +1 -1
|
@@ -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
|
-
|
|
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"
|
|
50
|
+
if (id === "@tamagui/theme-builder") {
|
|
51
51
|
let resolve;
|
|
52
|
-
|
|
52
|
+
const promise = new Promise(res => {
|
|
53
53
|
resolve = res;
|
|
54
|
-
})
|
|
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 (
|
|
70
|
+
if (promises.length) {
|
|
68
71
|
let finished = !1;
|
|
69
|
-
|
|
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 =
|
|
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:
|
|
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] =
|
|
118
|
+
res[ks[ki] as string] = colors[vi] as string
|
|
115
119
|
}
|
|
116
120
|
return res as Theme
|
|
117
121
|
}
|
|
118
|
-
`, out += `const
|
|
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
|
-
|
|
144
|
-
|
|
148
|
+
${baseTheme}`, names.forEach(n => {
|
|
149
|
+
exported += `
|
|
150
|
+
${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
|
|
151
|
+
| '${n}'`);
|
|
152
|
+
});
|
|
153
|
+
}), out += `
|
|
145
154
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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,
|
|
194
|
+
searchCache(moduleName, mod => {
|
|
184
195
|
delete require.cache[mod.id];
|
|
185
|
-
}), Object.keys(module.constructor._pathCache).forEach(
|
|
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(
|
|
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
|
-
|
|
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"
|
|
40
|
+
if (id === "@tamagui/theme-builder") {
|
|
41
41
|
let resolve;
|
|
42
|
-
|
|
42
|
+
const promise = new Promise((res) => {
|
|
43
43
|
resolve = res;
|
|
44
|
-
})
|
|
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 (
|
|
58
|
+
if (promises.length) {
|
|
56
59
|
let finished = !1;
|
|
57
|
-
|
|
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 =
|
|
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:
|
|
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] =
|
|
108
|
+
res[ks[ki] as string] = colors[vi] as string
|
|
105
109
|
}
|
|
106
110
|
return res as Theme
|
|
107
111
|
}
|
|
108
|
-
`, out += `const
|
|
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
|
-
|
|
131
|
-
|
|
133
|
+
${baseTheme}`, names.forEach((n) => {
|
|
134
|
+
exported += `
|
|
135
|
+
${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
|
|
136
|
+
| '${n}'`);
|
|
137
|
+
});
|
|
138
|
+
}), out += `
|
|
132
139
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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,
|
|
178
|
+
searchCache(moduleName, (mod) => {
|
|
170
179
|
delete require.cache[mod.id];
|
|
171
|
-
}), Object.keys(module.constructor._pathCache).forEach(
|
|
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(
|
|
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": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAAmB,iCACnB,mBAAqB;AAMrB,MAAM,YAAY,mBAAAA,QAAO,UAAU;AAEnC,IAAI,kBAAkB;AAEtB,eAAsB,eAAe,WAAmB;AACtD,EAAK,mBAEH,QAAQ,4BAA4B,EAAE,SAAS;AAAA,IAC7C,uBAAuB;AAAA,EACzB,CAAC;AAGH,QAAM,gBAAgB,UAAU,CAAC,MAAM,UAAM,uBAAK,QAAQ,IAAI,GAAG,SAAS,IAAI;AAC9E,aAAW,aAAa;AAExB,
|
|
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
|
|
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"
|
|
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
|
-
})
|
|
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 (
|
|
55
|
+
if (promises.length) {
|
|
54
56
|
var finished = !1;
|
|
55
|
-
|
|
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 =
|
|
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:
|
|
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] =
|
|
120
|
+
res[ks[ki] as string] = colors[vi] as string
|
|
118
121
|
}
|
|
119
122
|
return res as Theme
|
|
120
123
|
}
|
|
121
|
-
`, out += `const
|
|
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
|
-
|
|
148
|
-
|
|
149
|
+
${baseTheme}`, names.forEach(function(n) {
|
|
150
|
+
exported += `
|
|
151
|
+
${n}: ${name2},`, n.toLowerCase() === n && (themeTypes += `
|
|
152
|
+
| '${n}'`);
|
|
149
153
|
});
|
|
150
|
-
|
|
154
|
+
}), out += `
|
|
151
155
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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": ";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;yBAAmB,iCACnB,mBAAqB,sBAMfA,YAAYC,mBAAAA,QAAOC,UAAUC,SAE/BC,kBAAkB;AAEtB,eAAsBC,eAAeC,WAAiB;AACpD,EAAKF,mBAEHD,QAAQ,4BAAA,EAA8BI,SAAS;IAC7CC,uBAAuB;EACzB,CAAA;AAGF,MAAMC,gBAAgBH,UAAU,CAAA,MAAO,UAAMI,uBAAKC,QAAQC,IAAG,GAAIN,SAAAA,IAAaA;AAC9EO,aAAWJ,aAAAA;AAEX,
|
|
5
|
-
"names": ["ogRequire", "Module", "prototype", "require", "didRegisterOnce", "generateThemes", "inputFile", "register", "hookIgnoreNodeModules", "inputFilePath", "join", "process", "cwd", "purgeCache", "
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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;;;;;
|
|
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
|
-
|
|
11
|
+
const promises = [];
|
|
12
12
|
Module.prototype.require = function(id) {
|
|
13
13
|
const out = ogRequire.apply(this, arguments);
|
|
14
|
-
if (id === "@tamagui/theme-builder"
|
|
14
|
+
if (id === "@tamagui/theme-builder") {
|
|
15
15
|
let resolve;
|
|
16
|
-
|
|
16
|
+
const promise = new Promise((res) => {
|
|
17
17
|
resolve = res;
|
|
18
|
-
})
|
|
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 (
|
|
32
|
+
if (promises.length) {
|
|
30
33
|
let finished = !1;
|
|
31
|
-
|
|
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 =
|
|
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:
|
|
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] =
|
|
82
|
+
res[ks[ki] as string] = colors[vi] as string
|
|
79
83
|
}
|
|
80
84
|
return res as Theme
|
|
81
85
|
}
|
|
82
|
-
`, out += `const
|
|
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
|
-
|
|
105
|
-
|
|
107
|
+
${baseTheme}`, names.forEach((n) => {
|
|
108
|
+
exported += `
|
|
109
|
+
${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
|
|
110
|
+
| '${n}'`);
|
|
111
|
+
});
|
|
112
|
+
}), out += `
|
|
106
113
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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,
|
|
152
|
+
searchCache(moduleName, (mod) => {
|
|
144
153
|
delete require.cache[mod.id];
|
|
145
|
-
}), Object.keys(module.constructor._pathCache).forEach(
|
|
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(
|
|
161
|
+
depth > 10 || (mod2.children.forEach((child) => {
|
|
153
162
|
traverse(child, depth + 1);
|
|
154
163
|
}), callback(mod2));
|
|
155
164
|
}(mod);
|