@tamagui/static 1.74.3 → 1.74.5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/require.js +89 -0
- package/dist/cjs/require.js.map +6 -0
- package/dist/cjs/require.native.js +90 -0
- package/dist/cjs/require.native.js.map +6 -0
- package/dist/esm/constants.native.js +10 -0
- package/dist/esm/constants.native.js.map +6 -0
- package/dist/esm/extractor/accessSafe.native.js +23 -0
- package/dist/esm/extractor/accessSafe.native.js.map +6 -0
- package/dist/esm/extractor/babelParse.native.js +35 -0
- package/dist/esm/extractor/babelParse.native.js.map +6 -0
- package/dist/esm/extractor/buildClassName.native.js +48 -0
- package/dist/esm/extractor/buildClassName.native.js.map +6 -0
- package/dist/esm/extractor/bundle.native.js +93 -0
- package/dist/esm/extractor/bundle.native.js.map +6 -0
- package/dist/esm/extractor/bundleConfig.native.js +301 -0
- package/dist/esm/extractor/bundleConfig.native.js.map +6 -0
- package/dist/esm/extractor/createEvaluator.native.js +35 -0
- package/dist/esm/extractor/createEvaluator.native.js.map +6 -0
- package/dist/esm/extractor/createExtractor.native.js +1095 -0
- package/dist/esm/extractor/createExtractor.native.js.map +6 -0
- package/dist/esm/extractor/ensureImportingConcat.native.js +26 -0
- package/dist/esm/extractor/ensureImportingConcat.native.js.map +6 -0
- package/dist/esm/extractor/esbuildAliasPlugin.native.js +20 -0
- package/dist/esm/extractor/esbuildAliasPlugin.native.js.map +6 -0
- package/dist/esm/extractor/evaluateAstNode.native.js +75 -0
- package/dist/esm/extractor/evaluateAstNode.native.js.map +6 -0
- package/dist/esm/extractor/extractHelpers.native.js +93 -0
- package/dist/esm/extractor/extractHelpers.native.js.map +6 -0
- package/dist/esm/extractor/extractMediaStyle.native.js +100 -0
- package/dist/esm/extractor/extractMediaStyle.native.js.map +6 -0
- package/dist/esm/extractor/extractToClassNames.native.js +290 -0
- package/dist/esm/extractor/extractToClassNames.native.js.map +6 -0
- package/dist/esm/extractor/findTopmostFunction.native.js +16 -0
- package/dist/esm/extractor/findTopmostFunction.native.js.map +6 -0
- package/dist/esm/extractor/generateTamaguiStudioConfig.native.js +93 -0
- package/dist/esm/extractor/generateTamaguiStudioConfig.native.js.map +6 -0
- package/dist/esm/extractor/generatedUid.native.js +18 -0
- package/dist/esm/extractor/generatedUid.native.js.map +6 -0
- package/dist/esm/extractor/getPrefixLogs.native.js +7 -0
- package/dist/esm/extractor/getPrefixLogs.native.js.map +6 -0
- package/dist/esm/extractor/getPropValueFromAttributes.native.js +43 -0
- package/dist/esm/extractor/getPropValueFromAttributes.native.js.map +6 -0
- package/dist/esm/extractor/getSourceModule.native.js +42 -0
- package/dist/esm/extractor/getSourceModule.native.js.map +6 -0
- package/dist/esm/extractor/getStaticBindingsForScope.native.js +127 -0
- package/dist/esm/extractor/getStaticBindingsForScope.native.js.map +6 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.native.js +8 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.native.js.map +6 -0
- package/dist/esm/extractor/hoistClassNames.native.js +37 -0
- package/dist/esm/extractor/hoistClassNames.native.js.map +6 -0
- package/dist/esm/extractor/literalToAst.native.js +66 -0
- package/dist/esm/extractor/literalToAst.native.js.map +6 -0
- package/dist/esm/extractor/loadFile.native.js +14 -0
- package/dist/esm/extractor/loadFile.native.js.map +6 -0
- package/dist/esm/extractor/loadTamagui.native.js +248 -0
- package/dist/esm/extractor/loadTamagui.native.js.map +6 -0
- package/dist/esm/extractor/logLines.native.js +14 -0
- package/dist/esm/extractor/logLines.native.js.map +6 -0
- package/dist/esm/extractor/normalizeTernaries.native.js +37 -0
- package/dist/esm/extractor/normalizeTernaries.native.js.map +6 -0
- package/dist/esm/extractor/propsToFontFamilyCache.native.js +18 -0
- package/dist/esm/extractor/propsToFontFamilyCache.native.js.map +6 -0
- package/dist/esm/extractor/removeUnusedHooks.native.js +51 -0
- package/dist/esm/extractor/removeUnusedHooks.native.js.map +6 -0
- package/dist/esm/extractor/timer.native.js +22 -0
- package/dist/esm/extractor/timer.native.js.map +6 -0
- package/dist/esm/extractor/validHTMLAttributes.native.js +52 -0
- package/dist/esm/extractor/validHTMLAttributes.native.js.map +6 -0
- package/dist/esm/getPragmaOptions.native.js +22 -0
- package/dist/esm/getPragmaOptions.native.js.map +6 -0
- package/dist/esm/helpers/memoize.native.js +17 -0
- package/dist/esm/helpers/memoize.native.js.map +6 -0
- package/dist/esm/helpers/requireTamaguiCore.native.js +9 -0
- package/dist/esm/helpers/requireTamaguiCore.native.js.map +6 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +6 -0
- package/dist/esm/registerRequire.native.js +83 -0
- package/dist/esm/registerRequire.native.js.map +6 -0
- package/dist/esm/require.js +66 -0
- package/dist/esm/require.js.map +6 -0
- package/dist/esm/setup.native.js +2 -0
- package/dist/esm/setup.native.js.map +6 -0
- package/dist/esm/static.native.js +15 -0
- package/dist/esm/static.native.js.map +6 -0
- package/dist/esm/types.native.js +1 -0
- package/dist/esm/types.native.js.map +6 -0
- package/dist/esm/webpackPlugin.native.js +11 -0
- package/dist/esm/webpackPlugin.native.js.map +6 -0
- package/package.json +16 -16
@@ -0,0 +1,290 @@
|
|
1
|
+
import * as path from "path";
|
2
|
+
import { basename } from "path";
|
3
|
+
import * as util from "util";
|
4
|
+
import generate from "@babel/generator";
|
5
|
+
import * as t from "@babel/types";
|
6
|
+
import { concatClassName } from "@tamagui/helpers";
|
7
|
+
import { requireTamaguiCore } from "../helpers/requireTamaguiCore";
|
8
|
+
import { babelParse } from "./babelParse";
|
9
|
+
import { buildClassName } from "./buildClassName";
|
10
|
+
import { ensureImportingConcat } from "./ensureImportingConcat";
|
11
|
+
import { isSimpleSpread } from "./extractHelpers";
|
12
|
+
import { extractMediaStyle } from "./extractMediaStyle";
|
13
|
+
import { getPrefixLogs } from "./getPrefixLogs";
|
14
|
+
import { hoistClassNames } from "./hoistClassNames";
|
15
|
+
import { logLines } from "./logLines";
|
16
|
+
import { getFontFamilyClassNameFromProps } from "./propsToFontFamilyCache";
|
17
|
+
import { timer } from "./timer";
|
18
|
+
const mergeStyleGroups = {
|
19
|
+
shadowOpacity: !0,
|
20
|
+
shadowRadius: !0,
|
21
|
+
shadowColor: !0,
|
22
|
+
shadowOffset: !0
|
23
|
+
};
|
24
|
+
async function extractToClassNames({
|
25
|
+
extractor,
|
26
|
+
source,
|
27
|
+
sourcePath,
|
28
|
+
options,
|
29
|
+
shouldPrintDebug
|
30
|
+
}) {
|
31
|
+
const tm = timer(), { getStylesAtomic } = requireTamaguiCore("web");
|
32
|
+
if (sourcePath?.includes("node_modules"))
|
33
|
+
return null;
|
34
|
+
if (shouldPrintDebug && console.warn(`--- ${sourcePath} ---
|
35
|
+
|
36
|
+
`), typeof source != "string")
|
37
|
+
throw new Error("`source` must be a string of javascript");
|
38
|
+
if (sourcePath && !path.isAbsolute(sourcePath))
|
39
|
+
throw new Error("`sourcePath` must be an absolute path to a .js file");
|
40
|
+
/.[tj]sx?$/i.test(sourcePath || "") || console.warn(`${sourcePath?.slice(0, 100)} - bad filename.`), !options.disableExtraction && !options._disableLoadTamagui && await extractor.loadTamagui(options);
|
41
|
+
const shouldLogTiming = options.logTimings ?? !0, start = Date.now(), mem = process.env.TAMAGUI_SHOW_MEMORY_USAGE && shouldLogTiming ? process.memoryUsage() : null;
|
42
|
+
let ast;
|
43
|
+
try {
|
44
|
+
ast = babelParse(source, sourcePath);
|
45
|
+
} catch (err) {
|
46
|
+
throw console.error("babel parse error:", sourcePath?.slice(0, 100)), err;
|
47
|
+
}
|
48
|
+
tm.mark("babel-parse", shouldPrintDebug === "verbose");
|
49
|
+
const cssMap = /* @__PURE__ */ new Map(), existingHoists = {};
|
50
|
+
let hasFlattened = !1;
|
51
|
+
const res = await extractor.parse(ast, {
|
52
|
+
shouldPrintDebug,
|
53
|
+
...options,
|
54
|
+
sourcePath,
|
55
|
+
extractStyledDefinitions: !0,
|
56
|
+
onStyleRule(identifier, rules) {
|
57
|
+
const css = rules.join(";");
|
58
|
+
shouldPrintDebug && console.log(`adding styled() rule: .${identifier} ${css}`), cssMap.set(`.${identifier}`, { css, commentTexts: [] });
|
59
|
+
},
|
60
|
+
getFlattenedNode: ({ tag }) => (hasFlattened = !0, tag),
|
61
|
+
onExtractTag: ({
|
62
|
+
parserProps,
|
63
|
+
attrs,
|
64
|
+
node,
|
65
|
+
attemptEval,
|
66
|
+
jsxPath,
|
67
|
+
originalNodeName,
|
68
|
+
filePath,
|
69
|
+
lineNumbers,
|
70
|
+
programPath,
|
71
|
+
isFlattened,
|
72
|
+
config,
|
73
|
+
completeProps,
|
74
|
+
staticConfig
|
75
|
+
}) => {
|
76
|
+
if (staticConfig.acceptsClassName === !1) {
|
77
|
+
shouldPrintDebug && console.log("bail, acceptsClassName is false");
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
const didFlattenThisTag = hasFlattened;
|
81
|
+
hasFlattened = !1;
|
82
|
+
let finalClassNames = [];
|
83
|
+
const finalAttrs = [];
|
84
|
+
let finalStyles = [], viewStyles = {};
|
85
|
+
for (const attr of attrs)
|
86
|
+
attr.type === "style" && (viewStyles = {
|
87
|
+
...viewStyles,
|
88
|
+
...attr.value
|
89
|
+
});
|
90
|
+
const ensureNeededPrevStyle = (style) => {
|
91
|
+
if (!Object.keys(style).some((key) => mergeStyleGroups[key]))
|
92
|
+
return style;
|
93
|
+
for (const k in mergeStyleGroups)
|
94
|
+
k in viewStyles && (style[k] = style[k] ?? viewStyles[k]);
|
95
|
+
return style;
|
96
|
+
}, addStyles = (style) => {
|
97
|
+
if (!style)
|
98
|
+
return [];
|
99
|
+
const styleWithPrev = ensureNeededPrevStyle(style), res2 = getStylesAtomic(styleWithPrev);
|
100
|
+
return res2.length && (finalStyles = [...finalStyles, ...res2]), res2;
|
101
|
+
};
|
102
|
+
let lastMediaImportance = 1;
|
103
|
+
for (const attr of attrs)
|
104
|
+
switch (attr.type) {
|
105
|
+
case "style": {
|
106
|
+
if (isFlattened) {
|
107
|
+
const styles2 = addStyles(attr.value), newFontFamily = getFontFamilyClassNameFromProps(attr.value) || "", newClassNames = concatClassName(
|
108
|
+
styles2.map((x) => x.identifier).join(" ") + newFontFamily
|
109
|
+
), existing = finalClassNames.find(
|
110
|
+
(x) => x.type == "StringLiteral"
|
111
|
+
);
|
112
|
+
if (existing) {
|
113
|
+
let previous = existing.value;
|
114
|
+
newFontFamily && (shouldPrintDebug && console.log(` newFontFamily: ${newFontFamily}`), previous = previous.replace(/font_[a-z]+/i, "")), existing.value = `${previous} ${newClassNames}`;
|
115
|
+
} else
|
116
|
+
finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)];
|
117
|
+
} else {
|
118
|
+
const styles2 = getStylesAtomic(attr.value);
|
119
|
+
finalStyles = [...finalStyles, ...styles2];
|
120
|
+
for (const style of styles2) {
|
121
|
+
const prop = style.pseudo ? `${style.property}-${style.pseudo}` : style.property;
|
122
|
+
finalAttrs.push(
|
123
|
+
t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))
|
124
|
+
);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
break;
|
128
|
+
}
|
129
|
+
case "attr": {
|
130
|
+
const val = attr.value;
|
131
|
+
if (t.isJSXSpreadAttribute(val))
|
132
|
+
isSimpleSpread(val) && finalClassNames.push(
|
133
|
+
t.logicalExpression(
|
134
|
+
"&&",
|
135
|
+
val.argument,
|
136
|
+
t.memberExpression(val.argument, t.identifier("className"))
|
137
|
+
)
|
138
|
+
);
|
139
|
+
else if (val.name.name === "className") {
|
140
|
+
const value = val.value;
|
141
|
+
if (value)
|
142
|
+
try {
|
143
|
+
const evaluatedValue = attemptEval(value);
|
144
|
+
finalClassNames.push(t.stringLiteral(evaluatedValue));
|
145
|
+
} catch {
|
146
|
+
finalClassNames.push(value.expression);
|
147
|
+
}
|
148
|
+
continue;
|
149
|
+
}
|
150
|
+
finalAttrs.push(val);
|
151
|
+
break;
|
152
|
+
}
|
153
|
+
case "ternary": {
|
154
|
+
const mediaExtraction = extractMediaStyle(
|
155
|
+
parserProps,
|
156
|
+
attr.value,
|
157
|
+
jsxPath,
|
158
|
+
extractor.getTamagui(),
|
159
|
+
sourcePath || "",
|
160
|
+
lastMediaImportance,
|
161
|
+
shouldPrintDebug
|
162
|
+
);
|
163
|
+
if (shouldPrintDebug && mediaExtraction && console.log(
|
164
|
+
"ternary (mediaStyles)",
|
165
|
+
mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? "",
|
166
|
+
mediaExtraction.mediaStyles.map((x) => x.identifier).join(".")
|
167
|
+
), !mediaExtraction) {
|
168
|
+
addTernaryStyle(
|
169
|
+
attr.value,
|
170
|
+
addStyles(attr.value.consequent),
|
171
|
+
addStyles(attr.value.alternate)
|
172
|
+
);
|
173
|
+
continue;
|
174
|
+
}
|
175
|
+
lastMediaImportance++, mediaExtraction.mediaStyles && (finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]), mediaExtraction.ternaryWithoutMedia ? addTernaryStyle(
|
176
|
+
mediaExtraction.ternaryWithoutMedia,
|
177
|
+
mediaExtraction.mediaStyles,
|
178
|
+
[]
|
179
|
+
) : finalClassNames = [
|
180
|
+
...finalClassNames,
|
181
|
+
...mediaExtraction.mediaStyles.map((x) => t.stringLiteral(x.identifier))
|
182
|
+
];
|
183
|
+
break;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
function addTernaryStyle(ternary, a, b) {
|
187
|
+
const cCN = a.map((x) => x.identifier).join(" "), aCN = b.map((x) => x.identifier).join(" ");
|
188
|
+
a.length && b.length ? finalClassNames.push(
|
189
|
+
t.conditionalExpression(
|
190
|
+
ternary.test,
|
191
|
+
t.stringLiteral(cCN),
|
192
|
+
t.stringLiteral(aCN)
|
193
|
+
)
|
194
|
+
) : finalClassNames.push(
|
195
|
+
t.conditionalExpression(
|
196
|
+
ternary.test,
|
197
|
+
t.stringLiteral(" " + cCN),
|
198
|
+
t.stringLiteral(" " + aCN)
|
199
|
+
)
|
200
|
+
);
|
201
|
+
}
|
202
|
+
if (shouldPrintDebug && console.log(
|
203
|
+
` finalClassNames
|
204
|
+
`,
|
205
|
+
logLines(finalClassNames.map((x) => x.value).join(" "))
|
206
|
+
), node.attributes = finalAttrs, finalClassNames.length) {
|
207
|
+
const extraClassNames = (() => {
|
208
|
+
let value = "";
|
209
|
+
return isFlattened && (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS && (value += "is_tamagui_flattened"), staticConfig.componentName && (value += ` is_${staticConfig.componentName}`)), value;
|
210
|
+
})(), names = buildClassName(finalClassNames, extraClassNames), nameExpr = names ? hoistClassNames(jsxPath, existingHoists, names) : null;
|
211
|
+
let expr = nameExpr;
|
212
|
+
if (nameExpr && !t.isIdentifier(nameExpr) && didFlattenThisTag) {
|
213
|
+
ensureImportingConcat(programPath);
|
214
|
+
const simpleSpreads = attrs.filter(
|
215
|
+
(x) => t.isJSXSpreadAttribute(x.value) && isSimpleSpread(x.value)
|
216
|
+
);
|
217
|
+
expr = t.callExpression(t.identifier("concatClassName"), [
|
218
|
+
expr,
|
219
|
+
...simpleSpreads.map((val) => val.value.argument)
|
220
|
+
]);
|
221
|
+
}
|
222
|
+
node.attributes.push(
|
223
|
+
t.jsxAttribute(t.jsxIdentifier("className"), t.jsxExpressionContainer(expr))
|
224
|
+
);
|
225
|
+
}
|
226
|
+
const comment = util.format(
|
227
|
+
"/* %s:%s (%s) */",
|
228
|
+
filePath,
|
229
|
+
lineNumbers,
|
230
|
+
originalNodeName
|
231
|
+
);
|
232
|
+
for (const { identifier, rules } of finalStyles) {
|
233
|
+
const className = `.${identifier}`;
|
234
|
+
if (cssMap.has(className)) {
|
235
|
+
if (comment) {
|
236
|
+
const val = cssMap.get(className);
|
237
|
+
val.commentTexts.push(comment), cssMap.set(className, val);
|
238
|
+
}
|
239
|
+
} else
|
240
|
+
rules.length && cssMap.set(className, {
|
241
|
+
css: rules.join(`
|
242
|
+
`),
|
243
|
+
commentTexts: [comment]
|
244
|
+
});
|
245
|
+
}
|
246
|
+
}
|
247
|
+
});
|
248
|
+
if (!res || !res.modified && !res.optimized && !res.flattened && !res.styled)
|
249
|
+
return shouldPrintDebug && console.log("no res or none modified", res), null;
|
250
|
+
const styles = Array.from(cssMap.values()).map((x) => x.css).join(`
|
251
|
+
`).trim(), result = generate(
|
252
|
+
ast,
|
253
|
+
{
|
254
|
+
concise: !1,
|
255
|
+
filename: sourcePath,
|
256
|
+
// this makes the debug output terrible, and i think sourcemap works already
|
257
|
+
retainLines: !1,
|
258
|
+
sourceFileName: sourcePath,
|
259
|
+
sourceMaps: !0
|
260
|
+
},
|
261
|
+
source
|
262
|
+
);
|
263
|
+
if (shouldPrintDebug && (console.log(
|
264
|
+
`
|
265
|
+
-------- output code -------
|
266
|
+
|
267
|
+
`,
|
268
|
+
result.code.split(`
|
269
|
+
`).filter((x) => !x.startsWith("//")).join(`
|
270
|
+
`)
|
271
|
+
), console.log(`
|
272
|
+
-------- output style --------
|
273
|
+
|
274
|
+
`, styles)), shouldLogTiming) {
|
275
|
+
const memUsed = mem ? Math.round((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204 * 10) / 10 : 0, path2 = basename(sourcePath || "").replace(/\.[jt]sx?$/, "").slice(0, 22).trim().padStart(24), numOptimized = `${res.optimized + res.styled}`.padStart(3), numFound = `${res.found + res.styled}`.padStart(3), numFlattened = `${res.flattened}`.padStart(3), memory = memUsed ? ` ${memUsed}MB` : "", timingStr = `${Date.now() - start}ms`.padStart(6), pre = getPrefixLogs(options), memStr = memory ? `(${memory})` : "";
|
276
|
+
console.log(
|
277
|
+
`${pre} ${path2} \xB7 ${numFound} found \xB7 ${numOptimized} opt \xB7 ${numFlattened} flat ${timingStr} ${memStr}`
|
278
|
+
);
|
279
|
+
}
|
280
|
+
return {
|
281
|
+
ast,
|
282
|
+
styles,
|
283
|
+
js: result.code,
|
284
|
+
map: result.map
|
285
|
+
};
|
286
|
+
}
|
287
|
+
export {
|
288
|
+
extractToClassNames
|
289
|
+
};
|
290
|
+
//# sourceMappingURL=extractToClassNames.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/extractToClassNames.ts"],
|
4
|
+
"mappings": "AAAA,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,YAAY,UAAU;AAEtB,OAAO,cAAc;AACrB,YAAY,OAAO;AACnB,SAAS,uBAAuB;AAGhC,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,6BAA6B;AACtC,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;AACzB,SAAS,uCAAuC;AAChD,SAAS,aAAa;AAEtB,MAAM,mBAAmB;AAAA,EACvB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAChB;AAkBA,eAAsB,oBAAoB;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgE;AAC9D,QAAM,KAAK,MAAM,GACX,EAAE,gBAAgB,IAAI,mBAAmB,KAAK;AAEpD,MAAI,YAAY,SAAS,cAAc;AACrC,WAAO;AAOT,MAJI,oBACF,QAAQ,KAAK,OAAO,UAAU;AAAA;AAAA,CAAW,GAGvC,OAAO,UAAW;AACpB,UAAM,IAAI,MAAM,yCAAyC;AAE3D,MAAI,cAAc,CAAC,KAAK,WAAW,UAAU;AAC3C,UAAM,IAAI,MAAM,qDAAqD;AAEvE,EAAK,aAAa,KAAK,cAAc,EAAE,KACrC,QAAQ,KAAK,GAAG,YAAY,MAAM,GAAG,GAAG,CAAC,kBAAkB,GAGzD,CAAC,QAAQ,qBAAqB,CAAC,QAAQ,uBAEzC,MAAM,UAAU,YAAY,OAAO;AAGrC,QAAM,kBAAkB,QAAQ,cAAc,IACxC,QAAQ,KAAK,IAAI,GACjB,MACJ,QAAQ,IAAI,6BAA6B,kBACrC,QAAQ,YAAY,IACpB;AAGN,MAAI;AAEJ,MAAI;AACF,UAAM,WAAW,QAAQ,UAAU;AAAA,EACrC,SAAS,KAAK;AACZ,kBAAQ,MAAM,sBAAsB,YAAY,MAAM,GAAG,GAAG,CAAC,GACvD;AAAA,EACR;AAEA,KAAG,KAAK,eAAe,qBAAqB,SAAS;AAErD,QAAM,SAAS,oBAAI,IAAqD,GAClE,iBAAkD,CAAC;AAEzD,MAAI,eAAe;AAEnB,QAAM,MAAM,MAAM,UAAU,MAAM,KAAK;AAAA,IACrC;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA,0BAA0B;AAAA,IAC1B,YAAY,YAAY,OAAO;AAC7B,YAAM,MAAM,MAAM,KAAK,GAAG;AAC1B,MAAI,oBAEF,QAAQ,IAAI,0BAA0B,UAAU,IAAI,GAAG,EAAE,GAE3D,OAAO,IAAI,IAAI,UAAU,IAAI,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;AAAA,IACxD;AAAA,IACA,kBAAkB,CAAC,EAAE,IAAI,OACvB,eAAe,IACR;AAAA,IAET,cAAc,CAAC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAAM;AAEJ,UAAI,aAAa,qBAAqB,IAAO;AAC3C,QAAI,oBAEF,QAAQ,IAAI,iCAAiC;AAE/C;AAAA,MACF;AAGA,YAAM,oBAAoB;AAC1B,qBAAe;AAEf,UAAI,kBAAqC,CAAC;AAC1C,YAAM,aAAwD,CAAC;AAC/D,UAAI,cAA6B,CAAC,GAE9B,aAAa,CAAC;AAClB,iBAAW,QAAQ;AACjB,QAAI,KAAK,SAAS,YAChB,aAAa;AAAA,UACX,GAAG;AAAA,UACH,GAAG,KAAK;AAAA,QACV;AAIJ,YAAM,wBAAwB,CAAC,UAAqB;AAGlD,YAAI,CADS,OAAO,KAAK,KAAK,EACpB,KAAK,CAAC,QAAQ,iBAAiB,GAAG,CAAC;AAC3C,iBAAO;AAET,mBAAW,KAAK;AACd,UAAI,KAAK,eACP,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,WAAW,CAAC;AAGvC,eAAO;AAAA,MACT,GAEM,YAAY,CAAC,UAA2C;AAC5D,YAAI,CAAC;AAAO,iBAAO,CAAC;AACpB,cAAM,gBAAgB,sBAAsB,KAAK,GAC3CA,OAAM,gBAAgB,aAAoB;AAChD,eAAIA,KAAI,WACN,cAAc,CAAC,GAAG,aAAa,GAAGA,IAAG,IAEhCA;AAAA,MACT;AAGA,UAAI,sBAAsB;AAC1B,iBAAW,QAAQ;AACjB,gBAAQ,KAAK,MAAM;AAAA,UACjB,KAAK,SAAS;AACZ,gBAAK,aAcE;AACL,oBAAMC,UAAS,UAAU,KAAK,KAAK,GAC7B,gBAAgB,gCAAgC,KAAK,KAAK,KAAK,IAC/D,gBAAgB;AAAA,gBACpBA,QAAO,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,IAAI;AAAA,cAC9C,GACM,WAAW,gBAAgB;AAAA,gBAC/B,CAAC,MAAM,EAAE,QAAQ;AAAA,cACnB;AAEA,kBAAI,UAAU;AACZ,oBAAI,WAAW,SAAS;AAExB,gBAAI,kBACE,oBAEF,QAAQ,IAAI,mBAAmB,aAAa,EAAE,GAEhD,WAAW,SAAS,QAAQ,gBAAgB,EAAE,IAEhD,SAAS,QAAQ,GAAG,QAAQ,IAAI,aAAa;AAAA,cAC/C;AACE,kCAAkB,CAAC,GAAG,iBAAiB,EAAE,cAAc,aAAa,CAAC;AAAA,YAEzE,OAtCkB;AAChB,oBAAMA,UAAS,gBAAgB,KAAK,KAAY;AAEhD,4BAAc,CAAC,GAAG,aAAa,GAAGA,OAAM;AAExC,yBAAW,SAASA,SAAQ;AAE1B,sBAAM,OAAO,MAAM,SACf,GAAG,MAAM,QAAQ,IAAI,MAAM,MAAM,KACjC,MAAM;AACV,2BAAW;AAAA,kBACT,EAAE,aAAa,EAAE,cAAc,IAAI,GAAG,EAAE,cAAc,MAAM,UAAU,CAAC;AAAA,gBACzE;AAAA,cACF;AAAA,YACF;AA0BA;AAAA,UACF;AAAA,UACA,KAAK,QAAQ;AACX,kBAAM,MAAM,KAAK;AACjB,gBAAI,EAAE,qBAAqB,GAAG;AAC5B,cAAI,eAAe,GAAG,KACpB,gBAAgB;AAAA,gBACd,EAAE;AAAA,kBACA;AAAA,kBACA,IAAI;AAAA,kBACJ,EAAE,iBAAiB,IAAI,UAAU,EAAE,WAAW,WAAW,CAAC;AAAA,gBAC5D;AAAA,cACF;AAAA,qBAEO,IAAI,KAAK,SAAS,aAAa;AACxC,oBAAM,QAAQ,IAAI;AAClB,kBAAI;AACF,oBAAI;AACF,wBAAM,iBAAiB,YAAY,KAAK;AACxC,kCAAgB,KAAK,EAAE,cAAc,cAAc,CAAC;AAAA,gBACtD,QAAY;AACV,kCAAgB,KAAK,MAAM,UAAa;AAAA,gBAC1C;AAEF;AAAA,YACF;AACA,uBAAW,KAAK,GAAG;AACnB;AAAA,UACF;AAAA,UACA,KAAK,WAAW;AACd,kBAAM,kBAAkB;AAAA,cACtB;AAAA,cACA,KAAK;AAAA,cACL;AAAA,cACA,UAAU,WAAW;AAAA,cACrB,cAAc;AAAA,cACd;AAAA,cACA;AAAA,YACF;AAWA,gBAVI,oBACE,mBAEF,QAAQ;AAAA,cACN;AAAA,cACA,gBAAgB,qBAAqB,oBAAoB;AAAA,cACzD,gBAAgB,YAAY,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG;AAAA,YAC/D,GAGA,CAAC,iBAAiB;AACpB;AAAA,gBACE,KAAK;AAAA,gBACL,UAAU,KAAK,MAAM,UAAU;AAAA,gBAC/B,UAAU,KAAK,MAAM,SAAS;AAAA,cAChC;AACA;AAAA,YACF;AACA,mCACI,gBAAgB,gBAClB,cAAc,CAAC,GAAG,aAAa,GAAG,gBAAgB,WAAW,IAE3D,gBAAgB,sBAClB;AAAA,cACE,gBAAgB;AAAA,cAChB,gBAAgB;AAAA,cAChB,CAAC;AAAA,YACH,IAEA,kBAAkB;AAAA,cAChB,GAAG;AAAA,cACH,GAAG,gBAAgB,YAAY,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC;AAAA,YACzE;AAEF;AAAA,UACF;AAAA,QACF;AAGF,eAAS,gBAAgB,SAAkB,GAAQ,GAAQ;AACzD,cAAM,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,GACzC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG;AAE/C,QAAI,EAAE,UAAU,EAAE,SAChB,gBAAgB;AAAA,UACd,EAAE;AAAA,YACA,QAAQ;AAAA,YACR,EAAE,cAAc,GAAG;AAAA,YACnB,EAAE,cAAc,GAAG;AAAA,UACrB;AAAA,QACF,IAEA,gBAAgB;AAAA,UACd,EAAE;AAAA,YACA,QAAQ;AAAA,YACR,EAAE,cAAc,MAAM,GAAG;AAAA,YACzB,EAAE,cAAc,MAAM,GAAG;AAAA,UAC3B;AAAA,QACF;AAAA,MAEJ;AAYA,UAVI,oBAEF,QAAQ;AAAA,QACN;AAAA;AAAA,QACA,SAAS,gBAAgB,IAAI,CAAC,MAAM,EAAE,KAAQ,EAAE,KAAK,GAAG,CAAC;AAAA,MAC3D,GAGF,KAAK,aAAa,YAEd,gBAAgB,QAAQ;AAC1B,cAAM,mBAAmB,MAAM;AAC7B,cAAI,QAAQ;AACZ,iBAAK,gBAKD,QAAQ,IAAI,gCACd,SAAS,yBAIP,aAAa,kBACf,SAAS,OAAO,aAAa,aAAa,MAGrC;AAAA,QACT,GAAG,GAGG,QAAQ,eAAe,iBAAiB,eAAe,GAEvD,WAAW,QAAQ,gBAAgB,SAAS,gBAAgB,KAAK,IAAI;AAC3E,YAAI,OAAO;AAGX,YAAI,YAAY,CAAC,EAAE,aAAa,QAAQ,KACjC,mBAEE;AACL,gCAAsB,WAAW;AACjC,gBAAM,gBAAgB,MAAM;AAAA,YAC1B,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,KAAK,eAAe,EAAE,KAAK;AAAA,UAClE;AACA,iBAAO,EAAE,eAAe,EAAE,WAAW,iBAAiB,GAAG;AAAA,YACvD;AAAA,YACA,GAAG,cAAc,IAAI,CAAC,QAAQ,IAAI,MAAM,QAAW;AAAA,UACrD,CAAC;AAAA,QACH;AAGF,aAAK,WAAW;AAAA,UACd,EAAE,aAAa,EAAE,cAAc,WAAW,GAAG,EAAE,uBAAuB,IAAI,CAAC;AAAA,QAC7E;AAAA,MACF;AAEA,YAAM,UAAU,KAAK;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,iBAAW,EAAE,YAAY,MAAM,KAAK,aAAa;AAC/C,cAAM,YAAY,IAAI,UAAU;AAChC,YAAI,OAAO,IAAI,SAAS;AACtB,cAAI,SAAS;AACX,kBAAM,MAAM,OAAO,IAAI,SAAS;AAChC,gBAAI,aAAa,KAAK,OAAO,GAC7B,OAAO,IAAI,WAAW,GAAG;AAAA,UAC3B;AAAA;AACK,UAAI,MAAM,UACf,OAAO,IAAI,WAAW;AAAA,YACpB,KAAK,MAAM,KAAK;AAAA,CAAI;AAAA,YACpB,cAAc,CAAC,OAAO;AAAA,UACxB,CAAC;AAAA,MAEL;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI;AACrE,WAAI,oBAEF,QAAQ,IAAI,2BAA2B,GAAG,GAErC;AAGT,QAAM,SAAS,MAAM,KAAK,OAAO,OAAO,CAAC,EACtC,IAAI,CAAC,MAAM,EAAE,GAAG,EAChB,KAAK;AAAA,CAAI,EACT,KAAK,GAGF,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA;AAAA,MAEV,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,IACA;AAAA,EACF;AAeA,MAbI,qBAEF,QAAQ;AAAA,IACN;AAAA;AAAA;AAAA;AAAA,IACA,OAAO,KACJ,MAAM;AAAA,CAAI,EACV,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,IAAI,CAAC,EACjC,KAAK;AAAA,CAAI;AAAA,EACd,GAEA,QAAQ,IAAI;AAAA;AAAA;AAAA,GAA0C,MAAM,IAG1D,iBAAiB;AACnB,UAAM,UAAU,MACZ,KAAK,OAAQ,QAAQ,YAAY,EAAE,WAAW,IAAI,YAAY,OAAO,OAAQ,EAAE,IAC/E,KACA,GACEC,QAAO,SAAS,cAAc,EAAE,EACnC,QAAQ,cAAc,EAAE,EACxB,MAAM,GAAG,EAAE,EACX,KAAK,EACL,SAAS,EAAE,GAER,eAAe,GAAG,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC,GACzD,WAAW,GAAG,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC,GACjD,eAAe,GAAG,IAAI,SAAS,GAAG,SAAS,CAAC,GAC5C,SAAS,UAAU,IAAI,OAAO,OAAO,IAErC,YAAY,GADH,KAAK,IAAI,IAAI,KACD,KAAK,SAAS,CAAC,GACpC,MAAM,cAAc,OAAO,GAC3B,SAAS,SAAS,IAAI,MAAM,MAAM;AAExC,YAAQ;AAAA,MACN,GAAG,GAAG,IAAIA,KAAI,YAAS,QAAQ,kBAAe,YAAY,gBAAa,YAAY,UAAU,SAAS,IAAI,MAAM;AAAA,IAClH;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,OAAO;AAAA,IACX,KAAK,OAAO;AAAA,EACd;AACF;",
|
5
|
+
"names": ["res", "styles", "path"]
|
6
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
function findTopmostFunction(jsxPath) {
|
2
|
+
const isFunction = (path) => path.isArrowFunctionExpression() || path.isFunctionDeclaration() || path.isFunctionExpression();
|
3
|
+
let compFn = jsxPath.findParent(isFunction);
|
4
|
+
for (; compFn; ) {
|
5
|
+
const parent = compFn.findParent(isFunction);
|
6
|
+
if (parent)
|
7
|
+
compFn = parent;
|
8
|
+
else
|
9
|
+
break;
|
10
|
+
}
|
11
|
+
return compFn || null;
|
12
|
+
}
|
13
|
+
export {
|
14
|
+
findTopmostFunction
|
15
|
+
};
|
16
|
+
//# sourceMappingURL=findTopmostFunction.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/findTopmostFunction.ts"],
|
4
|
+
"mappings": "AAGO,SAAS,oBAAoB,SAAiC;AAEnE,QAAM,aAAa,CAAC,SAClB,KAAK,0BAA0B,KAC/B,KAAK,sBAAsB,KAC3B,KAAK,qBAAqB;AAC5B,MAAI,SAA+B,QAAQ,WAAW,UAAU;AAChE,SAAO,UAAQ;AACb,UAAM,SAAS,OAAO,WAAW,UAAU;AAC3C,QAAI;AACF,eAAS;AAAA;AAET;AAAA,EAEJ;AACA,SAAK,UAEI;AAGX;",
|
5
|
+
"names": []
|
6
|
+
}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import { dirname, join } from "path";
|
2
|
+
import { generateThemes, writeGeneratedThemes } from "@tamagui/generate-themes";
|
3
|
+
import fs, { readFile } from "fs-extra";
|
4
|
+
import { requireTamaguiCore } from "../helpers/requireTamaguiCore";
|
5
|
+
import { getBundledConfig } from "./bundleConfig";
|
6
|
+
const tamaguiDir = join(process.cwd(), ".tamagui"), confFile = join(tamaguiDir, "tamagui.config.json");
|
7
|
+
async function generateTamaguiStudioConfig(tamaguiOptions, configIn, rebuild = !1) {
|
8
|
+
try {
|
9
|
+
const config = configIn ?? await getBundledConfig(tamaguiOptions, rebuild);
|
10
|
+
if (!config)
|
11
|
+
return;
|
12
|
+
const out = transformConfig(config, tamaguiOptions.platform);
|
13
|
+
await fs.ensureDir(dirname(confFile)), await fs.writeJSON(confFile, out, {
|
14
|
+
spaces: 2
|
15
|
+
});
|
16
|
+
} catch (err) {
|
17
|
+
(process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) && console.warn("generateTamaguiStudioConfig error", err);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
function generateTamaguiStudioConfigSync(_tamaguiOptions, config) {
|
21
|
+
try {
|
22
|
+
fs.ensureDirSync(dirname(confFile)), fs.writeJSONSync(confFile, transformConfig(config, _tamaguiOptions.platform), {
|
23
|
+
spaces: 2
|
24
|
+
});
|
25
|
+
} catch (err) {
|
26
|
+
(process.env.DEBUG?.includes("tamagui") || process.env.IS_TAMAGUI_DEV) && console.warn("generateTamaguiStudioConfig error", err);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
async function generateTamaguiThemes(tamaguiOptions) {
|
30
|
+
if (!tamaguiOptions.themeBuilder)
|
31
|
+
return;
|
32
|
+
const { input, output } = tamaguiOptions.themeBuilder, inPath = resolveRelativePath(input), outPath = resolveRelativePath(output), generatedOutput = await generateThemes(inPath), hasChanged = await (async () => {
|
33
|
+
try {
|
34
|
+
if (!await fs.pathExists(
|
35
|
+
join(tamaguiDir, "theme-builder.json")
|
36
|
+
))
|
37
|
+
return !0;
|
38
|
+
if (!generatedOutput)
|
39
|
+
return !1;
|
40
|
+
const next = generatedOutput.generated, current = await readFile(outPath, "utf-8");
|
41
|
+
return next !== current;
|
42
|
+
} catch {
|
43
|
+
}
|
44
|
+
return !0;
|
45
|
+
})();
|
46
|
+
return hasChanged && await writeGeneratedThemes(tamaguiDir, outPath, generatedOutput), hasChanged;
|
47
|
+
}
|
48
|
+
const resolveRelativePath = (inputPath) => inputPath.startsWith(".") ? join(process.cwd(), inputPath) : require.resolve(inputPath);
|
49
|
+
function cloneDeepSafe(x, excludeKeys = {}) {
|
50
|
+
return x && (Array.isArray(x) ? x.map((_) => cloneDeepSafe(_)) : typeof x == "function" ? "Function" : typeof x != "object" ? x : "$$typeof" in x ? "Component" : Object.fromEntries(
|
51
|
+
Object.entries(x).flatMap(([k, v]) => excludeKeys[k] ? [] : [[k, cloneDeepSafe(v)]])
|
52
|
+
));
|
53
|
+
}
|
54
|
+
function transformConfig(config, platform) {
|
55
|
+
if (!config)
|
56
|
+
return null;
|
57
|
+
const { getVariableValue } = requireTamaguiCore(platform), next = cloneDeepSafe(config, {
|
58
|
+
validStyles: !0
|
59
|
+
}), { components, nameToPaths, tamaguiConfig } = next, { themes, tokens } = tamaguiConfig;
|
60
|
+
for (const key in themes) {
|
61
|
+
const theme = themes[key];
|
62
|
+
theme.id = key;
|
63
|
+
for (const tkey in theme)
|
64
|
+
theme[tkey] = getVariableValue(theme[tkey]);
|
65
|
+
}
|
66
|
+
for (const key in tokens) {
|
67
|
+
const token = { ...tokens[key] };
|
68
|
+
for (const tkey in token)
|
69
|
+
token[tkey] = getVariableValue(token[tkey]);
|
70
|
+
}
|
71
|
+
for (const component of components)
|
72
|
+
for (const _ in component.nameToInfo) {
|
73
|
+
const compDefinition = { ...component.nameToInfo[_] };
|
74
|
+
component.nameToInfo[_] = compDefinition;
|
75
|
+
const { parentStaticConfig, ...rest } = compDefinition.staticConfig;
|
76
|
+
compDefinition.staticConfig = rest;
|
77
|
+
}
|
78
|
+
next.nameToPaths = {};
|
79
|
+
for (const key in nameToPaths)
|
80
|
+
next.nameToPaths[key] = [...nameToPaths[key]];
|
81
|
+
const { fontsParsed, getCSS, tokensParsed, themeConfig, ...cleanedConfig } = next.tamaguiConfig;
|
82
|
+
return {
|
83
|
+
components,
|
84
|
+
nameToPaths,
|
85
|
+
tamaguiConfig: cleanedConfig
|
86
|
+
};
|
87
|
+
}
|
88
|
+
export {
|
89
|
+
generateTamaguiStudioConfig,
|
90
|
+
generateTamaguiStudioConfigSync,
|
91
|
+
generateTamaguiThemes
|
92
|
+
};
|
93
|
+
//# sourceMappingURL=generateTamaguiStudioConfig.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/generateTamaguiStudioConfig.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": []
|
6
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import * as t from "@babel/types";
|
2
|
+
function generateUid(scope, name) {
|
3
|
+
if (typeof scope != "object")
|
4
|
+
throw "generateUid expects a scope object as its first parameter";
|
5
|
+
if (!(typeof name == "string" && name !== ""))
|
6
|
+
throw "generateUid expects a valid name as its second parameter";
|
7
|
+
name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
|
8
|
+
let uid, i = 0;
|
9
|
+
do
|
10
|
+
i > 1 ? uid = name + i : uid = name, i++;
|
11
|
+
while (scope.hasLabel(uid) || scope.hasBinding(uid) || scope.hasGlobal(uid) || scope.hasReference(uid));
|
12
|
+
const program = scope.getProgramParent();
|
13
|
+
return program.references[uid] = !0, program.uids[uid] = !0, uid;
|
14
|
+
}
|
15
|
+
export {
|
16
|
+
generateUid
|
17
|
+
};
|
18
|
+
//# sourceMappingURL=generatedUid.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/generatedUid.ts"],
|
4
|
+
"mappings": "AAAA,YAAY,OAAO;AASZ,SAAS,YAAY,OAAY,MAAsB;AAC5D,MAAM,OAAO,SAAU;AACrB,UAAM;AACR,MAAI,EAAE,OAAO,QAAS,YAAY,SAAS;AACzC,UAAM;AAER,SAAO,EACJ,aAAa,IAAI,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,YAAY,EAAE;AAEzB,MAAI,KACA,IAAI;AACR;AACE,IAAI,IAAI,IACN,MAAM,OAAO,IAEb,MAAM,MAER;AAAA,SAEA,MAAM,SAAS,GAAG,KAClB,MAAM,WAAW,GAAG,KACpB,MAAM,UAAU,GAAG,KACnB,MAAM,aAAa,GAAG;AAGxB,QAAM,UAAU,MAAM,iBAAiB;AACvC,iBAAQ,WAAW,GAAG,IAAI,IAC1B,QAAQ,KAAK,GAAG,IAAI,IAEb;AACT;",
|
5
|
+
"names": []
|
6
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import generate from "@babel/generator";
|
2
|
+
import * as t from "@babel/types";
|
3
|
+
import { accessSafe } from "./accessSafe";
|
4
|
+
function getPropValueFromAttributes(propName, attrs) {
|
5
|
+
let propIndex = -1, jsxAttr = null;
|
6
|
+
for (let idx = -1, len = attrs.length; ++idx < len; ) {
|
7
|
+
const attr = attrs[idx];
|
8
|
+
if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {
|
9
|
+
propIndex = idx, jsxAttr = attr;
|
10
|
+
break;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
if (!jsxAttr || jsxAttr.value == null)
|
14
|
+
return null;
|
15
|
+
let propValue = jsxAttr.value;
|
16
|
+
if (t.isJSXExpressionContainer(propValue) && (propValue = propValue.expression), t.isJSXEmptyExpression(propValue))
|
17
|
+
return console.error("encountered JSXEmptyExpression"), null;
|
18
|
+
const applicableSpreads = attrs.filter(
|
19
|
+
// 1. idx is greater than propValue prop index
|
20
|
+
// 2. attr is a spread operator
|
21
|
+
(attr, idx) => {
|
22
|
+
if (t.isJSXSpreadAttribute(attr)) {
|
23
|
+
if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument))
|
24
|
+
return idx > propIndex;
|
25
|
+
if (t.isLogicalExpression(attr.argument))
|
26
|
+
return !1;
|
27
|
+
throw new Error(
|
28
|
+
`unsupported spread of type "${attr.argument.type}": ${// @ts-ignore
|
29
|
+
generate(attr).code}`
|
30
|
+
);
|
31
|
+
}
|
32
|
+
return !1;
|
33
|
+
}
|
34
|
+
).map((attr) => attr.argument);
|
35
|
+
return applicableSpreads.length > 0 && (propValue = applicableSpreads.reduce(
|
36
|
+
(acc, val) => t.logicalExpression("||", accessSafe(val, propName), acc),
|
37
|
+
propValue
|
38
|
+
)), propValue;
|
39
|
+
}
|
40
|
+
export {
|
41
|
+
getPropValueFromAttributes
|
42
|
+
};
|
43
|
+
//# sourceMappingURL=getPropValueFromAttributes.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/getPropValueFromAttributes.ts"],
|
4
|
+
"mappings": "AAAA,OAAO,cAAc;AACrB,YAAY,OAAO;AAEnB,SAAS,kBAAkB;AAkBpB,SAAS,2BACd,UACA,OACqB;AACrB,MAAI,YAAY,IACZ,UAAiC;AACrC,WAAS,MAAM,IAAI,MAAM,MAAM,QAAQ,EAAE,MAAM,OAAO;AACpD,UAAM,OAAO,MAAM,GAAG;AACtB,QAAI,EAAE,eAAe,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,UAAU;AACtE,kBAAY,KACZ,UAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,WAAW,QAAQ,SAAS;AAC/B,WAAO;AAGT,MAAI,YAMe,QAAQ;AAO3B,MALI,EAAE,yBAAyB,SAAS,MACtC,YAAY,UAAU,aAIpB,EAAE,qBAAqB,SAAS;AAClC,mBAAQ,MAAM,gCAAgC,GACvC;AAIT,QAAM,oBAAoB,MACvB;AAAA;AAAA;AAAA,IAGC,CAAC,MAAM,QAAsC;AAC3C,UAAI,EAAE,qBAAqB,IAAI,GAAG;AAChC,YAAI,EAAE,aAAa,KAAK,QAAQ,KAAK,EAAE,mBAAmB,KAAK,QAAQ;AACrE,iBAAO,MAAM;AAEf,YAAI,EAAE,oBAAoB,KAAK,QAAQ;AACrC,iBAAO;AAET,cAAM,IAAI;AAAA,UACR,+BAA+B,KAAK,SAAS,IAAI;AAAA,UAE/C,SAAS,IAAW,EAAE,IACxB;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF,EACC,IAAI,CAAC,SAAS,KAAK,QAAQ;AAK9B,SAAI,kBAAkB,SAAS,MAC7B,YAAY,kBAAkB;AAAA,IAC5B,CAAC,KAAK,QAAQ,EAAE,kBAAkB,MAAM,WAAW,KAAK,QAAQ,GAAG,GAAG;AAAA,IACtE;AAAA,EACF,IAGK;AACT;",
|
5
|
+
"names": []
|
6
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import * as t from "@babel/types";
|
2
|
+
function getSourceModule(itemName, itemBinding) {
|
3
|
+
if (!itemBinding.constant)
|
4
|
+
return null;
|
5
|
+
let sourceModule, imported, local, destructured, usesImportSyntax = !1;
|
6
|
+
const itemNode = itemBinding.path.node;
|
7
|
+
if (
|
8
|
+
// import x from 'y';
|
9
|
+
t.isImportDefaultSpecifier(itemNode) || // import {x} from 'y';
|
10
|
+
t.isImportSpecifier(itemNode)
|
11
|
+
)
|
12
|
+
t.isImportDeclaration(itemBinding.path.parent) && (sourceModule = itemBinding.path.parent.source.value, local = itemNode.local.name, usesImportSyntax = !0, t.isImportSpecifier(itemNode) ? (imported = itemNode.imported.name, destructured = !0) : (imported = itemNode.local.name, destructured = !1));
|
13
|
+
else if (t.isVariableDeclarator(itemNode) && itemNode.init != null && t.isCallExpression(itemNode.init) && t.isIdentifier(itemNode.init.callee) && itemNode.init.callee.name === "require" && itemNode.init.arguments.length === 1) {
|
14
|
+
const firstArg = itemNode.init.arguments[0];
|
15
|
+
if (!t.isStringLiteral(firstArg))
|
16
|
+
return null;
|
17
|
+
if (sourceModule = firstArg.value, t.isIdentifier(itemNode.id))
|
18
|
+
local = itemNode.id.name, imported = itemNode.id.name, destructured = !1;
|
19
|
+
else if (t.isObjectPattern(itemNode.id)) {
|
20
|
+
for (const objProp of itemNode.id.properties)
|
21
|
+
if (t.isObjectProperty(objProp) && t.isIdentifier(objProp.value) && objProp.value.name === itemName) {
|
22
|
+
local = objProp.value.name, imported = objProp.key.name, destructured = !0;
|
23
|
+
break;
|
24
|
+
}
|
25
|
+
if (!local || !imported)
|
26
|
+
return console.error("could not find prop with value `%s`", itemName), null;
|
27
|
+
} else
|
28
|
+
return console.error("Unhandled id type: %s", itemNode.id.type), null;
|
29
|
+
} else
|
30
|
+
return null;
|
31
|
+
return {
|
32
|
+
destructured,
|
33
|
+
imported,
|
34
|
+
local,
|
35
|
+
sourceModule,
|
36
|
+
usesImportSyntax
|
37
|
+
};
|
38
|
+
}
|
39
|
+
export {
|
40
|
+
getSourceModule
|
41
|
+
};
|
42
|
+
//# sourceMappingURL=getSourceModule.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/extractor/getSourceModule.ts"],
|
4
|
+
"mappings": "AAAA,YAAY,OAAO;AAUZ,SAAS,gBACd,UACA,aAIqB;AAErB,MAAI,CAAC,YAAY;AACf,WAAO;AAGT,MAAI,cACA,UACA,OACA,cACA,mBAAmB;AAEvB,QAAM,WAAW,YAAY,KAAK;AAElC;AAAA;AAAA,IAEE,EAAE,yBAAyB,QAAQ;AAAA,IAEnC,EAAE,kBAAkB,QAAQ;AAAA;AAE5B,IAAI,EAAE,oBAAoB,YAAY,KAAK,MAAM,MAC/C,eAAe,YAAY,KAAK,OAAO,OAAO,OAC9C,QAAQ,SAAS,MAAM,MACvB,mBAAmB,IACf,EAAE,kBAAkB,QAAQ,KAC9B,WAAW,SAAS,SAAS,MAC7B,eAAe,OAEf,WAAW,SAAS,MAAM,MAC1B,eAAe;AAAA,WAInB,EAAE,qBAAqB,QAAQ,KAC/B,SAAS,QAAQ,QACjB,EAAE,iBAAiB,SAAS,IAAI,KAChC,EAAE,aAAa,SAAS,KAAK,MAAM,KACnC,SAAS,KAAK,OAAO,SAAS,aAC9B,SAAS,KAAK,UAAU,WAAW,GACnC;AACA,UAAM,WAAW,SAAS,KAAK,UAAU,CAAC;AAC1C,QAAI,CAAC,EAAE,gBAAgB,QAAQ;AAC7B,aAAO;AAIT,QAFA,eAAe,SAAS,OAEpB,EAAE,aAAa,SAAS,EAAE;AAC5B,cAAQ,SAAS,GAAG,MACpB,WAAW,SAAS,GAAG,MACvB,eAAe;AAAA,aACN,EAAE,gBAAgB,SAAS,EAAE,GAAG;AACzC,iBAAW,WAAW,SAAS,GAAG;AAChC,YACE,EAAE,iBAAiB,OAAO,KAC1B,EAAE,aAAa,QAAQ,KAAK,KAC5B,QAAQ,MAAM,SAAS,UACvB;AACA,kBAAQ,QAAQ,MAAM,MAEtB,WAAW,QAAQ,IAAI,MACvB,eAAe;AACf;AAAA,QACF;AAGF,UAAI,CAAC,SAAS,CAAC;AACb,uBAAQ,MAAM,uCAAuC,QAAQ,GACtD;AAAA,IAEX;AACE,qBAAQ,MAAM,yBAAyB,SAAS,GAAG,IAAI,GAChD;AAAA,EAEX;AACE,WAAO;AAGT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
5
|
+
"names": []
|
6
|
+
}
|