@tamagui/static 1.0.1-rc.8 → 1.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/constants.js +49 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/extractor/accessSafe.js +35 -0
- package/dist/cjs/extractor/accessSafe.js.map +7 -0
- package/dist/cjs/extractor/babelParse.js +56 -0
- package/dist/cjs/extractor/babelParse.js.map +7 -0
- package/dist/cjs/extractor/buildClassName.js +64 -0
- package/dist/cjs/extractor/buildClassName.js.map +7 -0
- package/dist/cjs/extractor/bundle.js +137 -0
- package/dist/cjs/extractor/bundle.js.map +7 -0
- package/dist/cjs/extractor/createEvaluator.js +81 -0
- package/dist/cjs/extractor/createEvaluator.js.map +7 -0
- package/dist/cjs/extractor/createExtractor.js +1330 -0
- package/dist/cjs/extractor/createExtractor.js.map +7 -0
- package/dist/cjs/extractor/defaultTamaguiConfig.js +167 -0
- package/dist/cjs/extractor/defaultTamaguiConfig.js.map +7 -0
- package/dist/cjs/extractor/ensureImportingConcat.js +48 -0
- package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/cjs/extractor/evaluateAstNode.js +118 -0
- package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
- package/dist/cjs/extractor/extractHelpers.js +131 -0
- package/dist/cjs/extractor/extractHelpers.js.map +7 -0
- package/dist/cjs/extractor/extractMediaStyle.js +174 -0
- package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
- package/dist/cjs/extractor/extractToClassNames.js +305 -0
- package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
- package/dist/cjs/extractor/findTopmostFunction.js +44 -0
- package/dist/cjs/extractor/findTopmostFunction.js.map +7 -0
- package/dist/cjs/extractor/generatedUid.js +52 -0
- package/dist/cjs/extractor/generatedUid.js.map +7 -0
- package/dist/cjs/extractor/getPrefixLogs.js +32 -0
- package/dist/cjs/extractor/getPrefixLogs.js.map +7 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js +73 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/cjs/extractor/getSourceModule.js +93 -0
- package/dist/cjs/extractor/getSourceModule.js.map +7 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js +184 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/cjs/extractor/hoistClassNames.js +67 -0
- package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
- package/dist/cjs/extractor/literalToAst.js +103 -0
- package/dist/cjs/extractor/literalToAst.js.map +7 -0
- package/dist/cjs/extractor/loadFile.js +21 -0
- package/dist/cjs/extractor/loadFile.js.map +7 -0
- package/dist/cjs/extractor/loadTamagui.js +105 -0
- package/dist/cjs/extractor/loadTamagui.js.map +7 -0
- package/dist/cjs/extractor/logLines.js +44 -0
- package/dist/cjs/extractor/logLines.js.map +7 -0
- package/dist/cjs/extractor/normalizeTernaries.js +76 -0
- package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
- package/dist/cjs/extractor/removeUnusedHooks.js +103 -0
- package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/cjs/extractor/timer.js +46 -0
- package/dist/cjs/extractor/timer.js.map +7 -0
- package/dist/cjs/extractor/validHTMLAttributes.js +127 -0
- package/dist/cjs/extractor/validHTMLAttributes.js.map +7 -0
- package/dist/cjs/getPragmaOptions.js +67 -0
- package/dist/cjs/getPragmaOptions.js.map +7 -0
- package/dist/cjs/helpers/memoize.js +45 -0
- package/dist/cjs/helpers/memoize.js.map +7 -0
- package/dist/cjs/index.js +43 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/require.js +104 -0
- package/dist/cjs/require.js.map +7 -0
- package/dist/cjs/types.js +17 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/webpackPlugin.js +34 -0
- package/dist/cjs/webpackPlugin.js.map +7 -0
- package/dist/esm/constants.js +17 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/extractor/accessSafe.js +8 -0
- package/dist/esm/extractor/accessSafe.js.map +7 -0
- package/dist/esm/extractor/babelParse.js +28 -0
- package/dist/esm/extractor/babelParse.js.map +7 -0
- package/dist/esm/extractor/buildClassName.js +37 -0
- package/dist/esm/extractor/buildClassName.js.map +7 -0
- package/dist/esm/extractor/bundle.js +112 -0
- package/dist/esm/extractor/bundle.js.map +7 -0
- package/dist/esm/extractor/createEvaluator.js +53 -0
- package/dist/esm/extractor/createEvaluator.js.map +7 -0
- package/dist/esm/extractor/createExtractor.js +1311 -0
- package/dist/esm/extractor/createExtractor.js.map +7 -0
- package/dist/esm/extractor/defaultTamaguiConfig.js +143 -0
- package/dist/esm/extractor/defaultTamaguiConfig.js.map +7 -0
- package/dist/esm/extractor/ensureImportingConcat.js +21 -0
- package/dist/esm/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/esm/extractor/evaluateAstNode.js +91 -0
- package/dist/esm/extractor/evaluateAstNode.js.map +7 -0
- package/dist/esm/extractor/extractHelpers.js +97 -0
- package/dist/esm/extractor/extractHelpers.js.map +7 -0
- package/dist/esm/extractor/extractMediaStyle.js +146 -0
- package/dist/esm/extractor/extractMediaStyle.js.map +7 -0
- package/dist/esm/extractor/extractToClassNames.js +278 -0
- package/dist/esm/extractor/extractToClassNames.js.map +7 -0
- package/dist/esm/extractor/findTopmostFunction.js +20 -0
- package/dist/esm/extractor/findTopmostFunction.js.map +7 -0
- package/dist/esm/extractor/generatedUid.js +25 -0
- package/dist/esm/extractor/generatedUid.js.map +7 -0
- package/dist/esm/extractor/getPrefixLogs.js +8 -0
- package/dist/esm/extractor/getPrefixLogs.js.map +7 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js +46 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/esm/extractor/getSourceModule.js +66 -0
- package/dist/esm/extractor/getSourceModule.js.map +7 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js +157 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/esm/extractor/hoistClassNames.js +40 -0
- package/dist/esm/extractor/hoistClassNames.js.map +7 -0
- package/dist/esm/extractor/literalToAst.js +75 -0
- package/dist/esm/extractor/literalToAst.js.map +7 -0
- package/dist/esm/extractor/loadFile.js +20 -0
- package/dist/esm/extractor/loadFile.js.map +7 -0
- package/dist/esm/extractor/loadTamagui.js +81 -0
- package/dist/esm/extractor/loadTamagui.js.map +7 -0
- package/dist/esm/extractor/logLines.js +20 -0
- package/dist/esm/extractor/logLines.js.map +7 -0
- package/dist/esm/extractor/normalizeTernaries.js +49 -0
- package/dist/esm/extractor/normalizeTernaries.js.map +7 -0
- package/dist/esm/extractor/removeUnusedHooks.js +76 -0
- package/dist/esm/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/esm/extractor/timer.js +22 -0
- package/dist/esm/extractor/timer.js.map +7 -0
- package/dist/esm/extractor/validHTMLAttributes.js +102 -0
- package/dist/esm/extractor/validHTMLAttributes.js.map +7 -0
- package/dist/esm/getPragmaOptions.js +44 -0
- package/dist/esm/getPragmaOptions.js.map +7 -0
- package/dist/esm/helpers/memoize.js +22 -0
- package/dist/esm/helpers/memoize.js.map +7 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/require.js +78 -0
- package/dist/esm/require.js.map +7 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/esm/webpackPlugin.js +11 -0
- package/dist/esm/webpackPlugin.js.map +7 -0
- package/dist/extractor/babelParse.js +5 -1
- package/dist/extractor/babelParse.js.map +2 -2
- package/dist/extractor/createExtractor.js.map +2 -2
- package/dist/extractor/extractToClassNames.js +27 -4
- package/dist/extractor/extractToClassNames.js.map +2 -2
- package/dist/extractor/getStaticBindingsForScope.js +1 -1
- package/dist/extractor/getStaticBindingsForScope.js.map +1 -1
- package/dist/extractor/loadTamagui.js +25 -13
- package/dist/extractor/loadTamagui.js.map +2 -2
- package/dist/jsx/constants.js +17 -0
- package/dist/jsx/constants.js.map +7 -0
- package/dist/jsx/extractor/accessSafe.js +8 -0
- package/dist/jsx/extractor/accessSafe.js.map +7 -0
- package/dist/jsx/extractor/babelParse.js +28 -0
- package/dist/jsx/extractor/babelParse.js.map +7 -0
- package/dist/jsx/extractor/buildClassName.js +37 -0
- package/dist/jsx/extractor/buildClassName.js.map +7 -0
- package/dist/jsx/extractor/bundle.js +86 -0
- package/dist/jsx/extractor/bundle.js.map +7 -0
- package/dist/jsx/extractor/createEvaluator.js +53 -0
- package/dist/jsx/extractor/createEvaluator.js.map +7 -0
- package/dist/jsx/extractor/createExtractor.js +1311 -0
- package/dist/jsx/extractor/createExtractor.js.map +7 -0
- package/dist/jsx/extractor/defaultTamaguiConfig.js +143 -0
- package/dist/jsx/extractor/defaultTamaguiConfig.js.map +7 -0
- package/dist/jsx/extractor/ensureImportingConcat.js +21 -0
- package/dist/jsx/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/jsx/extractor/evaluateAstNode.js +91 -0
- package/dist/jsx/extractor/evaluateAstNode.js.map +7 -0
- package/dist/jsx/extractor/extractHelpers.js +97 -0
- package/dist/jsx/extractor/extractHelpers.js.map +7 -0
- package/dist/jsx/extractor/extractMediaStyle.js +146 -0
- package/dist/jsx/extractor/extractMediaStyle.js.map +7 -0
- package/dist/jsx/extractor/extractToClassNames.js +280 -0
- package/dist/jsx/extractor/extractToClassNames.js.map +7 -0
- package/dist/jsx/extractor/findTopmostFunction.js +20 -0
- package/dist/jsx/extractor/findTopmostFunction.js.map +7 -0
- package/dist/jsx/extractor/generatedUid.js +25 -0
- package/dist/jsx/extractor/generatedUid.js.map +7 -0
- package/dist/jsx/extractor/getPrefixLogs.js +9 -0
- package/dist/jsx/extractor/getPrefixLogs.js.map +7 -0
- package/dist/jsx/extractor/getPropValueFromAttributes.js +46 -0
- package/dist/jsx/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/jsx/extractor/getSourceModule.js +66 -0
- package/dist/jsx/extractor/getSourceModule.js.map +7 -0
- package/dist/jsx/extractor/getStaticBindingsForScope.js +157 -0
- package/dist/jsx/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/jsx/extractor/hoistClassNames.js +40 -0
- package/dist/jsx/extractor/hoistClassNames.js.map +7 -0
- package/dist/jsx/extractor/literalToAst.js +75 -0
- package/dist/jsx/extractor/literalToAst.js.map +7 -0
- package/dist/jsx/extractor/loadFile.js +20 -0
- package/dist/jsx/extractor/loadFile.js.map +7 -0
- package/dist/jsx/extractor/loadTamagui.js +81 -0
- package/dist/jsx/extractor/loadTamagui.js.map +7 -0
- package/dist/jsx/extractor/logLines.js +20 -0
- package/dist/jsx/extractor/logLines.js.map +7 -0
- package/dist/jsx/extractor/normalizeTernaries.js +50 -0
- package/dist/jsx/extractor/normalizeTernaries.js.map +7 -0
- package/dist/jsx/extractor/removeUnusedHooks.js +77 -0
- package/dist/jsx/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/jsx/extractor/timer.js +22 -0
- package/dist/jsx/extractor/timer.js.map +7 -0
- package/dist/jsx/extractor/validHTMLAttributes.js +102 -0
- package/dist/jsx/extractor/validHTMLAttributes.js.map +7 -0
- package/dist/jsx/getPragmaOptions.js +44 -0
- package/dist/jsx/getPragmaOptions.js.map +7 -0
- package/dist/jsx/helpers/memoize.js +22 -0
- package/dist/jsx/helpers/memoize.js.map +7 -0
- package/dist/jsx/index.js +16 -0
- package/dist/jsx/index.js.map +7 -0
- package/dist/jsx/require.js +78 -0
- package/dist/jsx/require.js.map +7 -0
- package/dist/jsx/types.js +1 -0
- package/dist/jsx/types.js.map +7 -0
- package/dist/jsx/webpackPlugin.js +11 -0
- package/dist/jsx/webpackPlugin.js.map +7 -0
- package/package.json +15 -15
- package/src/extractor/babelParse.ts +5 -1
- package/src/extractor/createExtractor.ts +3 -0
- package/src/extractor/extractToClassNames.ts +29 -6
- package/src/extractor/getStaticBindingsForScope.ts +1 -1
- package/src/extractor/loadTamagui.ts +28 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/static",
|
|
3
|
-
"version": "1.0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist",
|
|
@@ -36,31 +36,31 @@
|
|
|
36
36
|
"@babel/runtime": "^7.19.4",
|
|
37
37
|
"@babel/traverse": "^7.19.6",
|
|
38
38
|
"@expo/match-media": "^0.3.0",
|
|
39
|
-
"@tamagui/build": "^1.0.1
|
|
40
|
-
"@tamagui/cli-color": "^1.0.1
|
|
41
|
-
"@tamagui/config-default-node": "^1.0.1
|
|
42
|
-
"@tamagui/core-node": "^1.0.1
|
|
43
|
-
"@tamagui/fake-react-native": "^1.0.1
|
|
44
|
-
"@tamagui/helpers": "^1.0.1
|
|
45
|
-
"@tamagui/helpers-node": "^1.0.1
|
|
46
|
-
"@tamagui/proxy-worm": "^1.0.1
|
|
47
|
-
"@tamagui/shorthands": "^1.0.1
|
|
39
|
+
"@tamagui/build": "^1.0.1",
|
|
40
|
+
"@tamagui/cli-color": "^1.0.1",
|
|
41
|
+
"@tamagui/config-default-node": "^1.0.1",
|
|
42
|
+
"@tamagui/core-node": "^1.0.1",
|
|
43
|
+
"@tamagui/fake-react-native": "^1.0.1",
|
|
44
|
+
"@tamagui/helpers": "^1.0.1",
|
|
45
|
+
"@tamagui/helpers-node": "^1.0.1",
|
|
46
|
+
"@tamagui/proxy-worm": "^1.0.1",
|
|
47
|
+
"@tamagui/shorthands": "^1.0.1",
|
|
48
48
|
"babel-literal-to-ast": "^2.1.0",
|
|
49
49
|
"esbuild": "^0.15.11",
|
|
50
|
-
"esbuild-register": "^3.
|
|
50
|
+
"esbuild-register": "^3.4.2",
|
|
51
51
|
"find-cache-dir": "^3.3.2",
|
|
52
52
|
"find-root": "^1.1.0",
|
|
53
53
|
"fs-extra": "^10.1.0",
|
|
54
54
|
"invariant": "^2.2.4",
|
|
55
55
|
"lodash": "^4.17.21",
|
|
56
|
-
"react-native-web-internals": "^1.0.1
|
|
57
|
-
"react-native-web-lite": "^1.0.1
|
|
56
|
+
"react-native-web-internals": "^1.0.1",
|
|
57
|
+
"react-native-web-lite": "^1.0.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@babel/plugin-syntax-typescript": "^7.18.6",
|
|
61
61
|
"@babel/types": "^7.19.4",
|
|
62
62
|
"@dish/babel-preset": "^0.0.6",
|
|
63
|
-
"@tamagui/test-design-system": "^1.0.1
|
|
63
|
+
"@tamagui/test-design-system": "^1.0.1",
|
|
64
64
|
"@testing-library/react": "^13.4.0",
|
|
65
65
|
"@types/babel__generator": "^7.6.4",
|
|
66
66
|
"@types/babel__traverse": "^7.18.2",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"react-test-renderer": "^18.2.0",
|
|
79
79
|
"style-loader": "^3.3.1",
|
|
80
80
|
"typescript": "^4.7.4",
|
|
81
|
-
"vitest": "^0.
|
|
81
|
+
"vitest": "^0.26.2",
|
|
82
82
|
"webpack": "^5.74.0"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
@@ -24,5 +24,9 @@ export const parserOptions: babelParser.ParserOptions = Object.freeze({
|
|
|
24
24
|
const parser = babelParser.parse.bind(babelParser)
|
|
25
25
|
|
|
26
26
|
export function babelParse(code: string | Buffer): t.File {
|
|
27
|
-
|
|
27
|
+
try {
|
|
28
|
+
return parser(code.toString(), parserOptions) as any
|
|
29
|
+
} catch (err) {
|
|
30
|
+
throw new Error(`Error parsing babel: ${err} in code`)
|
|
31
|
+
}
|
|
28
32
|
}
|
|
@@ -51,12 +51,19 @@ export async function extractToClassNames({
|
|
|
51
51
|
}: ExtractToClassNamesProps): Promise<ExtractedResponse | null> {
|
|
52
52
|
const tm = timer()
|
|
53
53
|
|
|
54
|
+
if (shouldPrintDebug) {
|
|
55
|
+
console.log(`Parsing \n\n --- ${sourcePath} --- \n\n`)
|
|
56
|
+
}
|
|
57
|
+
|
|
54
58
|
if (typeof source !== 'string') {
|
|
55
59
|
throw new Error('`source` must be a string of javascript')
|
|
56
60
|
}
|
|
57
61
|
if (sourcePath && !path.isAbsolute(sourcePath)) {
|
|
58
62
|
throw new Error('`sourcePath` must be an absolute path to a .js file')
|
|
59
63
|
}
|
|
64
|
+
if (!/.[tj]sx?$/i.test(sourcePath || '')) {
|
|
65
|
+
console.log(`${sourcePath?.slice(0, 100)} - bad filename.`)
|
|
66
|
+
}
|
|
60
67
|
|
|
61
68
|
// dont include loading in timing of parsing (one time cost)
|
|
62
69
|
await extractor.loadTamagui(options)
|
|
@@ -72,7 +79,7 @@ export async function extractToClassNames({
|
|
|
72
79
|
ast = babelParse(source)
|
|
73
80
|
} catch (err) {
|
|
74
81
|
// eslint-disable-next-line no-console
|
|
75
|
-
console.error('babel parse error:', sourcePath)
|
|
82
|
+
console.error('babel parse error:', sourcePath?.slice(0, 100))
|
|
76
83
|
throw err
|
|
77
84
|
}
|
|
78
85
|
|
|
@@ -178,7 +185,9 @@ export async function extractToClassNames({
|
|
|
178
185
|
|
|
179
186
|
for (const style of styles) {
|
|
180
187
|
// leave them as attributes
|
|
181
|
-
const prop = style.pseudo
|
|
188
|
+
const prop = style.pseudo
|
|
189
|
+
? `${style.property}-${style.pseudo}`
|
|
190
|
+
: style.property
|
|
182
191
|
finalAttrs.push(
|
|
183
192
|
t.jsxAttribute(t.jsxIdentifier(prop), t.stringLiteral(style.identifier))
|
|
184
193
|
)
|
|
@@ -259,7 +268,11 @@ export async function extractToClassNames({
|
|
|
259
268
|
finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]
|
|
260
269
|
}
|
|
261
270
|
if (mediaExtraction.ternaryWithoutMedia) {
|
|
262
|
-
addTernaryStyle(
|
|
271
|
+
addTernaryStyle(
|
|
272
|
+
mediaExtraction.ternaryWithoutMedia,
|
|
273
|
+
mediaExtraction.mediaStyles,
|
|
274
|
+
[]
|
|
275
|
+
)
|
|
263
276
|
} else {
|
|
264
277
|
finalClassNames = [
|
|
265
278
|
...finalClassNames,
|
|
@@ -276,7 +289,11 @@ export async function extractToClassNames({
|
|
|
276
289
|
const aCN = b.map((x) => x.identifier).join(' ')
|
|
277
290
|
if (a.length && b.length) {
|
|
278
291
|
finalClassNames.push(
|
|
279
|
-
t.conditionalExpression(
|
|
292
|
+
t.conditionalExpression(
|
|
293
|
+
ternary.test,
|
|
294
|
+
t.stringLiteral(cCN),
|
|
295
|
+
t.stringLiteral(aCN)
|
|
296
|
+
)
|
|
280
297
|
)
|
|
281
298
|
} else {
|
|
282
299
|
finalClassNames.push(
|
|
@@ -338,7 +355,12 @@ export async function extractToClassNames({
|
|
|
338
355
|
)
|
|
339
356
|
}
|
|
340
357
|
|
|
341
|
-
const comment = util.format(
|
|
358
|
+
const comment = util.format(
|
|
359
|
+
'/* %s:%s (%s) */',
|
|
360
|
+
filePath,
|
|
361
|
+
lineNumbers,
|
|
362
|
+
originalNodeName
|
|
363
|
+
)
|
|
342
364
|
|
|
343
365
|
for (const { identifier, rules } of finalStyles) {
|
|
344
366
|
const className = `.${identifier}`
|
|
@@ -399,7 +421,8 @@ export async function extractToClassNames({
|
|
|
399
421
|
|
|
400
422
|
if (shouldLogTiming) {
|
|
401
423
|
const memUsed = mem
|
|
402
|
-
? Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) /
|
|
424
|
+
? Math.round(((process.memoryUsage().heapUsed - mem.heapUsed) / 1024 / 1204) * 10) /
|
|
425
|
+
10
|
|
403
426
|
: 0
|
|
404
427
|
const path = basename(sourcePath || '')
|
|
405
428
|
.replace(/\.[jt]sx?$/, '')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'fs'
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
|
-
import { basename, dirname, extname, join, relative,
|
|
3
|
+
import { basename, dirname, extname, join, relative, resolve, sep } from 'path'
|
|
4
4
|
|
|
5
5
|
import generate from '@babel/generator'
|
|
6
6
|
import traverse from '@babel/traverse'
|
|
@@ -74,10 +74,19 @@ export async function loadTamagui(props: Props): Promise<TamaguiProjectInfo> {
|
|
|
74
74
|
)
|
|
75
75
|
)
|
|
76
76
|
|
|
77
|
-
const external = [
|
|
77
|
+
const external = [
|
|
78
|
+
'@tamagui/core',
|
|
79
|
+
'@tamagui/core-node',
|
|
80
|
+
'react',
|
|
81
|
+
'react-dom',
|
|
82
|
+
'react-native-svg',
|
|
83
|
+
]
|
|
78
84
|
const configEntry = props.config ? join(process.cwd(), props.config) : ''
|
|
79
85
|
|
|
80
|
-
if (
|
|
86
|
+
if (
|
|
87
|
+
process.env.NODE_ENV === 'development' &&
|
|
88
|
+
process.env.DEBUG?.startsWith('tamagui')
|
|
89
|
+
) {
|
|
81
90
|
console.log(`Building config entry`, configEntry)
|
|
82
91
|
}
|
|
83
92
|
|
|
@@ -141,7 +150,8 @@ Tamagui built config and components:`
|
|
|
141
150
|
|
|
142
151
|
// map from built back to original module names
|
|
143
152
|
for (const component of components) {
|
|
144
|
-
component.moduleName =
|
|
153
|
+
component.moduleName =
|
|
154
|
+
baseComponents[componentOutPaths.indexOf(component.moduleName)]
|
|
145
155
|
if (!component.moduleName) {
|
|
146
156
|
throw new Error(`Tamagui internal err`)
|
|
147
157
|
}
|
|
@@ -157,7 +167,10 @@ Tamagui built config and components:`
|
|
|
157
167
|
components = [...components, ...coreComponents]
|
|
158
168
|
}
|
|
159
169
|
|
|
160
|
-
if (
|
|
170
|
+
if (
|
|
171
|
+
process.env.NODE_ENV === 'development' &&
|
|
172
|
+
process.env.DEBUG?.startsWith('tamagui')
|
|
173
|
+
) {
|
|
161
174
|
console.log('Loaded components', components)
|
|
162
175
|
}
|
|
163
176
|
|
|
@@ -180,7 +193,7 @@ Tamagui built config and components:`
|
|
|
180
193
|
|
|
181
194
|
export function resolveWebOrNativeSpecificEntry(entry: string) {
|
|
182
195
|
const workspaceRoot = resolve()
|
|
183
|
-
const resolved = require.resolve(entry, {paths: [workspaceRoot]})
|
|
196
|
+
const resolved = require.resolve(entry, { paths: [workspaceRoot] })
|
|
184
197
|
const ext = extname(resolved)
|
|
185
198
|
const fileName = basename(resolved).replace(ext, '')
|
|
186
199
|
const specificExt = process.env.TAMAGUI_TARGET === 'web' ? 'web' : 'native'
|
|
@@ -295,7 +308,9 @@ function transformAddExports(ast: t.File) {
|
|
|
295
308
|
ExportNamedDeclaration(nodePath) {
|
|
296
309
|
if (nodePath.node.specifiers) {
|
|
297
310
|
for (const spec of nodePath.node.specifiers) {
|
|
298
|
-
usedNames.add(
|
|
311
|
+
usedNames.add(
|
|
312
|
+
t.isIdentifier(spec.exported) ? spec.exported.name : spec.exported.value
|
|
313
|
+
)
|
|
299
314
|
}
|
|
300
315
|
}
|
|
301
316
|
},
|
|
@@ -328,8 +343,8 @@ function transformAddExports(ast: t.File) {
|
|
|
328
343
|
}).code
|
|
329
344
|
}
|
|
330
345
|
|
|
331
|
-
const esbuildit = (src: string, target?: 'modern') =>
|
|
332
|
-
esbuild.transformSync(src, {
|
|
346
|
+
const esbuildit = (src: string, target?: 'modern') => {
|
|
347
|
+
return esbuild.transformSync(src, {
|
|
333
348
|
...esbuildOptions,
|
|
334
349
|
...(target === 'modern' && {
|
|
335
350
|
target: 'es2022',
|
|
@@ -339,6 +354,7 @@ const esbuildit = (src: string, target?: 'modern') =>
|
|
|
339
354
|
format: 'esm',
|
|
340
355
|
}),
|
|
341
356
|
}).code
|
|
357
|
+
}
|
|
342
358
|
|
|
343
359
|
function loadComponents(props: Props): null | LoadedComponents[] {
|
|
344
360
|
const componentsModules = props.components
|
|
@@ -368,7 +384,9 @@ function loadComponents(props: Props): null | LoadedComponents[] {
|
|
|
368
384
|
// need to write to tsx to enable reading it properly (:/ esbuild-register)
|
|
369
385
|
if (isDynamic) {
|
|
370
386
|
writtenContents = forceExports
|
|
371
|
-
? esbuildit(
|
|
387
|
+
? esbuildit(
|
|
388
|
+
transformAddExports(babelParse(esbuildit(fileContents, 'modern')))
|
|
389
|
+
)
|
|
372
390
|
: esbuildit(fileContents)
|
|
373
391
|
|
|
374
392
|
writeFileSync(loadModule, writtenContents)
|