@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.
Files changed (207) hide show
  1. package/dist/cjs/constants.js +33 -0
  2. package/dist/cjs/constants.js.map +7 -0
  3. package/dist/cjs/extractor/accessSafe.js +33 -0
  4. package/dist/cjs/extractor/accessSafe.js.map +7 -0
  5. package/dist/cjs/extractor/babelParse.js +52 -0
  6. package/dist/cjs/extractor/babelParse.js.map +7 -0
  7. package/dist/cjs/extractor/buildClassName.js +62 -0
  8. package/dist/cjs/extractor/buildClassName.js.map +7 -0
  9. package/dist/cjs/extractor/createEvaluator.js +73 -0
  10. package/dist/cjs/extractor/createEvaluator.js.map +7 -0
  11. package/dist/cjs/extractor/createExtractor.js +903 -0
  12. package/dist/cjs/extractor/createExtractor.js.map +7 -0
  13. package/dist/cjs/extractor/ensureImportingConcat.js +46 -0
  14. package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
  15. package/dist/cjs/extractor/evaluateAstNode.js +116 -0
  16. package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
  17. package/dist/cjs/extractor/extractHelpers.js +118 -0
  18. package/dist/cjs/extractor/extractHelpers.js.map +7 -0
  19. package/dist/cjs/extractor/extractMediaStyle.js +187 -0
  20. package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
  21. package/dist/cjs/extractor/extractToClassNames.js +279 -0
  22. package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
  23. package/dist/cjs/extractor/findTopmostFunction.js +29 -0
  24. package/dist/cjs/extractor/findTopmostFunction.js.map +7 -0
  25. package/dist/cjs/extractor/generatedUid.js +50 -0
  26. package/dist/cjs/extractor/generatedUid.js.map +7 -0
  27. package/dist/cjs/extractor/getPropValueFromAttributes.js +71 -0
  28. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
  29. package/dist/cjs/extractor/getSourceModule.js +91 -0
  30. package/dist/cjs/extractor/getSourceModule.js.map +7 -0
  31. package/dist/cjs/extractor/getStaticBindingsForScope.js +150 -0
  32. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
  33. package/dist/cjs/extractor/hoistClassNames.js +66 -0
  34. package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
  35. package/dist/cjs/extractor/literalToAst.js +56 -0
  36. package/dist/cjs/extractor/literalToAst.js.map +7 -0
  37. package/dist/cjs/extractor/loadTamagui.js +63 -0
  38. package/dist/cjs/extractor/loadTamagui.js.map +7 -0
  39. package/dist/cjs/extractor/logLines.js +23 -0
  40. package/dist/cjs/extractor/logLines.js.map +7 -0
  41. package/dist/cjs/extractor/normalizeTernaries.js +102 -0
  42. package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
  43. package/dist/cjs/extractor/removeUnusedHooks.js +101 -0
  44. package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
  45. package/dist/cjs/index.js +37 -0
  46. package/dist/cjs/index.js.map +7 -0
  47. package/dist/cjs/patchReactNativeWeb.js +129 -0
  48. package/dist/cjs/patchReactNativeWeb.js.map +7 -0
  49. package/dist/cjs/types.js +4 -0
  50. package/dist/cjs/types.js.map +7 -0
  51. package/dist/esm/constants.js +10 -0
  52. package/dist/esm/constants.js.map +7 -0
  53. package/dist/esm/extractor/accessSafe.js +11 -0
  54. package/dist/esm/extractor/accessSafe.js.map +7 -0
  55. package/dist/esm/extractor/babelParse.js +30 -0
  56. package/dist/esm/extractor/babelParse.js.map +7 -0
  57. package/dist/esm/extractor/buildClassName.js +40 -0
  58. package/dist/esm/extractor/buildClassName.js.map +7 -0
  59. package/dist/esm/extractor/createEvaluator.js +51 -0
  60. package/dist/esm/extractor/createEvaluator.js.map +7 -0
  61. package/dist/esm/extractor/createExtractor.js +840 -0
  62. package/dist/esm/extractor/createExtractor.js.map +7 -0
  63. package/dist/esm/extractor/ensureImportingConcat.js +24 -0
  64. package/dist/esm/extractor/ensureImportingConcat.js.map +7 -0
  65. package/dist/esm/extractor/evaluateAstNode.js +94 -0
  66. package/dist/esm/extractor/evaluateAstNode.js.map +7 -0
  67. package/dist/esm/extractor/extractHelpers.js +94 -0
  68. package/dist/esm/extractor/extractHelpers.js.map +7 -0
  69. package/dist/esm/extractor/extractMediaStyle.js +151 -0
  70. package/dist/esm/extractor/extractMediaStyle.js.map +7 -0
  71. package/dist/esm/extractor/extractToClassNames.js +240 -0
  72. package/dist/esm/extractor/extractToClassNames.js.map +7 -0
  73. package/dist/esm/extractor/findTopmostFunction.js +23 -0
  74. package/dist/esm/extractor/findTopmostFunction.js.map +7 -0
  75. package/dist/esm/extractor/generatedUid.js +28 -0
  76. package/dist/esm/extractor/generatedUid.js.map +7 -0
  77. package/dist/esm/extractor/getPropValueFromAttributes.js +49 -0
  78. package/dist/esm/extractor/getPropValueFromAttributes.js.map +7 -0
  79. package/dist/esm/extractor/getSourceModule.js +69 -0
  80. package/dist/esm/extractor/getSourceModule.js.map +7 -0
  81. package/dist/esm/extractor/getStaticBindingsForScope.js +128 -0
  82. package/dist/esm/extractor/getStaticBindingsForScope.js.map +7 -0
  83. package/dist/esm/extractor/hoistClassNames.js +44 -0
  84. package/dist/esm/extractor/hoistClassNames.js.map +7 -0
  85. package/dist/esm/extractor/literalToAst.js +34 -0
  86. package/dist/esm/extractor/literalToAst.js.map +7 -0
  87. package/dist/esm/extractor/loadTamagui.js +41 -0
  88. package/dist/esm/extractor/loadTamagui.js.map +7 -0
  89. package/dist/esm/extractor/logLines.js +17 -0
  90. package/dist/esm/extractor/logLines.js.map +7 -0
  91. package/dist/esm/extractor/normalizeTernaries.js +52 -0
  92. package/dist/esm/extractor/normalizeTernaries.js.map +7 -0
  93. package/dist/esm/extractor/removeUnusedHooks.js +78 -0
  94. package/dist/esm/extractor/removeUnusedHooks.js.map +7 -0
  95. package/dist/esm/index.js +14 -0
  96. package/dist/esm/index.js.map +7 -0
  97. package/dist/esm/patchReactNativeWeb.js +107 -0
  98. package/dist/esm/patchReactNativeWeb.js.map +7 -0
  99. package/dist/esm/types.js +1 -0
  100. package/dist/esm/types.js.map +7 -0
  101. package/dist/extractor/createExtractor.js +58 -36
  102. package/dist/extractor/createExtractor.js.map +2 -2
  103. package/dist/extractor/extractToClassNames.js +9 -17
  104. package/dist/extractor/extractToClassNames.js.map +2 -2
  105. package/dist/index.cjs +89 -58
  106. package/dist/index.cjs.map +2 -2
  107. package/dist/jsx/constants.js +9 -0
  108. package/dist/jsx/extractor/accessSafe.js +10 -0
  109. package/dist/jsx/extractor/babelParse.js +29 -0
  110. package/dist/jsx/extractor/buildClassName.js +39 -0
  111. package/dist/jsx/extractor/createEvaluator.js +50 -0
  112. package/dist/jsx/extractor/createExtractor.js +839 -0
  113. package/dist/jsx/extractor/ensureImportingConcat.js +23 -0
  114. package/dist/jsx/extractor/evaluateAstNode.js +93 -0
  115. package/dist/jsx/extractor/extractHelpers.js +93 -0
  116. package/dist/jsx/extractor/extractMediaStyle.js +150 -0
  117. package/dist/jsx/extractor/extractToClassNames.js +239 -0
  118. package/dist/jsx/extractor/findTopmostFunction.js +22 -0
  119. package/dist/jsx/extractor/generatedUid.js +27 -0
  120. package/dist/jsx/extractor/getPropValueFromAttributes.js +48 -0
  121. package/dist/jsx/extractor/getSourceModule.js +68 -0
  122. package/dist/jsx/extractor/getStaticBindingsForScope.js +127 -0
  123. package/dist/jsx/extractor/hoistClassNames.js +43 -0
  124. package/dist/jsx/extractor/literalToAst.js +33 -0
  125. package/dist/jsx/extractor/loadTamagui.js +40 -0
  126. package/dist/jsx/extractor/logLines.js +16 -0
  127. package/dist/jsx/extractor/normalizeTernaries.js +51 -0
  128. package/dist/jsx/extractor/removeUnusedHooks.js +77 -0
  129. package/dist/jsx/index.js +13 -0
  130. package/{src/patchReactNativeWeb.ts → dist/jsx/patchReactNativeWeb.js} +44 -45
  131. package/dist/jsx/types.js +0 -0
  132. package/dist/patchReactNativeWeb.js +18 -3
  133. package/dist/patchReactNativeWeb.js.map +2 -2
  134. package/package.json +20 -17
  135. package/types/constants.d.ts +4 -0
  136. package/types/constants.d.ts.map +1 -0
  137. package/types/extractor/accessSafe.d.ts +3 -0
  138. package/types/extractor/accessSafe.d.ts.map +1 -0
  139. package/types/extractor/babelParse.d.ts +5 -0
  140. package/types/extractor/babelParse.d.ts.map +1 -0
  141. package/types/extractor/buildClassName.d.ts +4 -0
  142. package/types/extractor/buildClassName.d.ts.map +1 -0
  143. package/types/extractor/createEvaluator.d.ts +12 -0
  144. package/types/extractor/createEvaluator.d.ts.map +1 -0
  145. package/types/extractor/createExtractor.d.ts +34 -0
  146. package/types/extractor/createExtractor.d.ts.map +1 -0
  147. package/types/extractor/ensureImportingConcat.d.ts +4 -0
  148. package/types/extractor/ensureImportingConcat.d.ts.map +1 -0
  149. package/types/extractor/evaluateAstNode.d.ts +3 -0
  150. package/types/extractor/evaluateAstNode.d.ts.map +1 -0
  151. package/types/extractor/extractHelpers.d.ts +12 -0
  152. package/types/extractor/extractHelpers.d.ts.map +1 -0
  153. package/types/extractor/extractMediaStyle.d.ts +10 -0
  154. package/types/extractor/extractMediaStyle.d.ts.map +1 -0
  155. package/types/extractor/extractToClassNames.d.ts +22 -0
  156. package/types/extractor/extractToClassNames.d.ts.map +1 -0
  157. package/types/extractor/findTopmostFunction.d.ts +4 -0
  158. package/types/extractor/findTopmostFunction.d.ts.map +1 -0
  159. package/types/extractor/generatedUid.d.ts +5 -0
  160. package/types/extractor/generatedUid.d.ts.map +1 -0
  161. package/types/extractor/getPropValueFromAttributes.d.ts +3 -0
  162. package/types/extractor/getPropValueFromAttributes.d.ts.map +1 -0
  163. package/types/extractor/getSourceModule.d.ts +16 -0
  164. package/types/extractor/getSourceModule.d.ts.map +1 -0
  165. package/types/extractor/getStaticBindingsForScope.d.ts +4 -0
  166. package/types/extractor/getStaticBindingsForScope.d.ts.map +1 -0
  167. package/types/extractor/hoistClassNames.d.ts +6 -0
  168. package/types/extractor/hoistClassNames.d.ts.map +1 -0
  169. package/types/extractor/literalToAst.d.ts +3 -0
  170. package/types/extractor/literalToAst.d.ts.map +1 -0
  171. package/types/extractor/loadTamagui.d.ts +9 -0
  172. package/types/extractor/loadTamagui.d.ts.map +1 -0
  173. package/types/extractor/logLines.d.ts +2 -0
  174. package/types/extractor/logLines.d.ts.map +1 -0
  175. package/types/extractor/normalizeTernaries.d.ts +3 -0
  176. package/types/extractor/normalizeTernaries.d.ts.map +1 -0
  177. package/types/extractor/removeUnusedHooks.d.ts +3 -0
  178. package/types/extractor/removeUnusedHooks.d.ts.map +1 -0
  179. package/types/index.d.ts +8 -0
  180. package/types/index.d.ts.map +1 -0
  181. package/types/patchReactNativeWeb.d.ts +2 -0
  182. package/types/patchReactNativeWeb.d.ts.map +1 -0
  183. package/types/types.d.ts +79 -0
  184. package/types/types.d.ts.map +1 -0
  185. package/src/constants.ts +0 -10
  186. package/src/extractor/accessSafe.ts +0 -18
  187. package/src/extractor/babelParse.ts +0 -27
  188. package/src/extractor/buildClassName.ts +0 -61
  189. package/src/extractor/createEvaluator.ts +0 -68
  190. package/src/extractor/createExtractor.ts +0 -1116
  191. package/src/extractor/ensureImportingConcat.ts +0 -33
  192. package/src/extractor/evaluateAstNode.ts +0 -121
  193. package/src/extractor/extractHelpers.ts +0 -102
  194. package/src/extractor/extractMediaStyle.ts +0 -191
  195. package/src/extractor/extractToClassNames.ts +0 -337
  196. package/src/extractor/findTopmostFunction.ts +0 -22
  197. package/src/extractor/generatedUid.ts +0 -43
  198. package/src/extractor/getPropValueFromAttributes.ts +0 -92
  199. package/src/extractor/getSourceModule.ts +0 -101
  200. package/src/extractor/getStaticBindingsForScope.ts +0 -173
  201. package/src/extractor/hoistClassNames.ts +0 -45
  202. package/src/extractor/literalToAst.ts +0 -32
  203. package/src/extractor/loadTamagui.ts +0 -61
  204. package/src/extractor/normalizeTernaries.ts +0 -60
  205. package/src/extractor/removeUnusedHooks.ts +0 -76
  206. package/src/index.ts +0 -9
  207. 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
- }