@tamagui/static 1.0.0-alpha.3 → 1.0.0-alpha.34
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 +33 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/extractor/accessSafe.js +33 -0
- package/dist/cjs/extractor/accessSafe.js.map +7 -0
- package/dist/cjs/extractor/babelParse.js +52 -0
- package/dist/cjs/extractor/babelParse.js.map +7 -0
- package/dist/cjs/extractor/buildClassName.js +62 -0
- package/dist/cjs/extractor/buildClassName.js.map +7 -0
- package/dist/cjs/extractor/createEvaluator.js +73 -0
- package/dist/cjs/extractor/createEvaluator.js.map +7 -0
- package/dist/cjs/extractor/createExtractor.js +903 -0
- package/dist/cjs/extractor/createExtractor.js.map +7 -0
- package/dist/cjs/extractor/ensureImportingConcat.js +46 -0
- package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/cjs/extractor/evaluateAstNode.js +116 -0
- package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
- package/dist/cjs/extractor/extractHelpers.js +118 -0
- package/dist/cjs/extractor/extractHelpers.js.map +7 -0
- package/dist/cjs/extractor/extractMediaStyle.js +187 -0
- package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
- package/dist/cjs/extractor/extractToClassNames.js +279 -0
- package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
- package/dist/cjs/extractor/findTopmostFunction.js +29 -0
- package/dist/cjs/extractor/findTopmostFunction.js.map +7 -0
- package/dist/cjs/extractor/generatedUid.js +50 -0
- package/dist/cjs/extractor/generatedUid.js.map +7 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js +71 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/cjs/extractor/getSourceModule.js +91 -0
- package/dist/cjs/extractor/getSourceModule.js.map +7 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js +150 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/cjs/extractor/hoistClassNames.js +66 -0
- package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
- package/dist/cjs/extractor/literalToAst.js +56 -0
- package/dist/cjs/extractor/literalToAst.js.map +7 -0
- package/dist/cjs/extractor/loadTamagui.js +63 -0
- package/dist/cjs/extractor/loadTamagui.js.map +7 -0
- package/dist/cjs/extractor/logLines.js +23 -0
- package/dist/cjs/extractor/logLines.js.map +7 -0
- package/dist/cjs/extractor/normalizeTernaries.js +102 -0
- package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
- package/dist/cjs/extractor/removeUnusedHooks.js +101 -0
- package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/patchReactNativeWeb.js +129 -0
- package/dist/cjs/patchReactNativeWeb.js.map +7 -0
- package/dist/cjs/types.js +4 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/esm/constants.js +10 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/extractor/accessSafe.js +11 -0
- package/dist/esm/extractor/accessSafe.js.map +7 -0
- package/dist/esm/extractor/babelParse.js +30 -0
- package/dist/esm/extractor/babelParse.js.map +7 -0
- package/dist/esm/extractor/buildClassName.js +40 -0
- package/dist/esm/extractor/buildClassName.js.map +7 -0
- package/dist/esm/extractor/createEvaluator.js +51 -0
- package/dist/esm/extractor/createEvaluator.js.map +7 -0
- package/dist/esm/extractor/createExtractor.js +840 -0
- package/dist/esm/extractor/createExtractor.js.map +7 -0
- package/dist/esm/extractor/ensureImportingConcat.js +24 -0
- package/dist/esm/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/esm/extractor/evaluateAstNode.js +94 -0
- package/dist/esm/extractor/evaluateAstNode.js.map +7 -0
- package/dist/esm/extractor/extractHelpers.js +94 -0
- package/dist/esm/extractor/extractHelpers.js.map +7 -0
- package/dist/esm/extractor/extractMediaStyle.js +151 -0
- package/dist/esm/extractor/extractMediaStyle.js.map +7 -0
- package/dist/esm/extractor/extractToClassNames.js +240 -0
- package/dist/esm/extractor/extractToClassNames.js.map +7 -0
- package/dist/esm/extractor/findTopmostFunction.js +23 -0
- package/dist/esm/extractor/findTopmostFunction.js.map +7 -0
- package/dist/esm/extractor/generatedUid.js +28 -0
- package/dist/esm/extractor/generatedUid.js.map +7 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js +49 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/esm/extractor/getSourceModule.js +69 -0
- package/dist/esm/extractor/getSourceModule.js.map +7 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js +128 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/esm/extractor/hoistClassNames.js +44 -0
- package/dist/esm/extractor/hoistClassNames.js.map +7 -0
- package/dist/esm/extractor/literalToAst.js +34 -0
- package/dist/esm/extractor/literalToAst.js.map +7 -0
- package/dist/esm/extractor/loadTamagui.js +41 -0
- package/dist/esm/extractor/loadTamagui.js.map +7 -0
- package/dist/esm/extractor/logLines.js +17 -0
- package/dist/esm/extractor/logLines.js.map +7 -0
- package/dist/esm/extractor/normalizeTernaries.js +52 -0
- package/dist/esm/extractor/normalizeTernaries.js.map +7 -0
- package/dist/esm/extractor/removeUnusedHooks.js +78 -0
- package/dist/esm/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/patchReactNativeWeb.js +107 -0
- package/dist/esm/patchReactNativeWeb.js.map +7 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/extractor/createExtractor.js +58 -36
- package/dist/extractor/createExtractor.js.map +2 -2
- package/dist/extractor/extractToClassNames.js +9 -17
- package/dist/extractor/extractToClassNames.js.map +2 -2
- package/dist/index.cjs +89 -58
- package/dist/index.cjs.map +2 -2
- package/dist/jsx/constants.js +9 -0
- package/dist/jsx/extractor/accessSafe.js +10 -0
- package/dist/jsx/extractor/babelParse.js +29 -0
- package/dist/jsx/extractor/buildClassName.js +39 -0
- package/dist/jsx/extractor/createEvaluator.js +50 -0
- package/dist/jsx/extractor/createExtractor.js +839 -0
- package/dist/jsx/extractor/ensureImportingConcat.js +23 -0
- package/dist/jsx/extractor/evaluateAstNode.js +93 -0
- package/dist/jsx/extractor/extractHelpers.js +93 -0
- package/dist/jsx/extractor/extractMediaStyle.js +150 -0
- package/dist/jsx/extractor/extractToClassNames.js +239 -0
- package/dist/jsx/extractor/findTopmostFunction.js +22 -0
- package/dist/jsx/extractor/generatedUid.js +27 -0
- package/dist/jsx/extractor/getPropValueFromAttributes.js +48 -0
- package/dist/jsx/extractor/getSourceModule.js +68 -0
- package/dist/jsx/extractor/getStaticBindingsForScope.js +127 -0
- package/dist/jsx/extractor/hoistClassNames.js +43 -0
- package/dist/jsx/extractor/literalToAst.js +33 -0
- package/dist/jsx/extractor/loadTamagui.js +40 -0
- package/dist/jsx/extractor/logLines.js +16 -0
- package/dist/jsx/extractor/normalizeTernaries.js +51 -0
- package/dist/jsx/extractor/removeUnusedHooks.js +77 -0
- package/dist/jsx/index.js +13 -0
- package/{src/patchReactNativeWeb.ts → dist/jsx/patchReactNativeWeb.js} +44 -45
- package/dist/jsx/types.js +0 -0
- package/dist/patchReactNativeWeb.js +18 -3
- package/dist/patchReactNativeWeb.js.map +2 -2
- package/package.json +20 -17
- package/types/constants.d.ts +4 -0
- package/types/constants.d.ts.map +1 -0
- package/types/extractor/accessSafe.d.ts +3 -0
- package/types/extractor/accessSafe.d.ts.map +1 -0
- package/types/extractor/babelParse.d.ts +5 -0
- package/types/extractor/babelParse.d.ts.map +1 -0
- package/types/extractor/buildClassName.d.ts +4 -0
- package/types/extractor/buildClassName.d.ts.map +1 -0
- package/types/extractor/createEvaluator.d.ts +12 -0
- package/types/extractor/createEvaluator.d.ts.map +1 -0
- package/types/extractor/createExtractor.d.ts +34 -0
- package/types/extractor/createExtractor.d.ts.map +1 -0
- package/types/extractor/ensureImportingConcat.d.ts +4 -0
- package/types/extractor/ensureImportingConcat.d.ts.map +1 -0
- package/types/extractor/evaluateAstNode.d.ts +3 -0
- package/types/extractor/evaluateAstNode.d.ts.map +1 -0
- package/types/extractor/extractHelpers.d.ts +12 -0
- package/types/extractor/extractHelpers.d.ts.map +1 -0
- package/types/extractor/extractMediaStyle.d.ts +10 -0
- package/types/extractor/extractMediaStyle.d.ts.map +1 -0
- package/types/extractor/extractToClassNames.d.ts +22 -0
- package/types/extractor/extractToClassNames.d.ts.map +1 -0
- package/types/extractor/findTopmostFunction.d.ts +4 -0
- package/types/extractor/findTopmostFunction.d.ts.map +1 -0
- package/types/extractor/generatedUid.d.ts +5 -0
- package/types/extractor/generatedUid.d.ts.map +1 -0
- package/types/extractor/getPropValueFromAttributes.d.ts +3 -0
- package/types/extractor/getPropValueFromAttributes.d.ts.map +1 -0
- package/types/extractor/getSourceModule.d.ts +16 -0
- package/types/extractor/getSourceModule.d.ts.map +1 -0
- package/types/extractor/getStaticBindingsForScope.d.ts +4 -0
- package/types/extractor/getStaticBindingsForScope.d.ts.map +1 -0
- package/types/extractor/hoistClassNames.d.ts +6 -0
- package/types/extractor/hoistClassNames.d.ts.map +1 -0
- package/types/extractor/literalToAst.d.ts +3 -0
- package/types/extractor/literalToAst.d.ts.map +1 -0
- package/types/extractor/loadTamagui.d.ts +9 -0
- package/types/extractor/loadTamagui.d.ts.map +1 -0
- package/types/extractor/logLines.d.ts +2 -0
- package/types/extractor/logLines.d.ts.map +1 -0
- package/types/extractor/normalizeTernaries.d.ts +3 -0
- package/types/extractor/normalizeTernaries.d.ts.map +1 -0
- package/types/extractor/removeUnusedHooks.d.ts +3 -0
- package/types/extractor/removeUnusedHooks.d.ts.map +1 -0
- package/types/index.d.ts +8 -0
- package/types/index.d.ts.map +1 -0
- package/types/patchReactNativeWeb.d.ts +2 -0
- package/types/patchReactNativeWeb.d.ts.map +1 -0
- package/types/types.d.ts +79 -0
- package/types/types.d.ts.map +1 -0
- package/src/constants.ts +0 -10
- package/src/extractor/accessSafe.ts +0 -18
- package/src/extractor/babelParse.ts +0 -27
- package/src/extractor/buildClassName.ts +0 -61
- package/src/extractor/createEvaluator.ts +0 -68
- package/src/extractor/createExtractor.ts +0 -1116
- package/src/extractor/ensureImportingConcat.ts +0 -33
- package/src/extractor/evaluateAstNode.ts +0 -121
- package/src/extractor/extractHelpers.ts +0 -102
- package/src/extractor/extractMediaStyle.ts +0 -191
- package/src/extractor/extractToClassNames.ts +0 -337
- package/src/extractor/findTopmostFunction.ts +0 -22
- package/src/extractor/generatedUid.ts +0 -43
- package/src/extractor/getPropValueFromAttributes.ts +0 -92
- package/src/extractor/getSourceModule.ts +0 -101
- package/src/extractor/getStaticBindingsForScope.ts +0 -173
- package/src/extractor/hoistClassNames.ts +0 -45
- package/src/extractor/literalToAst.ts +0 -32
- package/src/extractor/loadTamagui.ts +0 -61
- package/src/extractor/normalizeTernaries.ts +0 -60
- package/src/extractor/removeUnusedHooks.ts +0 -76
- package/src/index.ts +0 -9
- package/src/types.ts +0 -80
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types'
|
|
2
|
-
|
|
3
|
-
import { ClassNameObject } from '../types'
|
|
4
|
-
|
|
5
|
-
export function buildClassName(
|
|
6
|
-
classNameObjects: ClassNameObject[]
|
|
7
|
-
): t.Expression | t.StringLiteral | null {
|
|
8
|
-
return classNameObjects.reduce<t.Expression | null>((acc, val) => {
|
|
9
|
-
if (acc == null) {
|
|
10
|
-
if (
|
|
11
|
-
// pass conditional expressions through
|
|
12
|
-
t.isConditionalExpression(val) ||
|
|
13
|
-
// pass non-null literals through
|
|
14
|
-
t.isStringLiteral(val) ||
|
|
15
|
-
t.isNumericLiteral(val)
|
|
16
|
-
) {
|
|
17
|
-
return val
|
|
18
|
-
}
|
|
19
|
-
return t.logicalExpression('||', val, t.stringLiteral(''))
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
let inner: t.Expression
|
|
23
|
-
if (t.isStringLiteral(val)) {
|
|
24
|
-
if (t.isStringLiteral(acc)) {
|
|
25
|
-
// join adjacent string literals
|
|
26
|
-
return t.stringLiteral(`${acc.value} ${val.value}`)
|
|
27
|
-
}
|
|
28
|
-
inner = t.stringLiteral(` ${val.value}`)
|
|
29
|
-
} else if (t.isLiteral(val)) {
|
|
30
|
-
inner = t.binaryExpression('+', t.stringLiteral(' '), val)
|
|
31
|
-
} else if (t.isConditionalExpression(val) || t.isBinaryExpression(val)) {
|
|
32
|
-
if (t.isStringLiteral(acc)) {
|
|
33
|
-
return t.binaryExpression('+', t.stringLiteral(`${acc.value} `), val)
|
|
34
|
-
}
|
|
35
|
-
inner = t.binaryExpression('+', t.stringLiteral(' '), val)
|
|
36
|
-
} else if (t.isIdentifier(val) || t.isMemberExpression(val)) {
|
|
37
|
-
// identifiers and member expressions make for reasonable ternaries
|
|
38
|
-
inner = t.conditionalExpression(
|
|
39
|
-
val,
|
|
40
|
-
t.binaryExpression('+', t.stringLiteral(' '), val),
|
|
41
|
-
t.stringLiteral('')
|
|
42
|
-
)
|
|
43
|
-
} else {
|
|
44
|
-
if (t.isStringLiteral(acc)) {
|
|
45
|
-
return t.binaryExpression(
|
|
46
|
-
'+',
|
|
47
|
-
t.stringLiteral(`${acc.value} `),
|
|
48
|
-
t.logicalExpression('||', val, t.stringLiteral(''))
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
|
-
// use a logical expression for more complex prop values
|
|
52
|
-
inner = t.binaryExpression(
|
|
53
|
-
'+',
|
|
54
|
-
t.stringLiteral(' '),
|
|
55
|
-
t.logicalExpression('||', val, t.stringLiteral(''))
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return t.binaryExpression('+', acc, inner)
|
|
60
|
-
}, null)
|
|
61
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import vm from 'vm'
|
|
2
|
-
|
|
3
|
-
import generate from '@babel/generator'
|
|
4
|
-
import { NodePath } from '@babel/traverse'
|
|
5
|
-
import * as t from '@babel/types'
|
|
6
|
-
import type { TamaguiConfig } from '@tamagui/core'
|
|
7
|
-
|
|
8
|
-
import { FAILED_EVAL } from './createExtractor'
|
|
9
|
-
import { evaluateAstNode } from './evaluateAstNode'
|
|
10
|
-
import { isValidThemeHook } from './extractHelpers'
|
|
11
|
-
|
|
12
|
-
export function createEvaluator({
|
|
13
|
-
tamaguiConfig,
|
|
14
|
-
staticNamespace,
|
|
15
|
-
sourcePath,
|
|
16
|
-
traversePath,
|
|
17
|
-
shouldPrintDebug,
|
|
18
|
-
}: {
|
|
19
|
-
tamaguiConfig: TamaguiConfig
|
|
20
|
-
staticNamespace: Record<string, any>
|
|
21
|
-
sourcePath: string
|
|
22
|
-
traversePath: NodePath<t.JSXElement>
|
|
23
|
-
shouldPrintDebug: boolean
|
|
24
|
-
}) {
|
|
25
|
-
// called when evaluateAstNode encounters a dynamic-looking prop
|
|
26
|
-
const evalFn = (n: t.Node) => {
|
|
27
|
-
// themes
|
|
28
|
-
if (
|
|
29
|
-
t.isMemberExpression(n) &&
|
|
30
|
-
t.isIdentifier(n.property) &&
|
|
31
|
-
isValidThemeHook(traversePath, n, sourcePath)
|
|
32
|
-
) {
|
|
33
|
-
const key = n.property.name
|
|
34
|
-
if (shouldPrintDebug) {
|
|
35
|
-
console.log(' > found theme prop', key)
|
|
36
|
-
}
|
|
37
|
-
console.log('SHOULD FIND THEME (NESTED NOW)', key) // tamaguiConfig.themes)
|
|
38
|
-
// if (!themeKeys.has(key)) {
|
|
39
|
-
// throw new Error(` > accessing non-existent theme key: ${key}`)
|
|
40
|
-
// }
|
|
41
|
-
return `var(--${key})`
|
|
42
|
-
}
|
|
43
|
-
// variable
|
|
44
|
-
if (t.isIdentifier(n) && staticNamespace.hasOwnProperty(n.name)) {
|
|
45
|
-
return staticNamespace[n.name]
|
|
46
|
-
}
|
|
47
|
-
const evalContext = vm.createContext(staticNamespace)
|
|
48
|
-
const code = `(${generate(n as any).code})`
|
|
49
|
-
// if (shouldPrintDebug) {
|
|
50
|
-
// console.log('evaluating', { n, code, evalContext })
|
|
51
|
-
// }
|
|
52
|
-
return vm.runInContext(code, evalContext)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return (n: t.Node) => {
|
|
56
|
-
return evaluateAstNode(n, evalFn)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export function createSafeEvaluator(attemptEval: (n: t.Node) => any) {
|
|
61
|
-
return (n: t.Node) => {
|
|
62
|
-
try {
|
|
63
|
-
return attemptEval(n)
|
|
64
|
-
} catch (err) {
|
|
65
|
-
return FAILED_EVAL
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|