@tamagui/generate-themes 1.74.13 → 1.74.15
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/generate-themes",
|
|
3
|
-
"version": "1.74.
|
|
3
|
+
"version": "1.74.15",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"clean:build": "tamagui-build clean:build"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tamagui/create-theme": "1.74.
|
|
32
|
-
"@tamagui/types": "1.74.
|
|
31
|
+
"@tamagui/create-theme": "1.74.15",
|
|
32
|
+
"@tamagui/types": "1.74.15",
|
|
33
33
|
"esbuild-register": "^3.4.2",
|
|
34
34
|
"fs-extra": "^11.1.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@tamagui/build": "1.74.
|
|
37
|
+
"@tamagui/build": "1.74.15"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1,187 +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 = {}
|
|
80
|
-
for (const [ki, vi] of a) {
|
|
81
|
-
res[ks[ki]] = vs[vi]
|
|
82
|
-
}
|
|
83
|
-
return res
|
|
84
|
-
}
|
|
85
|
-
`;
|
|
86
|
-
out += `const vs = [
|
|
87
|
-
`;
|
|
88
|
-
let index = 0;
|
|
89
|
-
const valueToIndex = {};
|
|
90
|
-
dedupedTokens.forEach((name, value) => {
|
|
91
|
-
valueToIndex[value] = index;
|
|
92
|
-
index++;
|
|
93
|
-
out += ` '${value}',
|
|
94
|
-
`;
|
|
95
|
-
});
|
|
96
|
-
out += "]\n\n";
|
|
97
|
-
const keys = baseKeys.map(([k]) => k);
|
|
98
|
-
out += `const ks = [
|
|
99
|
-
`;
|
|
100
|
-
out += keys.map((k) => `'${k}'`).join(",\n");
|
|
101
|
-
out += `]
|
|
102
|
-
|
|
103
|
-
`;
|
|
104
|
-
let nameI = 0;
|
|
105
|
-
dedupedThemes.forEach((theme) => {
|
|
106
|
-
nameI++;
|
|
107
|
-
const key = JSON.stringify(theme);
|
|
108
|
-
const names = dedupedThemeToNames.get(key);
|
|
109
|
-
const name = `n${nameI}`;
|
|
110
|
-
const baseTheme = `const ${name} = ${objectToJsString(
|
|
111
|
-
theme,
|
|
112
|
-
keys,
|
|
113
|
-
valueToIndex
|
|
114
|
-
)} as Theme`;
|
|
115
|
-
out += `
|
|
116
|
-
${baseTheme}`;
|
|
117
|
-
const duplicateThemes = names.map((n) => `export const ${n} = ${name} as Theme`);
|
|
118
|
-
out += `
|
|
119
|
-
|
|
120
|
-
` + duplicateThemes.join("\n");
|
|
121
|
-
});
|
|
122
|
-
return out;
|
|
123
|
-
}
|
|
124
|
-
function objectToJsString(obj, keys, valueToIndex) {
|
|
125
|
-
let arrItems = [];
|
|
126
|
-
for (const key in obj) {
|
|
127
|
-
const ki = keys.indexOf(key);
|
|
128
|
-
const vi = valueToIndex[obj[key]];
|
|
129
|
-
arrItems.push(`[${ki}, ${vi}]`);
|
|
130
|
-
}
|
|
131
|
-
return `t([${arrItems.join(",")}])`;
|
|
132
|
-
}
|
|
133
|
-
function createThemeIntercept(createThemeExport, themeBuilderInterceptOpts) {
|
|
134
|
-
return new Proxy(createThemeExport, {
|
|
135
|
-
get(target, key) {
|
|
136
|
-
const out = Reflect.get(target, key);
|
|
137
|
-
if (key === "createThemeBuilder") {
|
|
138
|
-
return new Proxy(out, {
|
|
139
|
-
apply(target2, thisArg, argArray) {
|
|
140
|
-
const builder = Reflect.apply(target2, thisArg, argArray);
|
|
141
|
-
return themeBuilderIntercept(builder, themeBuilderInterceptOpts);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return out;
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
function themeBuilderIntercept(themeBuilder, themeBuilderInterceptOpts) {
|
|
150
|
-
return new Proxy(themeBuilder, {
|
|
151
|
-
get(target, key) {
|
|
152
|
-
const out = Reflect.get(target, key);
|
|
153
|
-
if (key === "build") {
|
|
154
|
-
themeBuilderInterceptOpts.onComplete({
|
|
155
|
-
themeBuilder
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
return out;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
function purgeCache(moduleName) {
|
|
163
|
-
searchCache(moduleName, function(mod) {
|
|
164
|
-
delete require.cache[mod.id];
|
|
165
|
-
});
|
|
166
|
-
Object.keys(module.constructor._pathCache).forEach(function(cacheKey) {
|
|
167
|
-
if (cacheKey.indexOf(moduleName) > 0) {
|
|
168
|
-
delete module.constructor._pathCache[cacheKey];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
function searchCache(moduleName, callback) {
|
|
173
|
-
let mod = require.resolve(moduleName);
|
|
174
|
-
if (mod && (mod = require.cache[mod]) !== void 0) {
|
|
175
|
-
;
|
|
176
|
-
(function traverse(mod2) {
|
|
177
|
-
mod2.children.forEach(function(child) {
|
|
178
|
-
traverse(child);
|
|
179
|
-
});
|
|
180
|
-
callback(mod2);
|
|
181
|
-
})(mod);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
export {
|
|
185
|
-
generateThemes
|
|
186
|
-
};
|
|
187
|
-
//# 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
|
-
}
|
package/dist/esm/index.mjs
DELETED
package/dist/esm/index.mjs.map
DELETED
|
@@ -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
|
-
}
|