@tamagui/generate-themes 3.0.0-beta.924.1 → 3.0.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 +10 -4
- package/dist/cjs/generate-themes.native.cjs +10 -4
- package/dist/cjs/generate-themes.native.js +10 -4
- package/dist/cjs/generate-themes.native.js.map +1 -1
- package/dist/esm/generate-themes.mjs +15 -14
- package/dist/esm/generate-themes.mjs.map +1 -1
- package/dist/esm/generate-themes.native.js +13 -12
- package/dist/esm/generate-themes.native.js.map +1 -1
- package/package.json +6 -4
- package/src/generate-themes.ts +12 -4
|
@@ -63,6 +63,10 @@ async function generateThemes(inputFile) {
|
|
|
63
63
|
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
const themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
|
|
67
|
+
function themeIdentity(theme) {
|
|
68
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
|
|
69
|
+
}
|
|
66
70
|
function generatedThemesToTypescript(themes) {
|
|
67
71
|
const dedupedTokens = /* @__PURE__ */ new Map();
|
|
68
72
|
const dedupedThemes = /* @__PURE__ */ new Map();
|
|
@@ -79,7 +83,7 @@ function generatedThemesToTypescript(themes) {
|
|
|
79
83
|
dedupedTokens.set(value, uniqueKey);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
|
-
const key =
|
|
86
|
+
const key = themeIdentity(theme);
|
|
83
87
|
if (dedupedThemes.has(key)) {
|
|
84
88
|
dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
|
|
85
89
|
} else {
|
|
@@ -100,11 +104,12 @@ ${baseKeys.map(([k]) => {
|
|
|
100
104
|
let out = `${baseTypeString}
|
|
101
105
|
`;
|
|
102
106
|
out += `
|
|
103
|
-
function t(a: [number, number][]) {
|
|
107
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
104
108
|
let res: Record<string,string> = {}
|
|
105
109
|
for (const [ki, vi] of a) {
|
|
106
110
|
res[ks[ki] as string] = colors[vi] as string
|
|
107
111
|
}
|
|
112
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
108
113
|
return res as Theme
|
|
109
114
|
}
|
|
110
115
|
`;
|
|
@@ -133,7 +138,7 @@ function t(a: [number, number][]) {
|
|
|
133
138
|
export const themes: Themes = {`;
|
|
134
139
|
dedupedThemes.forEach((theme) => {
|
|
135
140
|
nameI++;
|
|
136
|
-
const key =
|
|
141
|
+
const key = themeIdentity(theme);
|
|
137
142
|
const names = dedupedThemeToNames.get(key);
|
|
138
143
|
const name = `n${nameI}`;
|
|
139
144
|
const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
|
|
@@ -164,7 +169,8 @@ function objectToJsString(obj, keys, valueToIndex) {
|
|
|
164
169
|
const vi = valueToIndex[obj[key]];
|
|
165
170
|
arrItems.push(`[${ki}, ${vi}]`);
|
|
166
171
|
}
|
|
167
|
-
|
|
172
|
+
const scheme = Reflect.get(obj, themeSchemeKey);
|
|
173
|
+
return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
|
|
168
174
|
}
|
|
169
175
|
function purgeCache(moduleName) {
|
|
170
176
|
searchCache(moduleName, (mod) => {
|
|
@@ -68,6 +68,10 @@ async function generateThemes(inputFile) {
|
|
|
68
68
|
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
|
|
72
|
+
function themeIdentity(theme) {
|
|
73
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
|
|
74
|
+
}
|
|
71
75
|
function generatedThemesToTypescript(themes) {
|
|
72
76
|
var dedupedTokens = /* @__PURE__ */ new Map();
|
|
73
77
|
var dedupedThemes = /* @__PURE__ */ new Map();
|
|
@@ -101,7 +105,7 @@ function generatedThemesToTypescript(themes) {
|
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
|
-
var key1 =
|
|
108
|
+
var key1 = themeIdentity(theme);
|
|
105
109
|
if (dedupedThemes.has(key1)) {
|
|
106
110
|
dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
|
|
107
111
|
} else {
|
|
@@ -123,11 +127,12 @@ ${baseKeys.map(function(param) {
|
|
|
123
127
|
var out = `${baseTypeString}
|
|
124
128
|
`;
|
|
125
129
|
out += `
|
|
126
|
-
function t(a: [number, number][]) {
|
|
130
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
127
131
|
let res: Record<string,string> = {}
|
|
128
132
|
for (const [ki, vi] of a) {
|
|
129
133
|
res[ks[ki] as string] = colors[vi] as string
|
|
130
134
|
}
|
|
135
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
131
136
|
return res as Theme
|
|
132
137
|
}
|
|
133
138
|
`;
|
|
@@ -161,7 +166,7 @@ function t(a: [number, number][]) {
|
|
|
161
166
|
export const themes: Themes = {`;
|
|
162
167
|
dedupedThemes.forEach(function(theme2) {
|
|
163
168
|
nameI++;
|
|
164
|
-
var key2 =
|
|
169
|
+
var key2 = themeIdentity(theme2);
|
|
165
170
|
var names = dedupedThemeToNames.get(key2);
|
|
166
171
|
var name2 = `n${nameI}`;
|
|
167
172
|
var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
|
|
@@ -192,7 +197,8 @@ function objectToJsString(obj, keys, valueToIndex) {
|
|
|
192
197
|
var vi = valueToIndex[obj[key]];
|
|
193
198
|
arrItems.push(`[${ki}, ${vi}]`);
|
|
194
199
|
}
|
|
195
|
-
|
|
200
|
+
var scheme = Reflect.get(obj, themeSchemeKey);
|
|
201
|
+
return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
|
|
196
202
|
}
|
|
197
203
|
function purgeCache(moduleName) {
|
|
198
204
|
searchCache(moduleName, function(mod) {
|
|
@@ -68,6 +68,10 @@ async function generateThemes(inputFile) {
|
|
|
68
68
|
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
|
|
72
|
+
function themeIdentity(theme) {
|
|
73
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
|
|
74
|
+
}
|
|
71
75
|
function generatedThemesToTypescript(themes) {
|
|
72
76
|
var dedupedTokens = /* @__PURE__ */ new Map();
|
|
73
77
|
var dedupedThemes = /* @__PURE__ */ new Map();
|
|
@@ -101,7 +105,7 @@ function generatedThemesToTypescript(themes) {
|
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
|
-
var key1 =
|
|
108
|
+
var key1 = themeIdentity(theme);
|
|
105
109
|
if (dedupedThemes.has(key1)) {
|
|
106
110
|
dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
|
|
107
111
|
} else {
|
|
@@ -123,11 +127,12 @@ ${baseKeys.map(function(param) {
|
|
|
123
127
|
var out = `${baseTypeString}
|
|
124
128
|
`;
|
|
125
129
|
out += `
|
|
126
|
-
function t(a: [number, number][]) {
|
|
130
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
127
131
|
let res: Record<string,string> = {}
|
|
128
132
|
for (const [ki, vi] of a) {
|
|
129
133
|
res[ks[ki] as string] = colors[vi] as string
|
|
130
134
|
}
|
|
135
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
131
136
|
return res as Theme
|
|
132
137
|
}
|
|
133
138
|
`;
|
|
@@ -161,7 +166,7 @@ function t(a: [number, number][]) {
|
|
|
161
166
|
export const themes: Themes = {`;
|
|
162
167
|
dedupedThemes.forEach(function(theme2) {
|
|
163
168
|
nameI++;
|
|
164
|
-
var key2 =
|
|
169
|
+
var key2 = themeIdentity(theme2);
|
|
165
170
|
var names = dedupedThemeToNames.get(key2);
|
|
166
171
|
var name2 = `n${nameI}`;
|
|
167
172
|
var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
|
|
@@ -192,7 +197,8 @@ function objectToJsString(obj, keys, valueToIndex) {
|
|
|
192
197
|
var vi = valueToIndex[obj[key]];
|
|
193
198
|
arrItems.push(`[${ki}, ${vi}]`);
|
|
194
199
|
}
|
|
195
|
-
|
|
200
|
+
var scheme = Reflect.get(obj, themeSchemeKey);
|
|
201
|
+
return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
|
|
196
202
|
}
|
|
197
203
|
function purgeCache(moduleName) {
|
|
198
204
|
searchCache(moduleName, function(mod) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-themes.native.js","names":[],"sources":["cjs/generate-themes.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar generate_themes_exports = {};\n__export(generate_themes_exports, {\n generateThemes: () => generateThemes\n});\nmodule.exports = __toCommonJS(generate_themes_exports);\nvar import_module = __toESM(require(\"module\"), 1);\nvar import_path = require(\"path\");\nvar ModuleInternals = import_module.default;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = JSON.stringify(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][]) {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = JSON.stringify(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n return `t([${arrItems.join(\",\")}])`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-themes.native.js","names":[],"sources":["cjs/generate-themes.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar generate_themes_exports = {};\n__export(generate_themes_exports, {\n generateThemes: () => generateThemes\n});\nmodule.exports = __toCommonJS(generate_themes_exports);\nvar import_module = __toESM(require(\"module\"), 1);\nvar import_path = require(\"path\");\nvar ModuleInternals = import_module.default;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? (0, import_path.join)(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nvar themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([\n theme,\n Reflect.get(theme, themeSchemeKey)\n ]);\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = themeIdentity(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = themeIdentity(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n var scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import Module from "node:module";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
|
|
4
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
|
|
5
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
6
|
-
throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
|
|
7
|
-
});
|
|
8
|
-
|
|
9
4
|
const ModuleInternals = Module;
|
|
10
5
|
let didRegisterOnce = false;
|
|
11
6
|
async function generateThemes(inputFile) {
|
|
@@ -13,7 +8,7 @@ async function generateThemes(inputFile) {
|
|
|
13
8
|
if (!didRegisterOnce) {
|
|
14
9
|
didRegisterOnce = true;
|
|
15
10
|
const nodeResolve = ModuleInternals._resolveFilename;
|
|
16
|
-
|
|
11
|
+
require("esbuild-register/dist/node").register({ hookIgnoreNodeModules: false });
|
|
17
12
|
const chained = ModuleInternals._resolveFilename;
|
|
18
13
|
ModuleInternals._resolveFilename = function(request, ...args) {
|
|
19
14
|
if (request[0] !== "." && !request.startsWith("/")) {
|
|
@@ -29,7 +24,7 @@ async function generateThemes(inputFile) {
|
|
|
29
24
|
let og = process.env.TAMAGUI_KEEP_THEMES;
|
|
30
25
|
process.env.TAMAGUI_KEEP_THEMES = "1";
|
|
31
26
|
try {
|
|
32
|
-
const requiredThemes =
|
|
27
|
+
const requiredThemes = require(inputFilePath);
|
|
33
28
|
const themes = requiredThemes["default"] || requiredThemes["themes"] || requiredThemes[Object.keys(requiredThemes)[0]];
|
|
34
29
|
const generatedThemes = generatedThemesToTypescript(themes);
|
|
35
30
|
return { generated: generatedThemes };
|
|
@@ -40,6 +35,10 @@ async function generateThemes(inputFile) {
|
|
|
40
35
|
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
41
36
|
}
|
|
42
37
|
}
|
|
38
|
+
const themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
|
|
39
|
+
function themeIdentity(theme) {
|
|
40
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
|
|
41
|
+
}
|
|
43
42
|
function generatedThemesToTypescript(themes) {
|
|
44
43
|
const dedupedTokens = /* @__PURE__ */ new Map();
|
|
45
44
|
const dedupedThemes = /* @__PURE__ */ new Map();
|
|
@@ -56,7 +55,7 @@ function generatedThemesToTypescript(themes) {
|
|
|
56
55
|
dedupedTokens.set(value, uniqueKey);
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
const key =
|
|
58
|
+
const key = themeIdentity(theme);
|
|
60
59
|
if (dedupedThemes.has(key)) {
|
|
61
60
|
dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);
|
|
62
61
|
} else {
|
|
@@ -77,11 +76,12 @@ ${baseKeys.map(([k]) => {
|
|
|
77
76
|
let out = `${baseTypeString}
|
|
78
77
|
`;
|
|
79
78
|
out += `
|
|
80
|
-
function t(a: [number, number][]) {
|
|
79
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
81
80
|
let res: Record<string,string> = {}
|
|
82
81
|
for (const [ki, vi] of a) {
|
|
83
82
|
res[ks[ki] as string] = colors[vi] as string
|
|
84
83
|
}
|
|
84
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
85
85
|
return res as Theme
|
|
86
86
|
}
|
|
87
87
|
`;
|
|
@@ -110,7 +110,7 @@ function t(a: [number, number][]) {
|
|
|
110
110
|
export const themes: Themes = {`;
|
|
111
111
|
dedupedThemes.forEach((theme) => {
|
|
112
112
|
nameI++;
|
|
113
|
-
const key =
|
|
113
|
+
const key = themeIdentity(theme);
|
|
114
114
|
const names = dedupedThemeToNames.get(key);
|
|
115
115
|
const name = `n${nameI}`;
|
|
116
116
|
const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;
|
|
@@ -141,11 +141,12 @@ function objectToJsString(obj, keys, valueToIndex) {
|
|
|
141
141
|
const vi = valueToIndex[obj[key]];
|
|
142
142
|
arrItems.push(`[${ki}, ${vi}]`);
|
|
143
143
|
}
|
|
144
|
-
|
|
144
|
+
const scheme = Reflect.get(obj, themeSchemeKey);
|
|
145
|
+
return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
|
|
145
146
|
}
|
|
146
147
|
function purgeCache(moduleName) {
|
|
147
148
|
searchCache(moduleName, (mod) => {
|
|
148
|
-
delete
|
|
149
|
+
delete require.cache[mod.id];
|
|
149
150
|
});
|
|
150
151
|
const pathCache = ModuleInternals._pathCache;
|
|
151
152
|
if (!pathCache) {
|
|
@@ -158,8 +159,8 @@ function purgeCache(moduleName) {
|
|
|
158
159
|
});
|
|
159
160
|
}
|
|
160
161
|
function searchCache(moduleName, callback) {
|
|
161
|
-
let mod =
|
|
162
|
-
if (mod && (mod =
|
|
162
|
+
let mod = require.resolve(moduleName);
|
|
163
|
+
if (mod && (mod = require.cache[mod]) !== void 0) {
|
|
163
164
|
;
|
|
164
165
|
(function traverse(mod2, depth = 0) {
|
|
165
166
|
if (depth > 10) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-themes.js","names":[],"sources":["esm/generate-themes.js"],"sourcesContent":["import Module from \"node:module\";\nimport { join } from \"node:path\";\nconst ModuleInternals = Module;\nlet didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n const inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n const nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n const chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request, ...args) {\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n let og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n const requiredThemes = require(inputFilePath);\n const themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n const generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, err?.[\"stack\"] || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n const dedupedTokens = /* @__PURE__ */ new Map();\n const dedupedThemes = /* @__PURE__ */ new Map();\n const dedupedThemeToNames = /* @__PURE__ */ new Map();\n let i = 0;\n for (const name in themes) {\n i++;\n const theme = themes[name];\n let j = 0;\n for (const [key2, value] of Object.entries(theme)) {\n i++;\n const uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n const key =
|
|
1
|
+
{"version":3,"file":"generate-themes.js","names":[],"sources":["esm/generate-themes.js"],"sourcesContent":["import Module from \"node:module\";\nimport { join } from \"node:path\";\nconst ModuleInternals = Module;\nlet didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n const inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n const nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n const chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request, ...args) {\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n let og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n const requiredThemes = require(inputFilePath);\n const themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n const generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, err?.[\"stack\"] || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nconst themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);\n}\nfunction generatedThemesToTypescript(themes) {\n const dedupedTokens = /* @__PURE__ */ new Map();\n const dedupedThemes = /* @__PURE__ */ new Map();\n const dedupedThemeToNames = /* @__PURE__ */ new Map();\n let i = 0;\n for (const name in themes) {\n i++;\n const theme = themes[name];\n let j = 0;\n for (const [key2, value] of Object.entries(theme)) {\n i++;\n const uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n const key = themeIdentity(theme);\n if (dedupedThemes.has(key)) {\n dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key), name]);\n } else {\n dedupedThemes.set(key, theme);\n dedupedThemeToNames.set(key, [name]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n const baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n const baseTypeString = `export type Theme = {\n${baseKeys.map(([k]) => {\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n let out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n let index = 0;\n const valueToIndex = {};\n dedupedTokens.forEach((name, value) => {\n valueToIndex[value] = index;\n index++;\n out += ` '${value}',\n`;\n });\n out += \"]\\n\\n\";\n const keys = baseKeys.map(([k]) => k);\n out += `const ks = [\n`;\n out += keys.map((k) => JSON.stringify(k)).join(\",\\n\");\n out += `]\n\n`;\n let nameI = 0;\n let themeTypes = `export type ThemeNames =`;\n let exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach((theme) => {\n nameI++;\n const key = themeIdentity(theme);\n const names = dedupedThemeToNames.get(key);\n const name = `n${nameI}`;\n const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach((n) => {\n exported += `\n ${n}: ${name},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n let arrItems = [];\n for (const key in obj) {\n const ki = keys.indexOf(key);\n const vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n const scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, (mod) => {\n delete require.cache[mod.id];\n });\n const pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach((cacheKey) => {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n let mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2, depth = 0) {\n if (depth > 10) return;\n mod2.children.forEach((child) => {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import Module from "module";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
|
|
4
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
|
|
5
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
6
|
-
throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
|
|
7
|
-
});
|
|
8
|
-
|
|
9
4
|
var ModuleInternals = Module;
|
|
10
5
|
var didRegisterOnce = false;
|
|
11
6
|
async function generateThemes(inputFile) {
|
|
@@ -43,6 +38,10 @@ async function generateThemes(inputFile) {
|
|
|
43
38
|
process.env.TAMAGUI_KEEP_THEMES = og;
|
|
44
39
|
}
|
|
45
40
|
}
|
|
41
|
+
var themeSchemeKey = /* @__PURE__ */ Symbol.for("tamagui.theme.scheme");
|
|
42
|
+
function themeIdentity(theme) {
|
|
43
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)]);
|
|
44
|
+
}
|
|
46
45
|
function generatedThemesToTypescript(themes) {
|
|
47
46
|
var dedupedTokens = /* @__PURE__ */ new Map();
|
|
48
47
|
var dedupedThemes = /* @__PURE__ */ new Map();
|
|
@@ -76,7 +75,7 @@ function generatedThemesToTypescript(themes) {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
}
|
|
79
|
-
var key1 =
|
|
78
|
+
var key1 = themeIdentity(theme);
|
|
80
79
|
if (dedupedThemes.has(key1)) {
|
|
81
80
|
dedupedThemeToNames.set(key1, [...dedupedThemeToNames.get(key1), name]);
|
|
82
81
|
} else {
|
|
@@ -98,11 +97,12 @@ ${baseKeys.map(function(param) {
|
|
|
98
97
|
var out = `${baseTypeString}
|
|
99
98
|
`;
|
|
100
99
|
out += `
|
|
101
|
-
function t(a: [number, number][]) {
|
|
100
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
102
101
|
let res: Record<string,string> = {}
|
|
103
102
|
for (const [ki, vi] of a) {
|
|
104
103
|
res[ks[ki] as string] = colors[vi] as string
|
|
105
104
|
}
|
|
105
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
106
106
|
return res as Theme
|
|
107
107
|
}
|
|
108
108
|
`;
|
|
@@ -136,7 +136,7 @@ function t(a: [number, number][]) {
|
|
|
136
136
|
export const themes: Themes = {`;
|
|
137
137
|
dedupedThemes.forEach(function(theme2) {
|
|
138
138
|
nameI++;
|
|
139
|
-
var key2 =
|
|
139
|
+
var key2 = themeIdentity(theme2);
|
|
140
140
|
var names = dedupedThemeToNames.get(key2);
|
|
141
141
|
var name2 = `n${nameI}`;
|
|
142
142
|
var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;
|
|
@@ -167,11 +167,12 @@ function objectToJsString(obj, keys, valueToIndex) {
|
|
|
167
167
|
var vi = valueToIndex[obj[key]];
|
|
168
168
|
arrItems.push(`[${ki}, ${vi}]`);
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
var scheme = Reflect.get(obj, themeSchemeKey);
|
|
171
|
+
return `t([${arrItems.join(",")}]${scheme === "light" || scheme === "dark" ? `, ${JSON.stringify(scheme)}` : ""})`;
|
|
171
172
|
}
|
|
172
173
|
function purgeCache(moduleName) {
|
|
173
174
|
searchCache(moduleName, function(mod) {
|
|
174
|
-
delete
|
|
175
|
+
delete require.cache[mod.id];
|
|
175
176
|
});
|
|
176
177
|
var pathCache = ModuleInternals._pathCache;
|
|
177
178
|
if (!pathCache) {
|
|
@@ -184,8 +185,8 @@ function purgeCache(moduleName) {
|
|
|
184
185
|
});
|
|
185
186
|
}
|
|
186
187
|
function searchCache(moduleName, callback) {
|
|
187
|
-
var mod =
|
|
188
|
-
if (mod && (mod =
|
|
188
|
+
var mod = require.resolve(moduleName);
|
|
189
|
+
if (mod && (mod = require.cache[mod]) !== void 0) {
|
|
189
190
|
;
|
|
190
191
|
(function traverse(mod2) {
|
|
191
192
|
var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-themes.native.js","names":[],"sources":["esm/generate-themes.native.js"],"sourcesContent":["import Module from \"module\";\nimport { join } from \"path\";\nvar ModuleInternals = Module;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = JSON.stringify(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][]) {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = JSON.stringify(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n return `t([${arrItems.join(\",\")}])`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-themes.native.js","names":[],"sources":["esm/generate-themes.native.js"],"sourcesContent":["import Module from \"module\";\nimport { join } from \"path\";\nvar ModuleInternals = Module;\nvar didRegisterOnce = false;\nasync function generateThemes(inputFile) {\n var inputFilePath = inputFile[0] === \".\" ? join(process.cwd(), inputFile) : inputFile;\n if (!didRegisterOnce) {\n didRegisterOnce = true;\n var nodeResolve = ModuleInternals._resolveFilename;\n require(\"esbuild-register/dist/node\").register({\n hookIgnoreNodeModules: false\n });\n var chained = ModuleInternals._resolveFilename;\n ModuleInternals._resolveFilename = function(request) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (request[0] !== \".\" && !request.startsWith(\"/\")) {\n try {\n return nodeResolve.call(this, request, ...args);\n } catch (e) {\n }\n }\n return chained.call(this, request, ...args);\n };\n } else {\n purgeCache(inputFilePath);\n }\n var og = process.env.TAMAGUI_KEEP_THEMES;\n process.env.TAMAGUI_KEEP_THEMES = \"1\";\n try {\n var requiredThemes = require(inputFilePath);\n var themes = requiredThemes[\"default\"] || requiredThemes[\"themes\"] || requiredThemes[Object.keys(requiredThemes)[0]];\n var generatedThemes = generatedThemesToTypescript(themes);\n return {\n generated: generatedThemes\n };\n } catch (err) {\n console.warn(` \\u26A0\\uFE0F Error running theme builder:\n`, (err === null || err === void 0 ? void 0 : err[\"stack\"]) || err);\n } finally {\n process.env.TAMAGUI_KEEP_THEMES = og;\n }\n}\nvar themeSchemeKey = /* @__PURE__ */ Symbol.for(\"tamagui.theme.scheme\");\nfunction themeIdentity(theme) {\n return JSON.stringify([\n theme,\n Reflect.get(theme, themeSchemeKey)\n ]);\n}\nfunction generatedThemesToTypescript(themes) {\n var dedupedTokens = /* @__PURE__ */ new Map();\n var dedupedThemes = /* @__PURE__ */ new Map();\n var dedupedThemeToNames = /* @__PURE__ */ new Map();\n var i = 0;\n for (var name in themes) {\n i++;\n var theme = themes[name];\n var j = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(theme)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n i++;\n var uniqueKey = `t${i}${j}`;\n if (!dedupedTokens.has(value)) {\n dedupedTokens.set(value, uniqueKey);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var key1 = themeIdentity(theme);\n if (dedupedThemes.has(key1)) {\n dedupedThemeToNames.set(key1, [\n ...dedupedThemeToNames.get(key1),\n name\n ]);\n } else {\n dedupedThemes.set(key1, theme);\n dedupedThemeToNames.set(key1, [\n name\n ]);\n }\n }\n if (!themes) {\n throw new Error(`Didn't find any themes exported or returned`);\n }\n var baseKeys = Object.entries(themes.light || themes[Object.keys(themes)[0]]);\n var baseTypeString = `export type Theme = {\n${baseKeys.map(function(param) {\n var [k] = param;\n return ` ${JSON.stringify(k)}: string;\n`;\n }).join(\"\")}\n}`;\n var out = `${baseTypeString}\n`;\n out += `\nfunction t(a: [number, number][], scheme?: 'light' | 'dark') {\n let res: Record<string,string> = {}\n for (const [ki, vi] of a) {\n res[ks[ki] as string] = colors[vi] as string\n }\n if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })\n return res as Theme\n}\n`;\n out += `export const colors = [\n`;\n var index = 0;\n var valueToIndex = {};\n dedupedTokens.forEach(function(name2, value2) {\n valueToIndex[value2] = index;\n index++;\n out += ` '${value2}',\n`;\n });\n out += \"]\\n\\n\";\n var keys = baseKeys.map(function(param) {\n var [k] = param;\n return k;\n });\n out += `const ks = [\n`;\n out += keys.map(function(k) {\n return JSON.stringify(k);\n }).join(\",\\n\");\n out += `]\n\n`;\n var nameI = 0;\n var themeTypes = `export type ThemeNames =`;\n var exported = `export type Themes = Record<ThemeNames, Theme>\n\nexport const themes: Themes = {`;\n dedupedThemes.forEach(function(theme2) {\n nameI++;\n var key2 = themeIdentity(theme2);\n var names = dedupedThemeToNames.get(key2);\n var name2 = `n${nameI}`;\n var baseTheme = `const ${name2} = ${objectToJsString(theme2, keys, valueToIndex)}`;\n out += `\n${baseTheme}`;\n names.forEach(function(n) {\n exported += `\n ${n}: ${name2},`;\n if (n.toLowerCase() === n) {\n themeTypes += `\n | '${n}'`;\n }\n });\n });\n out += `\n\n${themeTypes}\n\n${exported}\n}\n`;\n return out;\n}\nfunction objectToJsString(obj, keys, valueToIndex) {\n var arrItems = [];\n for (var key in obj) {\n var ki = keys.indexOf(key);\n var vi = valueToIndex[obj[key]];\n arrItems.push(`[${ki}, ${vi}]`);\n }\n var scheme = Reflect.get(obj, themeSchemeKey);\n return `t([${arrItems.join(\",\")}]${scheme === \"light\" || scheme === \"dark\" ? `, ${JSON.stringify(scheme)}` : \"\"})`;\n}\nfunction purgeCache(moduleName) {\n searchCache(moduleName, function(mod) {\n delete require.cache[mod.id];\n });\n var pathCache = ModuleInternals._pathCache;\n if (!pathCache) {\n return;\n }\n Object.keys(pathCache).forEach(function(cacheKey) {\n if (cacheKey.indexOf(moduleName) > 0) {\n delete pathCache[cacheKey];\n }\n });\n}\nfunction searchCache(moduleName, callback) {\n var mod = require.resolve(moduleName);\n if (mod && (mod = require.cache[mod]) !== void 0) {\n ;\n (function traverse(mod2) {\n var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n if (depth > 10) return;\n mod2.children.forEach(function(child) {\n traverse(child, depth + 1);\n });\n callback(mod2);\n })(mod);\n }\n}\nexport {\n generateThemes\n};\n//# sourceMappingURL=generate-themes.js.map\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/generate-themes",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"source": "src/index.ts",
|
|
5
6
|
"files": [
|
|
6
7
|
"src",
|
|
@@ -36,16 +37,17 @@
|
|
|
36
37
|
"test:web": "bun run test"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"@tamagui/types": "3.0.
|
|
40
|
+
"@tamagui/types": "3.0.1",
|
|
40
41
|
"esbuild-register": "^3.6.0",
|
|
41
42
|
"fs-extra": "^11.2.0"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
|
-
"@tamagui/build": "3.0.
|
|
45
|
+
"@tamagui/build": "3.0.1"
|
|
45
46
|
},
|
|
46
47
|
"repository": {
|
|
47
48
|
"type": "git",
|
|
48
49
|
"url": "git+https://github.com/tamagui/tamagui.git",
|
|
49
50
|
"directory": "code/core/generate-themes"
|
|
50
|
-
}
|
|
51
|
+
},
|
|
52
|
+
"releaseSourceCommit": "c156b7cc55e5a6cc5883ebc8189720850ac32dbd"
|
|
51
53
|
}
|
package/src/generate-themes.ts
CHANGED
|
@@ -65,6 +65,12 @@ export async function generateThemes(inputFile: string) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
const themeSchemeKey = Symbol.for('tamagui.theme.scheme')
|
|
69
|
+
|
|
70
|
+
function themeIdentity(theme: Record<string, any>) {
|
|
71
|
+
return JSON.stringify([theme, Reflect.get(theme, themeSchemeKey)])
|
|
72
|
+
}
|
|
73
|
+
|
|
68
74
|
function generatedThemesToTypescript(themes: Record<string, any>) {
|
|
69
75
|
// value -> name of variable. per invocation: a process-wide map would emit
|
|
70
76
|
// the previous run's colors into this run's `colors` array.
|
|
@@ -88,7 +94,7 @@ function generatedThemesToTypescript(themes: Record<string, any>) {
|
|
|
88
94
|
}
|
|
89
95
|
}
|
|
90
96
|
|
|
91
|
-
const key =
|
|
97
|
+
const key = themeIdentity(theme)
|
|
92
98
|
if (dedupedThemes.has(key)) {
|
|
93
99
|
dedupedThemeToNames.set(key, [...dedupedThemeToNames.get(key)!, name])
|
|
94
100
|
} else {
|
|
@@ -118,11 +124,12 @@ ${baseKeys
|
|
|
118
124
|
|
|
119
125
|
// add in the helper function to generate a theme:
|
|
120
126
|
out += `
|
|
121
|
-
function t(a: [number, number][]) {
|
|
127
|
+
function t(a: [number, number][], scheme?: 'light' | 'dark') {
|
|
122
128
|
let res: Record<string,string> = {}
|
|
123
129
|
for (const [ki, vi] of a) {
|
|
124
130
|
res[ks[ki] as string] = colors[vi] as string
|
|
125
131
|
}
|
|
132
|
+
if (scheme) Object.defineProperty(res, Symbol.for('tamagui.theme.scheme'), { value: scheme })
|
|
126
133
|
return res as Theme
|
|
127
134
|
}
|
|
128
135
|
`
|
|
@@ -152,7 +159,7 @@ function t(a: [number, number][]) {
|
|
|
152
159
|
|
|
153
160
|
dedupedThemes.forEach((theme) => {
|
|
154
161
|
nameI++
|
|
155
|
-
const key =
|
|
162
|
+
const key = themeIdentity(theme)
|
|
156
163
|
const names = dedupedThemeToNames.get(key)!
|
|
157
164
|
const name = `n${nameI}`
|
|
158
165
|
const baseTheme = `const ${name} = ${objectToJsString(theme, keys, valueToIndex)}`
|
|
@@ -182,7 +189,8 @@ function objectToJsString(
|
|
|
182
189
|
const vi = valueToIndex[obj[key]]
|
|
183
190
|
arrItems.push(`[${ki}, ${vi}]`)
|
|
184
191
|
}
|
|
185
|
-
|
|
192
|
+
const scheme = Reflect.get(obj, themeSchemeKey)
|
|
193
|
+
return `t([${arrItems.join(',')}]${scheme === 'light' || scheme === 'dark' ? `, ${JSON.stringify(scheme)}` : ''})`
|
|
186
194
|
}
|
|
187
195
|
|
|
188
196
|
/**
|