@tamagui/generate-themes 1.74.13 → 1.74.14

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.13",
3
+ "version": "1.74.14",
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.13",
32
- "@tamagui/types": "1.74.13",
31
+ "@tamagui/create-theme": "1.74.14",
32
+ "@tamagui/types": "1.74.14",
33
33
  "esbuild-register": "^3.4.2",
34
34
  "fs-extra": "^11.1.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@tamagui/build": "1.74.13"
37
+ "@tamagui/build": "1.74.14"
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
- }
@@ -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
- }