@tamagui/generate-themes 2.0.0-rc.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generate-themes.cjs +100 -57
- package/dist/cjs/generate-themes.native.js +118 -74
- package/dist/cjs/generate-themes.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/write-generate-themes.cjs +32 -24
- package/dist/cjs/write-generate-themes.native.js +39 -33
- package/dist/cjs/write-generate-themes.native.js.map +1 -1
- package/dist/esm/generate-themes.mjs +88 -47
- package/dist/esm/generate-themes.mjs.map +1 -1
- package/dist/esm/generate-themes.native.js +105 -63
- package/dist/esm/generate-themes.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/write-generate-themes.mjs +8 -2
- package/dist/esm/write-generate-themes.mjs.map +1 -1
- package/dist/esm/write-generate-themes.native.js +15 -11
- package/dist/esm/write-generate-themes.native.js.map +1 -1
- package/package.json +8 -11
- package/src/generate-themes.ts +3 -3
- package/dist/cjs/generate-themes.js +0 -130
- package/dist/cjs/generate-themes.js.map +0 -6
- package/dist/cjs/index.js +0 -16
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/write-generate-themes.js +0 -37
- package/dist/cjs/write-generate-themes.js.map +0 -6
- package/dist/esm/generate-themes.js +0 -114
- package/dist/esm/generate-themes.js.map +0 -6
- package/dist/esm/write-generate-themes.js +0 -13
- package/dist/esm/write-generate-themes.js.map +0 -6
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/write-generate-themes.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC,gBAAiB;AAEtB,QAAM,EAAE,UAAU,IAAI;AAEtB,EAAI,QAAQ,IAAI,UAAU,aACxB,QAAQ,KAAK,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;AAG5E,QAAM,aAAa;AAAA,IAAqB;AAIxC,EADwB,MAAM,GAAG,SAAS,SAAS,OAAO,EAAE,MAAM,MAAM,IAAI,MACpD,cAIxB,MAAM,GAAG,UAAU,SAAS,UAAU;AACxC;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
let didRegisterOnce = !1;
|
|
3
|
-
async function generateThemes(inputFile) {
|
|
4
|
-
const inputFilePath = inputFile[0] === "." ? join(process.cwd(), inputFile) : inputFile;
|
|
5
|
-
didRegisterOnce ? purgeCache(inputFilePath) : (didRegisterOnce = !0, require("esbuild-register/dist/node").register({
|
|
6
|
-
hookIgnoreNodeModules: !1
|
|
7
|
-
}));
|
|
8
|
-
let og = process.env.TAMAGUI_KEEP_THEMES;
|
|
9
|
-
process.env.TAMAGUI_KEEP_THEMES = "1", process.env.TAMAGUI_RUN_THEMEBUILDER = "1";
|
|
10
|
-
try {
|
|
11
|
-
const requiredThemes = require(inputFilePath), themes = requiredThemes.default || requiredThemes.themes || requiredThemes[Object.keys(requiredThemes)[0]];
|
|
12
|
-
return {
|
|
13
|
-
generated: generatedThemesToTypescript(themes)
|
|
14
|
-
};
|
|
15
|
-
} catch (err) {
|
|
16
|
-
console.warn(` \u26A0\uFE0F Error running theme builder:
|
|
17
|
-
`, err?.stack || err);
|
|
18
|
-
} finally {
|
|
19
|
-
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
const dedupedTokens = /* @__PURE__ */ new Map();
|
|
23
|
-
function generatedThemesToTypescript(themes) {
|
|
24
|
-
const dedupedThemes = /* @__PURE__ */ new Map(), dedupedThemeToNames = /* @__PURE__ */ new Map();
|
|
25
|
-
let i = 0;
|
|
26
|
-
for (const name in themes) {
|
|
27
|
-
i++;
|
|
28
|
-
const theme = themes[name];
|
|
29
|
-
let j = 0;
|
|
30
|
-
for (const [key2, value] of Object.entries(theme)) {
|
|
31
|
-
i++;
|
|
32
|
-
const uniqueKey = `t${i}${j}`;
|
|
33
|
-
dedupedTokens.has(value) || dedupedTokens.set(value, uniqueKey);
|
|
34
|
-
}
|
|
35
|
-
const key = JSON.stringify(theme);
|
|
36
|
-
dedupedThemes.has(key) ? dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]) : (dedupedThemes.set(key, theme), dedupedThemeToNames.set(key, [name]));
|
|
37
|
-
}
|
|
38
|
-
if (!themes)
|
|
39
|
-
throw new Error("Didn't find any themes exported or returned");
|
|
40
|
-
const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);
|
|
41
|
-
let out = `${`type Theme = {
|
|
42
|
-
${baseKeys.map(([k]) => ` ${k}: string;
|
|
43
|
-
`).join("")}
|
|
44
|
-
}`}
|
|
45
|
-
`;
|
|
46
|
-
out += `
|
|
47
|
-
function t(a: [number, number][]) {
|
|
48
|
-
let res: Record<string,string> = {}
|
|
49
|
-
for (const [ki, vi] of a) {
|
|
50
|
-
res[ks[ki] as string] = colors[vi] as string
|
|
51
|
-
}
|
|
52
|
-
return res as Theme
|
|
53
|
-
}
|
|
54
|
-
`, out += `export const colors = [
|
|
55
|
-
`;
|
|
56
|
-
let index = 0;
|
|
57
|
-
const valueToIndex = {};
|
|
58
|
-
dedupedTokens.forEach((name, value) => {
|
|
59
|
-
valueToIndex[value] = index, index++, out += ` '${value}',
|
|
60
|
-
`;
|
|
61
|
-
}), out += `]
|
|
62
|
-
|
|
63
|
-
`;
|
|
64
|
-
const keys = baseKeys.map(([k]) => k);
|
|
65
|
-
out += `const ks = [
|
|
66
|
-
`, out += keys.map((k) => `'${k}'`).join(`,
|
|
67
|
-
`), out += `]
|
|
68
|
-
|
|
69
|
-
`;
|
|
70
|
-
let nameI = 0, themeTypes = "type ThemeNames =", exported = "export const themes: Record<ThemeNames, Theme> = {";
|
|
71
|
-
return dedupedThemes.forEach((theme) => {
|
|
72
|
-
nameI++;
|
|
73
|
-
const key = JSON.stringify(theme), names = dedupedThemeToNames.get(key), name = `n${nameI}`, baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
|
|
74
|
-
out += `
|
|
75
|
-
${baseTheme}`, names.forEach((n) => {
|
|
76
|
-
exported += `
|
|
77
|
-
${n}: ${name},`, n.toLowerCase() === n && (themeTypes += `
|
|
78
|
-
| '${n}'`);
|
|
79
|
-
});
|
|
80
|
-
}), out += `
|
|
81
|
-
|
|
82
|
-
${themeTypes}
|
|
83
|
-
|
|
84
|
-
${exported}
|
|
85
|
-
}
|
|
86
|
-
`, out;
|
|
87
|
-
}
|
|
88
|
-
function objectToJsString(obj, keys, valueToIndex) {
|
|
89
|
-
let arrItems = [];
|
|
90
|
-
for (const key in obj) {
|
|
91
|
-
const ki = keys.indexOf(key), vi = valueToIndex[obj[key]];
|
|
92
|
-
arrItems.push(`[${ki}, ${vi}]`);
|
|
93
|
-
}
|
|
94
|
-
return `t([${arrItems.join(",")}])`;
|
|
95
|
-
}
|
|
96
|
-
function purgeCache(moduleName) {
|
|
97
|
-
searchCache(moduleName, (mod) => {
|
|
98
|
-
delete require.cache[mod.id];
|
|
99
|
-
}), !(!module.constructor || !module.constructor._pathCache) && Object.keys(module.constructor._pathCache).forEach((cacheKey) => {
|
|
100
|
-
cacheKey.indexOf(moduleName) > 0 && delete module.constructor._pathCache[cacheKey];
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
function searchCache(moduleName, callback) {
|
|
104
|
-
let mod = require.resolve(moduleName);
|
|
105
|
-
mod && (mod = require.cache[mod]) !== void 0 && (function traverse(mod2, depth = 0) {
|
|
106
|
-
depth > 10 || (mod2.children.forEach((child) => {
|
|
107
|
-
traverse(child, depth + 1);
|
|
108
|
-
}), callback(mod2));
|
|
109
|
-
})(mod);
|
|
110
|
-
}
|
|
111
|
-
export {
|
|
112
|
-
generateThemes
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=generate-themes.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/generate-themes.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["key", "mod"]
|
|
6
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs-extra";
|
|
2
|
-
async function writeGeneratedThemes(tamaguiDotDir, outPath, generatedOutput) {
|
|
3
|
-
if (!generatedOutput) return;
|
|
4
|
-
const { generated } = generatedOutput;
|
|
5
|
-
process.env.DEBUG === "tamagui" && console.info("Generated themes:", JSON.stringify(generatedOutput, null, 2));
|
|
6
|
-
const newContent = `// @ts-nocheck
|
|
7
|
-
` + generated;
|
|
8
|
-
await fs.readFile(outPath, "utf-8").catch(() => null) !== newContent && await fs.writeFile(outPath, newContent);
|
|
9
|
-
}
|
|
10
|
-
export {
|
|
11
|
-
writeGeneratedThemes
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=write-generate-themes.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/write-generate-themes.ts"],
|
|
4
|
-
"mappings": "AAAA,YAAY,QAAQ;AAIpB,eAAsB,qBACpB,eACA,SACA,iBACA;AACA,MAAI,CAAC,gBAAiB;AAEtB,QAAM,EAAE,UAAU,IAAI;AAEtB,EAAI,QAAQ,IAAI,UAAU,aACxB,QAAQ,KAAK,qBAAqB,KAAK,UAAU,iBAAiB,MAAM,CAAC,CAAC;AAG5E,QAAM,aAAa;AAAA,IAAqB;AAIxC,EADwB,MAAM,GAAG,SAAS,SAAS,OAAO,EAAE,MAAM,MAAM,IAAI,MACpD,cAIxB,MAAM,GAAG,UAAU,SAAS,UAAU;AACxC;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|