@tamagui/static 1.115.0 → 1.115.2
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/check-dep-versions.js +389 -0
- package/dist/check-dep-versions.js.map +6 -0
- package/dist/checkDeps.js +26 -0
- package/dist/checkDeps.js.map +6 -0
- package/dist/constants.js +34 -0
- package/dist/constants.js.map +6 -0
- package/dist/exports.js +33 -0
- package/dist/exports.js.map +6 -0
- package/dist/extractor/accessSafe.js +47 -0
- package/dist/extractor/accessSafe.js.map +6 -0
- package/dist/extractor/babelParse.js +59 -0
- package/dist/extractor/babelParse.js.map +6 -0
- package/dist/extractor/buildClassName.js +72 -0
- package/dist/extractor/buildClassName.js.map +6 -0
- package/dist/extractor/bundle.js +133 -0
- package/dist/extractor/bundle.js.map +6 -0
- package/dist/extractor/bundleConfig.js +350 -0
- package/dist/extractor/bundleConfig.js.map +6 -0
- package/dist/extractor/createEvaluator.js +54 -0
- package/dist/extractor/createEvaluator.js.map +6 -0
- package/dist/extractor/createExtractor.js +1217 -0
- package/dist/extractor/createExtractor.js.map +6 -0
- package/dist/extractor/createLogger.js +32 -0
- package/dist/extractor/createLogger.js.map +6 -0
- package/dist/extractor/ensureImportingConcat.js +50 -0
- package/dist/extractor/ensureImportingConcat.js.map +6 -0
- package/dist/extractor/esbuildAliasPlugin.js +36 -0
- package/dist/extractor/esbuildAliasPlugin.js.map +6 -0
- package/dist/extractor/evaluateAstNode.js +99 -0
- package/dist/extractor/evaluateAstNode.js.map +6 -0
- package/dist/extractor/extractHelpers.js +109 -0
- package/dist/extractor/extractHelpers.js.map +6 -0
- package/dist/extractor/extractMediaStyle.js +123 -0
- package/dist/extractor/extractMediaStyle.js.map +6 -0
- package/dist/extractor/extractToClassNames.js +291 -0
- package/dist/extractor/extractToClassNames.js.map +6 -0
- package/dist/extractor/extractToNative.js +319 -0
- package/dist/extractor/extractToNative.js.map +6 -0
- package/dist/extractor/findTopmostFunction.js +32 -0
- package/dist/extractor/findTopmostFunction.js.map +6 -0
- package/dist/extractor/generatedUid.js +42 -0
- package/dist/extractor/generatedUid.js.map +6 -0
- package/dist/extractor/getPrefixLogs.js +23 -0
- package/dist/extractor/getPrefixLogs.js.map +6 -0
- package/dist/extractor/getPropValueFromAttributes.js +65 -0
- package/dist/extractor/getPropValueFromAttributes.js.map +6 -0
- package/dist/extractor/getSourceModule.js +66 -0
- package/dist/extractor/getSourceModule.js.map +6 -0
- package/dist/extractor/getStaticBindingsForScope.js +143 -0
- package/dist/extractor/getStaticBindingsForScope.js.map +6 -0
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js +24 -0
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +6 -0
- package/dist/extractor/hoistClassNames.js +63 -0
- package/dist/extractor/hoistClassNames.js.map +6 -0
- package/dist/extractor/literalToAst.js +90 -0
- package/dist/extractor/literalToAst.js.map +6 -0
- package/dist/extractor/loadFile.js +14 -0
- package/dist/extractor/loadFile.js.map +6 -0
- package/dist/extractor/loadTamagui.js +263 -0
- package/dist/extractor/loadTamagui.js.map +6 -0
- package/dist/extractor/logLines.js +30 -0
- package/dist/extractor/logLines.js.map +6 -0
- package/dist/extractor/normalizeTernaries.js +59 -0
- package/dist/extractor/normalizeTernaries.js.map +6 -0
- package/dist/extractor/propsToFontFamilyCache.js +34 -0
- package/dist/extractor/propsToFontFamilyCache.js.map +6 -0
- package/dist/extractor/regenerateConfig.js +111 -0
- package/dist/extractor/regenerateConfig.js.map +6 -0
- package/dist/extractor/removeUnusedHooks.js +72 -0
- package/dist/extractor/removeUnusedHooks.js.map +6 -0
- package/dist/extractor/timer.js +38 -0
- package/dist/extractor/timer.js.map +6 -0
- package/dist/extractor/validHTMLAttributes.js +68 -0
- package/dist/extractor/validHTMLAttributes.js.map +6 -0
- package/dist/extractor/watchTamaguiConfig.js +57 -0
- package/dist/extractor/watchTamaguiConfig.js.map +6 -0
- package/dist/getPragmaOptions.js +49 -0
- package/dist/getPragmaOptions.js.map +6 -0
- package/dist/helpers/memoize.js +33 -0
- package/dist/helpers/memoize.js.map +6 -0
- package/dist/helpers/requireTamaguiCore.js +30 -0
- package/dist/helpers/requireTamaguiCore.js.map +6 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +6 -0
- package/dist/registerRequire.js +96 -0
- package/dist/registerRequire.js.map +6 -0
- package/dist/server.js +58 -0
- package/dist/server.js.map +6 -0
- package/dist/setup.js +1 -0
- package/dist/setup.js.map +6 -0
- package/dist/types.js +14 -0
- package/dist/types.js.map +6 -0
- package/package.json +14 -14
@@ -0,0 +1,291 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
11
|
+
for (let key of __getOwnPropNames(from))
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
13
|
+
return to;
|
14
|
+
};
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
21
|
+
mod
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
23
|
+
var extractToClassNames_exports = {};
|
24
|
+
__export(extractToClassNames_exports, {
|
25
|
+
extractToClassNames: () => extractToClassNames
|
26
|
+
});
|
27
|
+
module.exports = __toCommonJS(extractToClassNames_exports);
|
28
|
+
var path = __toESM(require("node:path")), util = __toESM(require("node:util")), import_generator = __toESM(require("@babel/generator")), t = __toESM(require("@babel/types")), helpers = __toESM(require("@tamagui/helpers")), import_requireTamaguiCore = require("../helpers/requireTamaguiCore"), import_babelParse = require("./babelParse"), import_buildClassName = require("./buildClassName"), import_createLogger = require("./createLogger"), import_ensureImportingConcat = require("./ensureImportingConcat"), import_extractHelpers = require("./extractHelpers"), import_extractMediaStyle = require("./extractMediaStyle"), import_hoistClassNames = require("./hoistClassNames"), import_propsToFontFamilyCache = require("./propsToFontFamilyCache"), import_timer = require("./timer");
|
29
|
+
const mergeStyleGroups = {
|
30
|
+
shadowOpacity: !0,
|
31
|
+
shadowRadius: !0,
|
32
|
+
shadowColor: !0,
|
33
|
+
shadowOffset: !0
|
34
|
+
};
|
35
|
+
async function extractToClassNames({
|
36
|
+
extractor,
|
37
|
+
source,
|
38
|
+
sourcePath = "",
|
39
|
+
options,
|
40
|
+
shouldPrintDebug
|
41
|
+
}) {
|
42
|
+
const tm = (0, import_timer.timer)(), { getStylesAtomic } = (0, import_requireTamaguiCore.requireTamaguiCore)("web");
|
43
|
+
if (sourcePath.includes("node_modules"))
|
44
|
+
return null;
|
45
|
+
if (shouldPrintDebug && console.warn(`--- ${sourcePath} ---
|
46
|
+
|
47
|
+
`), typeof source != "string")
|
48
|
+
throw new Error("`source` must be a string of javascript");
|
49
|
+
if (!path.isAbsolute(sourcePath))
|
50
|
+
throw new Error(
|
51
|
+
"`sourcePath` must be an absolute path to a .js file, got: " + sourcePath
|
52
|
+
);
|
53
|
+
/.[tj]sx?$/i.test(sourcePath || "") || console.warn(`${sourcePath.slice(0, 100)} - bad filename.`), !options.disableExtraction && !options._disableLoadTamagui && await extractor.loadTamagui(options);
|
54
|
+
const printLog = (0, import_createLogger.createLogger)(sourcePath, options);
|
55
|
+
let ast;
|
56
|
+
try {
|
57
|
+
ast = (0, import_babelParse.babelParse)(source, sourcePath);
|
58
|
+
} catch (err) {
|
59
|
+
throw console.error("babel parse error:", sourcePath.slice(0, 100)), err;
|
60
|
+
}
|
61
|
+
tm.mark("babel-parse", shouldPrintDebug === "verbose");
|
62
|
+
const cssMap = /* @__PURE__ */ new Map(), existingHoists = {};
|
63
|
+
let hasFlattened = !1;
|
64
|
+
const res = await extractor.parse(ast, {
|
65
|
+
shouldPrintDebug,
|
66
|
+
...options,
|
67
|
+
platform: "web",
|
68
|
+
sourcePath,
|
69
|
+
extractStyledDefinitions: !0,
|
70
|
+
onStyleRule(identifier, rules) {
|
71
|
+
const css = rules.join(";");
|
72
|
+
shouldPrintDebug && console.info(`adding styled() rule: .${identifier} ${css}`), cssMap.set(`.${identifier}`, { css, commentTexts: [] });
|
73
|
+
},
|
74
|
+
getFlattenedNode: ({ tag }) => (hasFlattened = !0, tag),
|
75
|
+
onExtractTag: ({
|
76
|
+
parserProps,
|
77
|
+
attrs,
|
78
|
+
node,
|
79
|
+
attemptEval,
|
80
|
+
jsxPath,
|
81
|
+
originalNodeName,
|
82
|
+
filePath,
|
83
|
+
lineNumbers,
|
84
|
+
programPath,
|
85
|
+
isFlattened,
|
86
|
+
staticConfig
|
87
|
+
}) => {
|
88
|
+
if (staticConfig.acceptsClassName === !1) {
|
89
|
+
shouldPrintDebug && console.info("bail, acceptsClassName is false");
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
const didFlattenThisTag = hasFlattened;
|
93
|
+
hasFlattened = !1;
|
94
|
+
let finalClassNames = [];
|
95
|
+
const finalAttrs = [];
|
96
|
+
let finalStyles = [], viewStyles = {};
|
97
|
+
for (const attr of attrs)
|
98
|
+
attr.type === "style" && (viewStyles = {
|
99
|
+
...viewStyles,
|
100
|
+
...attr.value
|
101
|
+
});
|
102
|
+
const ensureNeededPrevStyle = (style) => {
|
103
|
+
if (!Object.keys(style).some((key) => mergeStyleGroups[key]))
|
104
|
+
return style;
|
105
|
+
for (const k in mergeStyleGroups)
|
106
|
+
k in viewStyles && (style[k] = style[k] ?? viewStyles[k]);
|
107
|
+
return style;
|
108
|
+
}, addStyles = (style) => {
|
109
|
+
if (!style) return [];
|
110
|
+
const styleWithPrev = ensureNeededPrevStyle(style), res2 = getStylesAtomic(styleWithPrev);
|
111
|
+
return res2.length && (finalStyles = [...finalStyles, ...res2]), res2;
|
112
|
+
};
|
113
|
+
let lastMediaImportance = 1;
|
114
|
+
for (const attr of attrs)
|
115
|
+
switch (attr.type) {
|
116
|
+
case "style": {
|
117
|
+
if (isFlattened) {
|
118
|
+
const styles2 = addStyles(attr.value), newFontFamily = (0, import_propsToFontFamilyCache.getFontFamilyClassNameFromProps)(attr.value) || "", newClassNames = helpers.concatClassName(
|
119
|
+
styles2.map((x) => x[helpers.StyleObjectIdentifier]).join(" ") + newFontFamily
|
120
|
+
), existing = finalClassNames.find(
|
121
|
+
(x) => x.type == "StringLiteral"
|
122
|
+
);
|
123
|
+
if (existing) {
|
124
|
+
let previous = existing.value;
|
125
|
+
newFontFamily && (shouldPrintDebug && console.info(` newFontFamily: ${newFontFamily}`), previous = previous.replace(/font_[a-z]+/i, "")), existing.value = `${previous} ${newClassNames}`;
|
126
|
+
} else
|
127
|
+
finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)];
|
128
|
+
} else {
|
129
|
+
const styles2 = getStylesAtomic(attr.value);
|
130
|
+
finalStyles = [...finalStyles, ...styles2];
|
131
|
+
for (const style of styles2) {
|
132
|
+
const prop = style[helpers.StyleObjectPseudo] ? `${style[helpers.StyleObjectProperty]}-${style[helpers.StyleObjectPseudo]}` : style[helpers.StyleObjectProperty];
|
133
|
+
finalAttrs.push(
|
134
|
+
t.jsxAttribute(
|
135
|
+
t.jsxIdentifier(prop),
|
136
|
+
t.stringLiteral(style[helpers.StyleObjectIdentifier])
|
137
|
+
)
|
138
|
+
);
|
139
|
+
}
|
140
|
+
}
|
141
|
+
break;
|
142
|
+
}
|
143
|
+
case "attr": {
|
144
|
+
const val = attr.value;
|
145
|
+
if (t.isJSXSpreadAttribute(val))
|
146
|
+
(0, import_extractHelpers.isSimpleSpread)(val) && finalClassNames.push(
|
147
|
+
t.logicalExpression(
|
148
|
+
"&&",
|
149
|
+
val.argument,
|
150
|
+
t.memberExpression(val.argument, t.identifier("className"))
|
151
|
+
)
|
152
|
+
);
|
153
|
+
else if (val.name.name === "className") {
|
154
|
+
const value = val.value;
|
155
|
+
if (value)
|
156
|
+
try {
|
157
|
+
const evaluatedValue = attemptEval(value);
|
158
|
+
finalClassNames.push(t.stringLiteral(evaluatedValue));
|
159
|
+
} catch {
|
160
|
+
finalClassNames.push(value.expression);
|
161
|
+
}
|
162
|
+
continue;
|
163
|
+
}
|
164
|
+
finalAttrs.push(val);
|
165
|
+
break;
|
166
|
+
}
|
167
|
+
case "ternary": {
|
168
|
+
const mediaExtraction = (0, import_extractMediaStyle.extractMediaStyle)(
|
169
|
+
parserProps,
|
170
|
+
attr.value,
|
171
|
+
jsxPath,
|
172
|
+
extractor.getTamagui(),
|
173
|
+
sourcePath || "",
|
174
|
+
lastMediaImportance,
|
175
|
+
shouldPrintDebug
|
176
|
+
);
|
177
|
+
if (shouldPrintDebug && mediaExtraction && console.info(
|
178
|
+
"ternary (mediaStyles)",
|
179
|
+
mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? "",
|
180
|
+
mediaExtraction.mediaStyles.map((x) => x[helpers.StyleObjectIdentifier]).join(".")
|
181
|
+
), !mediaExtraction) {
|
182
|
+
shouldPrintDebug && mediaExtraction && console.info("add ternary"), addTernaryStyle(
|
183
|
+
attr.value,
|
184
|
+
addStyles(attr.value.consequent),
|
185
|
+
addStyles(attr.value.alternate)
|
186
|
+
);
|
187
|
+
continue;
|
188
|
+
}
|
189
|
+
lastMediaImportance++, mediaExtraction.mediaStyles && (finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]), mediaExtraction.ternaryWithoutMedia ? addTernaryStyle(
|
190
|
+
mediaExtraction.ternaryWithoutMedia,
|
191
|
+
mediaExtraction.mediaStyles,
|
192
|
+
[]
|
193
|
+
) : finalClassNames = [
|
194
|
+
...finalClassNames,
|
195
|
+
...mediaExtraction.mediaStyles.map(
|
196
|
+
(x) => t.stringLiteral(x[helpers.StyleObjectIdentifier])
|
197
|
+
)
|
198
|
+
];
|
199
|
+
break;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
function addTernaryStyle(ternary, a, b) {
|
203
|
+
const cCN = a.map((x) => x[helpers.StyleObjectIdentifier]).join(" "), aCN = b.map((x) => x[helpers.StyleObjectIdentifier]).join(" ");
|
204
|
+
a.length && b.length ? finalClassNames.push(
|
205
|
+
t.conditionalExpression(
|
206
|
+
ternary.test,
|
207
|
+
t.stringLiteral(cCN),
|
208
|
+
t.stringLiteral(aCN)
|
209
|
+
)
|
210
|
+
) : finalClassNames.push(
|
211
|
+
t.conditionalExpression(
|
212
|
+
ternary.test,
|
213
|
+
t.stringLiteral(" " + cCN),
|
214
|
+
t.stringLiteral(" " + aCN)
|
215
|
+
)
|
216
|
+
);
|
217
|
+
}
|
218
|
+
if (shouldPrintDebug === "verbose" && console.info(` finalClassNames AST
|
219
|
+
`, JSON.stringify(finalClassNames, null, 2)), node.attributes = finalAttrs, finalClassNames.length) {
|
220
|
+
const extraClassNames = (() => {
|
221
|
+
let value = "";
|
222
|
+
return isFlattened && (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS && (value += "is_tamagui_flattened"), staticConfig.componentName && (value += ` is_${staticConfig.componentName}`)), value;
|
223
|
+
})(), names = (0, import_buildClassName.buildClassName)(finalClassNames, extraClassNames), nameExpr = names ? (0, import_hoistClassNames.hoistClassNames)(jsxPath, existingHoists, names) : null;
|
224
|
+
let expr = nameExpr;
|
225
|
+
if (nameExpr && !t.isIdentifier(nameExpr) && didFlattenThisTag) {
|
226
|
+
(0, import_ensureImportingConcat.ensureImportingConcat)(programPath);
|
227
|
+
const simpleSpreads = attrs.filter((x) => x.type === "attr" && t.isJSXSpreadAttribute(x.value) && (0, import_extractHelpers.isSimpleSpread)(x.value));
|
228
|
+
expr = t.callExpression(t.identifier("concatClassName"), [
|
229
|
+
expr,
|
230
|
+
...simpleSpreads.map((val) => val.value.argument)
|
231
|
+
]);
|
232
|
+
}
|
233
|
+
node.attributes.push(
|
234
|
+
t.jsxAttribute(t.jsxIdentifier("className"), t.jsxExpressionContainer(expr))
|
235
|
+
);
|
236
|
+
}
|
237
|
+
const comment = util.format(
|
238
|
+
"/* %s:%s (%s) */",
|
239
|
+
filePath,
|
240
|
+
lineNumbers,
|
241
|
+
originalNodeName
|
242
|
+
);
|
243
|
+
for (const styleObject of finalStyles) {
|
244
|
+
const identifier = styleObject[helpers.StyleObjectIdentifier], rules = styleObject[helpers.StyleObjectRules], className = `.${identifier}`;
|
245
|
+
if (cssMap.has(className)) {
|
246
|
+
if (comment) {
|
247
|
+
const val = cssMap.get(className);
|
248
|
+
val.commentTexts.push(comment), cssMap.set(className, val);
|
249
|
+
}
|
250
|
+
} else rules.length && cssMap.set(className, {
|
251
|
+
css: rules.join(`
|
252
|
+
`),
|
253
|
+
commentTexts: [comment]
|
254
|
+
});
|
255
|
+
}
|
256
|
+
}
|
257
|
+
});
|
258
|
+
if (!res || !res.modified && !res.optimized && !res.flattened && !res.styled)
|
259
|
+
return shouldPrintDebug && console.info("no res or none modified", res), null;
|
260
|
+
const styles = Array.from(cssMap.values()).map((x) => x.css).join(`
|
261
|
+
`).trim(), result = (0, import_generator.default)(
|
262
|
+
ast,
|
263
|
+
{
|
264
|
+
concise: !1,
|
265
|
+
filename: sourcePath,
|
266
|
+
// this makes the debug output terrible, and i think sourcemap works already
|
267
|
+
retainLines: !1,
|
268
|
+
sourceFileName: sourcePath,
|
269
|
+
sourceMaps: !0
|
270
|
+
},
|
271
|
+
source
|
272
|
+
);
|
273
|
+
return shouldPrintDebug && (console.info(
|
274
|
+
`
|
275
|
+
-------- output code -------
|
276
|
+
|
277
|
+
`,
|
278
|
+
result.code.split(`
|
279
|
+
`).filter((x) => !x.startsWith("//")).join(`
|
280
|
+
`)
|
281
|
+
), console.info(`
|
282
|
+
-------- output style --------
|
283
|
+
|
284
|
+
`, styles)), printLog(res), {
|
285
|
+
ast,
|
286
|
+
styles,
|
287
|
+
js: result.code,
|
288
|
+
map: result.map
|
289
|
+
};
|
290
|
+
}
|
291
|
+
//# sourceMappingURL=extractToClassNames.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../src/extractor/extractToClassNames.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["res", "styles", "generate"]
|
6
|
+
}
|
@@ -0,0 +1,319 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
11
|
+
for (let key of __getOwnPropNames(from))
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
13
|
+
return to;
|
14
|
+
};
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
21
|
+
mod
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
23
|
+
var extractToNative_exports = {};
|
24
|
+
__export(extractToNative_exports, {
|
25
|
+
extractToNative: () => extractToNative,
|
26
|
+
getBabelParseDefinition: () => getBabelParseDefinition,
|
27
|
+
getBabelPlugin: () => getBabelPlugin
|
28
|
+
});
|
29
|
+
module.exports = __toCommonJS(extractToNative_exports);
|
30
|
+
var import_node_path = require("node:path"), import_core = require("@babel/core"), import_generator = __toESM(require("@babel/generator")), import_helper_plugin_utils = require("@babel/helper-plugin-utils"), import_parser = require("@babel/parser"), import_template = __toESM(require("@babel/template")), t = __toESM(require("@babel/types")), import_createExtractor = require("./createExtractor"), import_getPragmaOptions = require("../getPragmaOptions"), import_createLogger = require("./createLogger"), import_extractHelpers = require("./extractHelpers"), import_literalToAst = require("./literalToAst"), import_loadTamagui = require("./loadTamagui");
|
31
|
+
const importNativeView = (0, import_template.default)(`
|
32
|
+
const __ReactNativeView = require('react-native').View;
|
33
|
+
const __ReactNativeText = require('react-native').Text;
|
34
|
+
`), importStyleSheet = (0, import_template.default)(`
|
35
|
+
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
36
|
+
`), importWithStyle = (0, import_template.default)(`
|
37
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
38
|
+
`), extractor = (0, import_createExtractor.createExtractor)({ platform: "native" });
|
39
|
+
let tamaguiBuildOptionsLoaded;
|
40
|
+
function extractToNative(sourceFileName, sourceCode, options) {
|
41
|
+
const ast = (0, import_parser.parse)(sourceCode, {
|
42
|
+
sourceType: "module",
|
43
|
+
plugins: ["jsx", "typescript"]
|
44
|
+
}), babelPlugin = getBabelPlugin(), out = (0, import_core.transformFromAstSync)(ast, sourceCode, {
|
45
|
+
plugins: [[babelPlugin, options]],
|
46
|
+
configFile: !1,
|
47
|
+
sourceFileName,
|
48
|
+
filename: sourceFileName
|
49
|
+
});
|
50
|
+
if (!out)
|
51
|
+
throw new Error("No output returned");
|
52
|
+
return out;
|
53
|
+
}
|
54
|
+
function getBabelPlugin() {
|
55
|
+
return (0, import_helper_plugin_utils.declare)((api, options) => (api.assertVersion(7), getBabelParseDefinition(options)));
|
56
|
+
}
|
57
|
+
function getBabelParseDefinition(options) {
|
58
|
+
return {
|
59
|
+
name: "tamagui",
|
60
|
+
visitor: {
|
61
|
+
Program: {
|
62
|
+
enter(root) {
|
63
|
+
let sourcePath = this.file.opts.filename;
|
64
|
+
if (sourcePath?.includes("node_modules") || !sourcePath?.endsWith(".jsx") && !sourcePath?.endsWith(".tsx"))
|
65
|
+
return;
|
66
|
+
process.env.SOURCE_ROOT?.endsWith("ios") && (sourcePath = sourcePath.replace("/ios", ""));
|
67
|
+
let hasImportedView = !1, hasImportedViewWrapper = !1;
|
68
|
+
const sheetStyles = {}, sheetIdentifier = root.scope.generateUidIdentifier("sheet"), firstCommentContents = (
|
69
|
+
// join because you can join together multiple pragmas
|
70
|
+
root.node.body[0]?.leadingComments?.map((comment) => comment?.value || " ").join(" ") ?? ""
|
71
|
+
), firstComment = firstCommentContents ? `//${firstCommentContents}` : "", { shouldPrintDebug, shouldDisable } = (0, import_getPragmaOptions.getPragmaOptions)({
|
72
|
+
source: firstComment,
|
73
|
+
path: sourcePath
|
74
|
+
});
|
75
|
+
if (shouldDisable)
|
76
|
+
return;
|
77
|
+
!options.config && !options.components && (tamaguiBuildOptionsLoaded ||= (0, import_loadTamagui.loadTamaguiBuildConfigSync)({}));
|
78
|
+
const finalOptions = {
|
79
|
+
// @ts-ignore just in case they leave it out
|
80
|
+
platform: "native",
|
81
|
+
...tamaguiBuildOptionsLoaded,
|
82
|
+
...options
|
83
|
+
}, printLog = (0, import_createLogger.createLogger)(sourcePath, finalOptions);
|
84
|
+
function addSheetStyle(style, node) {
|
85
|
+
let key = `${`${Object.keys(sheetStyles).length}`}`;
|
86
|
+
if (process.env.NODE_ENV === "development") {
|
87
|
+
const lineNumbers = node.loc ? node.loc.start.line + (node.loc.start.line !== node.loc.end.line ? `-${node.loc.end.line}` : "") : "";
|
88
|
+
key += `:${(0, import_node_path.basename)(sourcePath)}:${lineNumbers}`;
|
89
|
+
}
|
90
|
+
return sheetStyles[key] = style, readStyleExpr(key);
|
91
|
+
}
|
92
|
+
function readStyleExpr(key) {
|
93
|
+
return (0, import_template.default)("SHEET['KEY']")({
|
94
|
+
SHEET: sheetIdentifier.name,
|
95
|
+
KEY: key
|
96
|
+
}).expression;
|
97
|
+
}
|
98
|
+
let res;
|
99
|
+
try {
|
100
|
+
res = extractor.parseSync(root, {
|
101
|
+
importsWhitelist: ["constants.js", "colors.js"],
|
102
|
+
extractStyledDefinitions: options.forceExtractStyleDefinitions,
|
103
|
+
excludeProps: /* @__PURE__ */ new Set([
|
104
|
+
"className",
|
105
|
+
"userSelect",
|
106
|
+
"whiteSpace",
|
107
|
+
"textOverflow",
|
108
|
+
"cursor",
|
109
|
+
"contain"
|
110
|
+
]),
|
111
|
+
shouldPrintDebug,
|
112
|
+
...finalOptions,
|
113
|
+
// disable this extraction for now at least, need to figure out merging theme vs non-theme
|
114
|
+
// because theme need to stay in render(), whereas non-theme can be extracted
|
115
|
+
// for now just turn it off entirely at a small perf loss
|
116
|
+
disableExtractInlineMedia: !0,
|
117
|
+
// disable extracting variables as no native concept of them (only theme values)
|
118
|
+
disableExtractVariables: options.experimentalFlattenThemesOnNative ? !1 : "theme",
|
119
|
+
sourcePath,
|
120
|
+
// disabling flattening for now
|
121
|
+
// it's flattening a plain <Paragraph>hello</Paragraph> which breaks things because themes
|
122
|
+
// thinking it's not really worth the effort to do much compilation on native
|
123
|
+
// for now just disable flatten as it can only run in narrow places on native
|
124
|
+
// disableFlattening: 'styled',
|
125
|
+
getFlattenedNode({ isTextView }) {
|
126
|
+
return hasImportedView || (hasImportedView = !0, root.unshiftContainer("body", importNativeView())), isTextView ? "__ReactNativeText" : "__ReactNativeView";
|
127
|
+
},
|
128
|
+
onExtractTag(props) {
|
129
|
+
const { isFlattened } = props;
|
130
|
+
if (!isFlattened)
|
131
|
+
return;
|
132
|
+
assertValidTag(props.node);
|
133
|
+
const stylesExpr = t.arrayExpression([]), hocStylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
134
|
+
function getStyleExpression(style) {
|
135
|
+
if (!style) return;
|
136
|
+
const { plain, themed } = splitThemeStyles(style);
|
137
|
+
let themeExpr = null;
|
138
|
+
if (themed && options.experimentalFlattenThemesOnNative) {
|
139
|
+
for (const key in themed)
|
140
|
+
themeKeysUsed.add(themed[key].split("$")[1]);
|
141
|
+
themeExpr = getThemedStyleExpression(themed);
|
142
|
+
}
|
143
|
+
const ident = addSheetStyle(plain, props.node);
|
144
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
145
|
+
}
|
146
|
+
function addStyleExpression(expr, HOC = !1) {
|
147
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
148
|
+
}
|
149
|
+
function getThemedStyleExpression(styles) {
|
150
|
+
const themedStylesAst = (0, import_literalToAst.literalToAst)(styles);
|
151
|
+
return themedStylesAst.properties.forEach((_) => {
|
152
|
+
const prop = _;
|
153
|
+
prop.value.type === "StringLiteral" && (prop.value = t.memberExpression(
|
154
|
+
t.identifier("theme"),
|
155
|
+
t.identifier(prop.value.value.slice(1) + ".get()")
|
156
|
+
));
|
157
|
+
}), themedStylesAst;
|
158
|
+
}
|
159
|
+
let hasDynamicStyle = !1;
|
160
|
+
for (const attr of props.attrs)
|
161
|
+
switch (attr.type) {
|
162
|
+
case "style": {
|
163
|
+
let styleExpr = getStyleExpression(attr.value);
|
164
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
165
|
+
break;
|
166
|
+
}
|
167
|
+
case "ternary": {
|
168
|
+
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate);
|
169
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(
|
170
|
+
t.conditionalExpression(
|
171
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
172
|
+
consExpr || t.nullLiteral(),
|
173
|
+
altExpr || t.nullLiteral()
|
174
|
+
),
|
175
|
+
!0
|
176
|
+
));
|
177
|
+
const styleExpr = t.conditionalExpression(
|
178
|
+
attr.value.test,
|
179
|
+
consExpr || t.nullLiteral(),
|
180
|
+
altExpr || t.nullLiteral()
|
181
|
+
);
|
182
|
+
addStyleExpression(
|
183
|
+
styleExpr
|
184
|
+
// TODO: what is this for ?
|
185
|
+
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
186
|
+
);
|
187
|
+
break;
|
188
|
+
}
|
189
|
+
case "dynamic-style": {
|
190
|
+
hasDynamicStyle = !0, expressions.push(attr.value), options.experimentalFlattenDynamicValues ? addStyleExpression(
|
191
|
+
t.objectExpression([
|
192
|
+
t.objectProperty(
|
193
|
+
t.identifier(attr.name),
|
194
|
+
t.identifier(`_expressions[${expressions.length - 1}]`)
|
195
|
+
)
|
196
|
+
]),
|
197
|
+
!0
|
198
|
+
) : addStyleExpression(
|
199
|
+
t.objectExpression([
|
200
|
+
t.objectProperty(
|
201
|
+
t.identifier(attr.name),
|
202
|
+
attr.value
|
203
|
+
)
|
204
|
+
])
|
205
|
+
);
|
206
|
+
break;
|
207
|
+
}
|
208
|
+
case "attr": {
|
209
|
+
t.isJSXSpreadAttribute(attr.value) && (0, import_extractHelpers.isSimpleSpread)(attr.value) && (stylesExpr.elements.push(
|
210
|
+
t.memberExpression(attr.value.argument, t.identifier("style"))
|
211
|
+
), options.experimentalFlattenThemesOnNative && hocStylesExpr.elements.push(
|
212
|
+
t.memberExpression(
|
213
|
+
attr.value.argument,
|
214
|
+
t.identifier("style")
|
215
|
+
)
|
216
|
+
)), finalAttrs.push(attr.value);
|
217
|
+
break;
|
218
|
+
}
|
219
|
+
}
|
220
|
+
if (props.node.attributes = finalAttrs, props.isFlattened)
|
221
|
+
if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
222
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
223
|
+
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
224
|
+
name + "Wrapper"
|
225
|
+
);
|
226
|
+
root.pushContainer(
|
227
|
+
"body",
|
228
|
+
t.variableDeclaration("const", [
|
229
|
+
t.variableDeclarator(
|
230
|
+
WrapperIdentifier,
|
231
|
+
t.callExpression(t.identifier("__withStableStyle"), [
|
232
|
+
t.identifier(name),
|
233
|
+
t.arrowFunctionExpression(
|
234
|
+
[t.identifier("theme"), t.identifier("_expressions")],
|
235
|
+
t.blockStatement([
|
236
|
+
t.returnStatement(
|
237
|
+
t.callExpression(
|
238
|
+
t.memberExpression(
|
239
|
+
t.identifier("React"),
|
240
|
+
t.identifier("useMemo")
|
241
|
+
),
|
242
|
+
[
|
243
|
+
t.arrowFunctionExpression(
|
244
|
+
[],
|
245
|
+
t.blockStatement([
|
246
|
+
t.returnStatement(
|
247
|
+
t.arrayExpression([...hocStylesExpr.elements])
|
248
|
+
)
|
249
|
+
])
|
250
|
+
),
|
251
|
+
t.arrayExpression([
|
252
|
+
t.spreadElement(t.identifier("_expressions"))
|
253
|
+
])
|
254
|
+
]
|
255
|
+
)
|
256
|
+
)
|
257
|
+
])
|
258
|
+
)
|
259
|
+
])
|
260
|
+
)
|
261
|
+
])
|
262
|
+
), props.node.name = WrapperIdentifier, props.jsxPath.node.closingElement && (props.jsxPath.node.closingElement.name = WrapperIdentifier), expressions.length && props.node.attributes.push(
|
263
|
+
t.jsxAttribute(
|
264
|
+
t.jsxIdentifier("expressions"),
|
265
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
266
|
+
)
|
267
|
+
);
|
268
|
+
} else
|
269
|
+
props.node.attributes.push(
|
270
|
+
t.jsxAttribute(
|
271
|
+
t.jsxIdentifier("style"),
|
272
|
+
t.jsxExpressionContainer(
|
273
|
+
stylesExpr.elements.length === 1 ? stylesExpr.elements[0] : stylesExpr
|
274
|
+
)
|
275
|
+
)
|
276
|
+
);
|
277
|
+
}
|
278
|
+
});
|
279
|
+
} catch (err) {
|
280
|
+
if (err instanceof Error) {
|
281
|
+
let message = `${shouldPrintDebug === "verbose" ? err : err.message}`;
|
282
|
+
message.includes("Unexpected return value from visitor method") && (message = "Unexpected return value from visitor method"), console.warn("Error in Tamagui parse, skipping", message, err.stack);
|
283
|
+
return;
|
284
|
+
}
|
285
|
+
}
|
286
|
+
if (!Object.keys(sheetStyles).length) {
|
287
|
+
shouldPrintDebug && console.info("END no styles"), res && printLog(res);
|
288
|
+
return;
|
289
|
+
}
|
290
|
+
const sheetObject = (0, import_literalToAst.literalToAst)(sheetStyles), sheetOuter = (0, import_template.default)(
|
291
|
+
"const SHEET = __ReactNativeStyleSheet.create(null)"
|
292
|
+
)({
|
293
|
+
SHEET: sheetIdentifier.name
|
294
|
+
});
|
295
|
+
sheetOuter.declarations[0].init.arguments[0] = sheetObject, root.unshiftContainer("body", sheetOuter), root.unshiftContainer("body", importStyleSheet()), shouldPrintDebug && (console.info(`
|
296
|
+
-------- output code -------
|
297
|
+
`), console.info(
|
298
|
+
(0, import_generator.default)(root.parent).code.split(`
|
299
|
+
`).filter((x) => !x.startsWith("//")).join(`
|
300
|
+
`)
|
301
|
+
)), res && printLog(res);
|
302
|
+
}
|
303
|
+
}
|
304
|
+
}
|
305
|
+
};
|
306
|
+
}
|
307
|
+
function assertValidTag(node) {
|
308
|
+
node.attributes.find((x) => x.type === "JSXAttribute" && x.name.name === "style") && process.env.DEBUG?.startsWith("tamagui") && console.warn("\u26A0\uFE0F Cannot pass style attribute to extracted style");
|
309
|
+
}
|
310
|
+
function splitThemeStyles(style) {
|
311
|
+
const themed = {}, plain = {};
|
312
|
+
let noTheme = !0;
|
313
|
+
for (const key in style) {
|
314
|
+
const val = style[key];
|
315
|
+
val && val[0] === "$" ? (themed[key] = val, noTheme = !1) : plain[key] = val;
|
316
|
+
}
|
317
|
+
return { themed: noTheme ? null : themed, plain };
|
318
|
+
}
|
319
|
+
//# sourceMappingURL=extractToNative.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../src/extractor/extractToNative.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["template", "generator"]
|
6
|
+
}
|