@tamagui/static 1.61.3 → 1.62.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. package/dist/cjs/constants.js +8 -19
  2. package/dist/cjs/constants.js.map +1 -1
  3. package/dist/cjs/constants.native.js +43 -0
  4. package/dist/cjs/constants.native.js.map +6 -0
  5. package/dist/cjs/extractor/accessSafe.js +8 -14
  6. package/dist/cjs/extractor/accessSafe.js.map +1 -1
  7. package/dist/cjs/extractor/accessSafe.native.js +52 -0
  8. package/dist/cjs/extractor/accessSafe.native.js.map +6 -0
  9. package/dist/cjs/extractor/babelParse.js +9 -17
  10. package/dist/cjs/extractor/babelParse.js.map +1 -1
  11. package/dist/cjs/extractor/babelParse.native.js +65 -0
  12. package/dist/cjs/extractor/babelParse.native.js.map +6 -0
  13. package/dist/cjs/extractor/buildClassName.js +44 -67
  14. package/dist/cjs/extractor/buildClassName.js.map +1 -1
  15. package/dist/cjs/extractor/buildClassName.native.js +78 -0
  16. package/dist/cjs/extractor/buildClassName.native.js.map +6 -0
  17. package/dist/cjs/extractor/bundle.js +44 -79
  18. package/dist/cjs/extractor/bundle.js.map +1 -1
  19. package/dist/cjs/extractor/bundle.native.js +118 -0
  20. package/dist/cjs/extractor/bundle.native.js.map +6 -0
  21. package/dist/cjs/extractor/bundleConfig.js +107 -204
  22. package/dist/cjs/extractor/bundleConfig.js.map +1 -1
  23. package/dist/cjs/extractor/bundleConfig.native.js +316 -0
  24. package/dist/cjs/extractor/bundleConfig.native.js.map +6 -0
  25. package/dist/cjs/extractor/createEvaluator.js +13 -41
  26. package/dist/cjs/extractor/createEvaluator.js.map +1 -1
  27. package/dist/cjs/extractor/createEvaluator.native.js +60 -0
  28. package/dist/cjs/extractor/createEvaluator.native.js.map +6 -0
  29. package/dist/cjs/extractor/createExtractor.js +497 -1128
  30. package/dist/cjs/extractor/createExtractor.js.map +2 -2
  31. package/dist/cjs/extractor/createExtractor.native.js +1067 -0
  32. package/dist/cjs/extractor/createExtractor.native.js.map +6 -0
  33. package/dist/cjs/extractor/ensureImportingConcat.js +12 -23
  34. package/dist/cjs/extractor/ensureImportingConcat.js.map +1 -1
  35. package/dist/cjs/extractor/ensureImportingConcat.native.js +55 -0
  36. package/dist/cjs/extractor/ensureImportingConcat.native.js.map +6 -0
  37. package/dist/cjs/extractor/esbuildAliasPlugin.js +40 -0
  38. package/dist/cjs/extractor/esbuildAliasPlugin.js.map +6 -0
  39. package/dist/cjs/extractor/esbuildAliasPlugin.native.js +41 -0
  40. package/dist/cjs/extractor/esbuildAliasPlugin.native.js.map +6 -0
  41. package/dist/cjs/extractor/evaluateAstNode.js +67 -95
  42. package/dist/cjs/extractor/evaluateAstNode.js.map +1 -1
  43. package/dist/cjs/extractor/evaluateAstNode.native.js +104 -0
  44. package/dist/cjs/extractor/evaluateAstNode.native.js.map +6 -0
  45. package/dist/cjs/extractor/extractHelpers.js +43 -123
  46. package/dist/cjs/extractor/extractHelpers.js.map +1 -1
  47. package/dist/cjs/extractor/extractHelpers.native.js +131 -0
  48. package/dist/cjs/extractor/extractHelpers.native.js.map +6 -0
  49. package/dist/cjs/extractor/extractMediaStyle.js +42 -110
  50. package/dist/cjs/extractor/extractMediaStyle.js.map +1 -1
  51. package/dist/cjs/extractor/extractMediaStyle.native.js +127 -0
  52. package/dist/cjs/extractor/extractMediaStyle.native.js.map +6 -0
  53. package/dist/cjs/extractor/extractToClassNames.js +134 -254
  54. package/dist/cjs/extractor/extractToClassNames.js.map +1 -1
  55. package/dist/cjs/extractor/extractToClassNames.native.js +304 -0
  56. package/dist/cjs/extractor/extractToClassNames.native.js.map +6 -0
  57. package/dist/cjs/extractor/findTopmostFunction.js +9 -17
  58. package/dist/cjs/extractor/findTopmostFunction.js.map +1 -1
  59. package/dist/cjs/extractor/findTopmostFunction.native.js +37 -0
  60. package/dist/cjs/extractor/findTopmostFunction.native.js.map +6 -0
  61. package/dist/cjs/extractor/generateTamaguiStudioConfig.js +37 -81
  62. package/dist/cjs/extractor/generateTamaguiStudioConfig.js.map +1 -1
  63. package/dist/cjs/extractor/generateTamaguiStudioConfig.native.js +120 -0
  64. package/dist/cjs/extractor/generateTamaguiStudioConfig.native.js.map +6 -0
  65. package/dist/cjs/extractor/generatedUid.js +14 -28
  66. package/dist/cjs/extractor/generatedUid.js.map +1 -1
  67. package/dist/cjs/extractor/generatedUid.native.js +47 -0
  68. package/dist/cjs/extractor/generatedUid.native.js.map +6 -0
  69. package/dist/cjs/extractor/getPrefixLogs.js +6 -10
  70. package/dist/cjs/extractor/getPrefixLogs.js.map +1 -1
  71. package/dist/cjs/extractor/getPrefixLogs.native.js +29 -0
  72. package/dist/cjs/extractor/getPrefixLogs.native.js.map +6 -0
  73. package/dist/cjs/extractor/getPropValueFromAttributes.js +21 -42
  74. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +1 -1
  75. package/dist/cjs/extractor/getPropValueFromAttributes.native.js +70 -0
  76. package/dist/cjs/extractor/getPropValueFromAttributes.native.js.map +6 -0
  77. package/dist/cjs/extractor/getSourceModule.js +23 -57
  78. package/dist/cjs/extractor/getSourceModule.js.map +1 -1
  79. package/dist/cjs/extractor/getSourceModule.native.js +71 -0
  80. package/dist/cjs/extractor/getSourceModule.native.js.map +6 -0
  81. package/dist/cjs/extractor/getStaticBindingsForScope.js +42 -116
  82. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +1 -1
  83. package/dist/cjs/extractor/getStaticBindingsForScope.native.js +153 -0
  84. package/dist/cjs/extractor/getStaticBindingsForScope.native.js.map +6 -0
  85. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.js +6 -13
  86. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +1 -1
  87. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.native.js +29 -0
  88. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.native.js.map +6 -0
  89. package/dist/cjs/extractor/hoistClassNames.js +16 -30
  90. package/dist/cjs/extractor/hoistClassNames.js.map +1 -1
  91. package/dist/cjs/extractor/hoistClassNames.native.js +66 -0
  92. package/dist/cjs/extractor/hoistClassNames.native.js.map +6 -0
  93. package/dist/cjs/extractor/literalToAst.js +32 -53
  94. package/dist/cjs/extractor/literalToAst.js.map +1 -1
  95. package/dist/cjs/extractor/literalToAst.native.js +96 -0
  96. package/dist/cjs/extractor/literalToAst.native.js.map +6 -0
  97. package/dist/cjs/extractor/loadFile.js +4 -11
  98. package/dist/cjs/extractor/loadFile.js.map +1 -1
  99. package/dist/cjs/extractor/loadFile.native.js +15 -0
  100. package/dist/cjs/extractor/loadFile.native.js.map +6 -0
  101. package/dist/cjs/extractor/loadTamagui.js +76 -147
  102. package/dist/cjs/extractor/loadTamagui.js.map +1 -1
  103. package/dist/cjs/extractor/loadTamagui.native.js +240 -0
  104. package/dist/cjs/extractor/loadTamagui.native.js.map +6 -0
  105. package/dist/cjs/extractor/logLines.js +12 -22
  106. package/dist/cjs/extractor/logLines.js.map +1 -1
  107. package/dist/cjs/extractor/logLines.native.js +35 -0
  108. package/dist/cjs/extractor/logLines.native.js.map +6 -0
  109. package/dist/cjs/extractor/normalizeTernaries.js +27 -54
  110. package/dist/cjs/extractor/normalizeTernaries.js.map +1 -1
  111. package/dist/cjs/extractor/normalizeTernaries.native.js +64 -0
  112. package/dist/cjs/extractor/normalizeTernaries.native.js.map +6 -0
  113. package/dist/cjs/extractor/propsToFontFamilyCache.js +6 -11
  114. package/dist/cjs/extractor/propsToFontFamilyCache.js.map +1 -1
  115. package/dist/cjs/extractor/propsToFontFamilyCache.native.js +41 -0
  116. package/dist/cjs/extractor/propsToFontFamilyCache.native.js.map +6 -0
  117. package/dist/cjs/extractor/removeUnusedHooks.js +25 -56
  118. package/dist/cjs/extractor/removeUnusedHooks.js.map +1 -1
  119. package/dist/cjs/extractor/removeUnusedHooks.native.js +80 -0
  120. package/dist/cjs/extractor/removeUnusedHooks.native.js.map +6 -0
  121. package/dist/cjs/extractor/timer.js +9 -20
  122. package/dist/cjs/extractor/timer.js.map +1 -1
  123. package/dist/cjs/extractor/timer.native.js +43 -0
  124. package/dist/cjs/extractor/timer.native.js.map +6 -0
  125. package/dist/cjs/extractor/validHTMLAttributes.js +51 -55
  126. package/dist/cjs/extractor/validHTMLAttributes.js.map +1 -1
  127. package/dist/cjs/extractor/validHTMLAttributes.native.js +73 -0
  128. package/dist/cjs/extractor/validHTMLAttributes.native.js.map +6 -0
  129. package/dist/cjs/getPragmaOptions.js +12 -38
  130. package/dist/cjs/getPragmaOptions.js.map +1 -1
  131. package/dist/cjs/getPragmaOptions.native.js +43 -0
  132. package/dist/cjs/getPragmaOptions.native.js.map +6 -0
  133. package/dist/cjs/helpers/memoize.js +10 -19
  134. package/dist/cjs/helpers/memoize.js.map +1 -1
  135. package/dist/cjs/helpers/memoize.native.js +38 -0
  136. package/dist/cjs/helpers/memoize.native.js.map +6 -0
  137. package/dist/cjs/helpers/requireTamaguiCore.js +29 -0
  138. package/dist/cjs/helpers/requireTamaguiCore.js.map +6 -0
  139. package/dist/cjs/helpers/requireTamaguiCore.native.js +30 -0
  140. package/dist/cjs/helpers/requireTamaguiCore.native.js.map +6 -0
  141. package/dist/cjs/index.js +7 -35
  142. package/dist/cjs/index.js.map +1 -1
  143. package/dist/cjs/index.native.js +21 -0
  144. package/dist/cjs/index.native.js.map +6 -0
  145. package/dist/cjs/registerRequire.js +93 -0
  146. package/dist/cjs/registerRequire.js.map +6 -0
  147. package/dist/cjs/registerRequire.native.js +94 -0
  148. package/dist/cjs/registerRequire.native.js.map +6 -0
  149. package/dist/cjs/setup.js +2 -0
  150. package/dist/cjs/setup.js.map +6 -0
  151. package/dist/cjs/setup.native.js +3 -0
  152. package/dist/cjs/setup.native.js.map +6 -0
  153. package/dist/cjs/static.js +41 -0
  154. package/dist/cjs/static.js.map +6 -0
  155. package/dist/cjs/static.native.js +42 -0
  156. package/dist/cjs/static.native.js.map +6 -0
  157. package/dist/cjs/types.js +3 -6
  158. package/dist/cjs/types.js.map +1 -1
  159. package/dist/cjs/types.native.js +15 -0
  160. package/dist/cjs/types.native.js.map +6 -0
  161. package/dist/cjs/webpackPlugin.js +5 -9
  162. package/dist/cjs/webpackPlugin.js.map +1 -1
  163. package/dist/cjs/webpackPlugin.native.js +32 -0
  164. package/dist/cjs/webpackPlugin.native.js.map +6 -0
  165. package/dist/esm/constants.js +1 -6
  166. package/dist/esm/constants.js.map +1 -1
  167. package/dist/esm/extractor/accessSafe.js +1 -1
  168. package/dist/esm/extractor/accessSafe.js.map +1 -1
  169. package/dist/esm/extractor/babelParse.js +2 -4
  170. package/dist/esm/extractor/babelParse.js.map +1 -1
  171. package/dist/esm/extractor/buildClassName.js +37 -54
  172. package/dist/esm/extractor/buildClassName.js.map +1 -1
  173. package/dist/esm/extractor/bundle.js +36 -60
  174. package/dist/esm/extractor/bundle.js.map +1 -1
  175. package/dist/esm/extractor/bundleConfig.js +100 -180
  176. package/dist/esm/extractor/bundleConfig.js.map +1 -1
  177. package/dist/esm/extractor/createEvaluator.js +5 -22
  178. package/dist/esm/extractor/createEvaluator.js.map +1 -1
  179. package/dist/esm/extractor/createExtractor.js +484 -1098
  180. package/dist/esm/extractor/createExtractor.js.map +2 -2
  181. package/dist/esm/extractor/ensureImportingConcat.js +5 -10
  182. package/dist/esm/extractor/ensureImportingConcat.js.map +1 -1
  183. package/dist/esm/extractor/esbuildAliasPlugin.js +20 -0
  184. package/dist/esm/extractor/esbuildAliasPlugin.js.map +6 -0
  185. package/dist/esm/extractor/evaluateAstNode.js +60 -82
  186. package/dist/esm/extractor/evaluateAstNode.js.map +1 -1
  187. package/dist/esm/extractor/extractHelpers.js +35 -105
  188. package/dist/esm/extractor/extractHelpers.js.map +1 -1
  189. package/dist/esm/extractor/extractMediaStyle.js +35 -97
  190. package/dist/esm/extractor/extractMediaStyle.js.map +1 -1
  191. package/dist/esm/extractor/extractToClassNames.js +126 -224
  192. package/dist/esm/extractor/extractToClassNames.js.map +1 -1
  193. package/dist/esm/extractor/findTopmostFunction.js +4 -8
  194. package/dist/esm/extractor/findTopmostFunction.js.map +1 -1
  195. package/dist/esm/extractor/generateTamaguiStudioConfig.js +28 -62
  196. package/dist/esm/extractor/generateTamaguiStudioConfig.js.map +1 -1
  197. package/dist/esm/extractor/generatedUid.js +7 -15
  198. package/dist/esm/extractor/generatedUid.js.map +1 -1
  199. package/dist/esm/extractor/getPrefixLogs.js +1 -1
  200. package/dist/esm/extractor/getPrefixLogs.js.map +1 -1
  201. package/dist/esm/extractor/getPropValueFromAttributes.js +13 -26
  202. package/dist/esm/extractor/getPropValueFromAttributes.js.map +1 -1
  203. package/dist/esm/extractor/getSourceModule.js +16 -44
  204. package/dist/esm/extractor/getSourceModule.js.map +1 -1
  205. package/dist/esm/extractor/getStaticBindingsForScope.js +34 -98
  206. package/dist/esm/extractor/getStaticBindingsForScope.js.map +1 -1
  207. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.js +1 -4
  208. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.js.map +1 -1
  209. package/dist/esm/extractor/hoistClassNames.js +9 -17
  210. package/dist/esm/extractor/hoistClassNames.js.map +1 -1
  211. package/dist/esm/extractor/literalToAst.js +25 -40
  212. package/dist/esm/extractor/literalToAst.js.map +1 -1
  213. package/dist/esm/extractor/loadFile.js +4 -10
  214. package/dist/esm/extractor/loadFile.js.map +1 -1
  215. package/dist/esm/extractor/loadTamagui.js +69 -124
  216. package/dist/esm/extractor/loadTamagui.js.map +1 -1
  217. package/dist/esm/extractor/logLines.js +7 -13
  218. package/dist/esm/extractor/logLines.js.map +1 -1
  219. package/dist/esm/extractor/normalizeTernaries.js +19 -38
  220. package/dist/esm/extractor/normalizeTernaries.js.map +1 -1
  221. package/dist/esm/extractor/propsToFontFamilyCache.js +1 -2
  222. package/dist/esm/extractor/propsToFontFamilyCache.js.map +1 -1
  223. package/dist/esm/extractor/removeUnusedHooks.js +18 -43
  224. package/dist/esm/extractor/removeUnusedHooks.js.map +1 -1
  225. package/dist/esm/extractor/timer.js +4 -11
  226. package/dist/esm/extractor/timer.js.map +1 -1
  227. package/dist/esm/extractor/validHTMLAttributes.js +46 -46
  228. package/dist/esm/getPragmaOptions.js +7 -29
  229. package/dist/esm/getPragmaOptions.js.map +1 -1
  230. package/dist/esm/helpers/memoize.js +5 -10
  231. package/dist/esm/helpers/memoize.js.map +1 -1
  232. package/dist/esm/helpers/requireTamaguiCore.js +9 -0
  233. package/dist/esm/helpers/requireTamaguiCore.js.map +6 -0
  234. package/dist/esm/index.js +2 -14
  235. package/dist/esm/index.js.map +1 -1
  236. package/dist/esm/registerRequire.js +73 -0
  237. package/dist/esm/registerRequire.js.map +6 -0
  238. package/dist/esm/setup.js +2 -0
  239. package/dist/esm/setup.js.map +6 -0
  240. package/dist/esm/static.js +15 -0
  241. package/dist/esm/static.js.map +6 -0
  242. package/package.json +15 -15
  243. package/src/extractor/bundle.ts +12 -10
  244. package/src/extractor/bundleConfig.ts +25 -20
  245. package/src/extractor/createEvaluator.ts +0 -16
  246. package/src/extractor/createExtractor.ts +12 -9
  247. package/src/extractor/esbuildAliasPlugin.ts +40 -0
  248. package/src/extractor/extractMediaStyle.ts +3 -5
  249. package/src/extractor/extractToClassNames.ts +2 -1
  250. package/src/extractor/generateTamaguiStudioConfig.ts +7 -4
  251. package/src/extractor/loadTamagui.ts +26 -22
  252. package/src/helpers/requireTamaguiCore.ts +13 -0
  253. package/src/index.ts +2 -9
  254. package/src/registerRequire.ts +156 -0
  255. package/src/setup.ts +1 -0
  256. package/src/static.ts +9 -0
  257. package/src/types.ts +3 -1
  258. package/types/extractor/bundle.d.ts +2 -2
  259. package/types/extractor/bundle.d.ts.map +1 -1
  260. package/types/extractor/bundleConfig.d.ts.map +1 -1
  261. package/types/extractor/createEvaluator.d.ts.map +1 -1
  262. package/types/extractor/createExtractor.d.ts +1 -1
  263. package/types/extractor/createExtractor.d.ts.map +1 -1
  264. package/types/extractor/esbuildAliasPlugin.d.ts +18 -0
  265. package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -0
  266. package/types/extractor/extractMediaStyle.d.ts +1 -1
  267. package/types/extractor/extractMediaStyle.d.ts.map +1 -1
  268. package/types/extractor/extractToClassNames.d.ts.map +1 -1
  269. package/types/extractor/generateTamaguiStudioConfig.d.ts.map +1 -1
  270. package/types/extractor/loadTamagui.d.ts +2 -2
  271. package/types/extractor/loadTamagui.d.ts.map +1 -1
  272. package/types/helpers/requireTamaguiCore.d.ts +3 -0
  273. package/types/helpers/requireTamaguiCore.d.ts.map +1 -0
  274. package/types/index.d.ts +2 -9
  275. package/types/index.d.ts.map +1 -1
  276. package/types/registerRequire.d.ts +7 -0
  277. package/types/registerRequire.d.ts.map +1 -0
  278. package/types/setup.d.ts +2 -0
  279. package/types/setup.d.ts.map +1 -0
  280. package/types/static.d.ts +10 -0
  281. package/types/static.d.ts.map +1 -0
  282. package/types/types.d.ts +2 -1
  283. package/types/types.d.ts.map +1 -1
  284. package/dist/cjs/require.js +0 -125
  285. package/dist/cjs/require.js.map +0 -6
  286. package/dist/esm/require.js +0 -100
  287. package/dist/esm/require.js.map +0 -6
  288. package/src/require.ts +0 -150
  289. package/types/require.d.ts +0 -3
  290. package/types/require.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/static",
3
- "version": "1.61.3",
3
+ "version": "1.62.1",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "main": "dist/cjs/index.js",
@@ -35,17 +35,17 @@
35
35
  "@babel/runtime": "^7.21.5",
36
36
  "@babel/traverse": "^7.21.5",
37
37
  "@babel/types": "^7.21.5",
38
- "@tamagui/build": "1.61.3",
39
- "@tamagui/cli-color": "1.61.3",
40
- "@tamagui/config-default-node": "1.61.3",
41
- "@tamagui/core-node": "1.61.3",
42
- "@tamagui/fake-react-native": "1.61.3",
43
- "@tamagui/generate-themes": "1.61.3",
44
- "@tamagui/helpers": "1.61.3",
45
- "@tamagui/helpers-node": "1.61.3",
46
- "@tamagui/proxy-worm": "1.61.3",
47
- "@tamagui/shorthands": "1.61.3",
48
- "@tamagui/types": "1.61.3",
38
+ "@tamagui/build": "1.62.1",
39
+ "@tamagui/cli-color": "1.62.1",
40
+ "@tamagui/config-default": "1.62.1",
41
+ "@tamagui/core": "1.62.1",
42
+ "@tamagui/fake-react-native": "1.62.1",
43
+ "@tamagui/generate-themes": "1.62.1",
44
+ "@tamagui/helpers": "1.62.1",
45
+ "@tamagui/helpers-node": "1.62.1",
46
+ "@tamagui/proxy-worm": "1.62.1",
47
+ "@tamagui/shorthands": "1.62.1",
48
+ "@tamagui/types": "1.62.1",
49
49
  "babel-literal-to-ast": "^2.1.0",
50
50
  "esbuild": "^0.19.0",
51
51
  "esbuild-register": "^3.4.2",
@@ -55,13 +55,13 @@
55
55
  "invariant": "^2.2.4",
56
56
  "lodash": "^4.17.21",
57
57
  "react-native-web": "^0.19.6",
58
- "react-native-web-internals": "1.61.3",
59
- "react-native-web-lite": "1.61.3"
58
+ "react-native-web-internals": "1.62.1",
59
+ "react-native-web-lite": "1.62.1"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@babel/plugin-syntax-typescript": "^7.21.4",
63
63
  "@expo/match-media": "^0.4.0",
64
- "@tamagui/test-design-system": "1.61.3",
64
+ "@tamagui/test-design-system": "1.62.1",
65
65
  "@testing-library/react": "^14.0.0",
66
66
  "@types/babel__generator": "^7.6.4",
67
67
  "@types/babel__traverse": "^7.18.2",
@@ -3,6 +3,8 @@ import { basename, dirname, join } from 'path'
3
3
  import esbuild from 'esbuild'
4
4
  import { pathExists, stat, writeFile } from 'fs-extra'
5
5
 
6
+ import { TamaguiPlatform } from '../types'
7
+ import { esbuildAliasPlugin } from './esbuildAliasPlugin'
6
8
  import { resolveWebOrNativeSpecificEntry } from './loadTamagui'
7
9
 
8
10
  /**
@@ -17,9 +19,9 @@ type Props = Omit<Partial<esbuild.BuildOptions>, 'entryPoints'> & {
17
19
 
18
20
  function getESBuildConfig(
19
21
  { entryPoints, resolvePlatformSpecificEntries, ...options }: Props,
22
+ platform: TamaguiPlatform,
20
23
  aliases?: Record<string, string>
21
24
  ) {
22
- const alias = require('@tamagui/core-node').aliasPlugin
23
25
  if (process.env.DEBUG?.startsWith('tamagui')) {
24
26
  // rome-ignore lint/suspicious/noConsoleLog: ok
25
27
  console.log(`Building`, entryPoints)
@@ -71,7 +73,7 @@ function getESBuildConfig(
71
73
  setup(build) {
72
74
  build.onResolve({ filter: /@tamagui\/core/ }, (args) => {
73
75
  return {
74
- path: '@tamagui/core-node',
76
+ path: platform === 'native' ? '@tamagui/core/native' : '@tamagui/core',
75
77
  external: true,
76
78
  }
77
79
  })
@@ -83,7 +85,7 @@ function getESBuildConfig(
83
85
  })
84
86
  build.onResolve({ filter: /@tamagui\/web/ }, (args) => {
85
87
  return {
86
- path: '@tamagui/core-node',
88
+ path: platform === 'native' ? '@tamagui/core/native' : '@tamagui/core',
87
89
  external: true,
88
90
  }
89
91
  })
@@ -96,7 +98,7 @@ function getESBuildConfig(
96
98
  })
97
99
  },
98
100
  },
99
- alias({
101
+ esbuildAliasPlugin({
100
102
  ...aliases,
101
103
  }),
102
104
  ],
@@ -106,16 +108,16 @@ function getESBuildConfig(
106
108
  return res
107
109
  }
108
110
 
109
- export async function bundle(props: Props, aliases?: Record<string, string>) {
111
+ export async function bundle(
112
+ props: Props,
113
+ platform: TamaguiPlatform,
114
+ aliases?: Record<string, string>
115
+ ) {
110
116
  await asyncLock(props)
111
- const config = getESBuildConfig(props, aliases)
117
+ const config = getESBuildConfig(props, platform, aliases)
112
118
  return esbuild.build(config)
113
119
  }
114
120
 
115
- export function bundleSync(props: Props, aliases?: Record<string, string>) {
116
- return esbuild.buildSync(getESBuildConfig(props, aliases))
117
- }
118
-
119
121
  // until i do fancier things w plugins:
120
122
  async function asyncLock(props: Props) {
121
123
  const lockFile = join(dirname(props.outfile), basename(props.outfile, '.lock'))
@@ -9,7 +9,7 @@ import type { StaticConfig, TamaguiInternalConfig } from '@tamagui/web'
9
9
  import esbuild from 'esbuild'
10
10
  import { ensureDir, removeSync, writeFileSync } from 'fs-extra'
11
11
 
12
- import { registerRequire } from '../require'
12
+ import { registerRequire } from '../registerRequire'
13
13
  import { TamaguiOptions } from '../types'
14
14
  import { babelParse } from './babelParse'
15
15
  import { bundle } from './bundle'
@@ -38,7 +38,6 @@ export type TamaguiProjectInfo = {
38
38
  const external = [
39
39
  '@tamagui/core',
40
40
  '@tamagui/web',
41
- '@tamagui/core-node',
42
41
  'react',
43
42
  'react-dom',
44
43
  'react-native-svg',
@@ -124,23 +123,29 @@ export async function bundleConfig(props: TamaguiOptions) {
124
123
 
125
124
  await Promise.all([
126
125
  props.config
127
- ? bundle({
128
- entryPoints: [configEntry],
126
+ ? bundle(
127
+ {
128
+ entryPoints: [configEntry],
129
+ external,
130
+ outfile: configOutPath,
131
+ target: 'node16',
132
+ ...esbuildExtraOptions,
133
+ },
134
+ props.platform
135
+ )
136
+ : null,
137
+ ...baseComponents.map((componentModule, i) => {
138
+ return bundle(
139
+ {
140
+ entryPoints: [componentModule],
141
+ resolvePlatformSpecificEntries: true,
129
142
  external,
130
- outfile: configOutPath,
143
+ outfile: componentOutPaths[i],
131
144
  target: 'node16',
132
145
  ...esbuildExtraOptions,
133
- })
134
- : null,
135
- ...baseComponents.map((componentModule, i) => {
136
- return bundle({
137
- entryPoints: [componentModule],
138
- resolvePlatformSpecificEntries: true,
139
- external,
140
- outfile: componentOutPaths[i],
141
- target: 'node16',
142
- ...esbuildExtraOptions,
143
- })
146
+ },
147
+ props.platform
148
+ )
144
149
  }),
145
150
  ])
146
151
 
@@ -160,14 +165,14 @@ export async function bundleConfig(props: TamaguiOptions) {
160
165
  )
161
166
 
162
167
  let out
163
- const unregisterTamagui = registerRequire()
168
+ const { unregister } = registerRequire(props.platform)
164
169
  try {
165
170
  out = require(configOutPath)
166
171
  } catch (err) {
167
172
  // rome-ignore lint/complexity/noUselessCatch: <explanation>
168
173
  throw err
169
174
  } finally {
170
- unregisterTamagui()
175
+ unregister()
171
176
  }
172
177
  const config = out.default || out
173
178
 
@@ -203,7 +208,7 @@ export async function bundleConfig(props: TamaguiOptions) {
203
208
  // always load core so we can optimize if directly importing
204
209
  const coreComponents = loadComponents({
205
210
  ...props,
206
- components: ['@tamagui/core-node'],
211
+ components: ['@tamagui/core'],
207
212
  })
208
213
  if (coreComponents) {
209
214
  coreComponents[0].moduleName = '@tamagui/core'
@@ -248,7 +253,7 @@ export function loadComponents(props: TamaguiOptions): null | LoadedComponents[]
248
253
  return cacheComponents[key]
249
254
  }
250
255
 
251
- const unregister = registerRequire()
256
+ const { unregister } = registerRequire(props.platform)
252
257
 
253
258
  try {
254
259
  const info: LoadedComponents[] = componentsModules.flatMap((name) => {
@@ -3,13 +3,11 @@ import vm from 'vm'
3
3
  import generate from '@babel/generator'
4
4
  import { NodePath } from '@babel/traverse'
5
5
  import * as t from '@babel/types'
6
- import { createCSSVariable } from '@tamagui/core-node'
7
6
  import esbuild from 'esbuild'
8
7
 
9
8
  import { FAILED_EVAL } from '../constants'
10
9
  import { TamaguiOptionsWithFileInfo } from '../types'
11
10
  import { evaluateAstNode } from './evaluateAstNode'
12
- import { isValidThemeHook } from './extractHelpers'
13
11
 
14
12
  export function createEvaluator({
15
13
  props,
@@ -26,20 +24,6 @@ export function createEvaluator({
26
24
  }) {
27
25
  // called when evaluateAstNode encounters a dynamic-looking prop
28
26
  const evalFn = (n: t.Node) => {
29
- // themes
30
- if (
31
- t.isMemberExpression(n) &&
32
- t.isIdentifier(n.property) &&
33
- traversePath &&
34
- isValidThemeHook(props, traversePath, n, sourcePath)
35
- ) {
36
- const key = n.property.name
37
- if (shouldPrintDebug) {
38
- // rome-ignore lint/suspicious/noConsoleLog: ok
39
- console.log(' > found theme prop', key)
40
- }
41
- return createCSSVariable(key)
42
- }
43
27
  // variable
44
28
  if (t.isIdentifier(n) && typeof staticNamespace[n.name] !== 'undefined') {
45
29
  return staticNamespace[n.name]
@@ -3,14 +3,6 @@ import { basename, relative } from 'path'
3
3
 
4
4
  import traverse, { NodePath, TraverseOptions } from '@babel/traverse'
5
5
  import * as t from '@babel/types'
6
- import {
7
- expandStylesAndRemoveNullishValues,
8
- getSplitStyles,
9
- mediaQueryConfig,
10
- propMapper,
11
- proxyThemeVariables,
12
- pseudoDescriptors,
13
- } from '@tamagui/core-node'
14
6
  import type {
15
7
  GetStyleState,
16
8
  PseudoStyles,
@@ -22,6 +14,7 @@ import type { ViewStyle } from 'react-native'
22
14
  import { createDOMProps } from 'react-native-web-internals'
23
15
 
24
16
  import { FAILED_EVAL } from '../constants'
17
+ import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
25
18
  import type {
26
19
  ExtractedAttr,
27
20
  ExtractedAttrStyle,
@@ -187,6 +180,15 @@ export function createExtractor(
187
180
  ...restProps
188
181
  } = options
189
182
 
183
+ const {
184
+ expandStylesAndRemoveNullishValues,
185
+ getSplitStyles,
186
+ mediaQueryConfig,
187
+ propMapper,
188
+ proxyThemeVariables,
189
+ pseudoDescriptors,
190
+ } = requireTamaguiCore(target === 'html' ? 'web' : 'native')
191
+
190
192
  let shouldPrintDebug = options.shouldPrintDebug || false
191
193
 
192
194
  if (disable === true || (Array.isArray(disable) && disable.includes(sourcePath))) {
@@ -1646,7 +1648,7 @@ export function createExtractor(
1646
1648
  t.identifier('Theme')
1647
1649
  ),
1648
1650
  ],
1649
- t.stringLiteral('@tamagui/core')
1651
+ t.stringLiteral('@tamagui/web')
1650
1652
  )
1651
1653
  )
1652
1654
  }
@@ -1929,6 +1931,7 @@ export function createExtractor(
1929
1931
  componentState,
1930
1932
  {
1931
1933
  ...styleProps,
1934
+ noClassNames: true,
1932
1935
  fallbackProps: completeProps,
1933
1936
  },
1934
1937
  undefined,
@@ -0,0 +1,40 @@
1
+ /**
2
+ * alias plugin
3
+ * @description
4
+ * config example:
5
+ * ```
6
+ * {
7
+ * '@lib': '/some/absolute/path'
8
+ * }
9
+ * ```
10
+ * then `import { something } from '@lib/xxx'` will be transformed to
11
+ * `import { something } from '/some/absolute/path/xxx'`
12
+ * @param {object} config
13
+ */
14
+ export const esbuildAliasPlugin = (config) => {
15
+ const alias = config && Object.keys(config)
16
+ return {
17
+ name: 'path-alias',
18
+
19
+ setup(build) {
20
+ if (!alias || !alias.length) {
21
+ return
22
+ }
23
+ const main = (k, args) => {
24
+ const targetPath = config[k].replace(/\/$/, '')
25
+ return {
26
+ path: targetPath,
27
+ }
28
+ }
29
+
30
+ alias.forEach((k) => {
31
+ build.onResolve({ filter: new RegExp(`^.*${k}$`) }, (args) => {
32
+ return main(k, args)
33
+ })
34
+ build.onResolve({ filter: new RegExp(`^.*\\/${k}\\/.*$`) }, (args) => {
35
+ return main(k, args)
36
+ })
37
+ })
38
+ },
39
+ }
40
+ }
@@ -1,13 +1,10 @@
1
1
  import { NodePath } from '@babel/traverse'
2
2
  import * as t from '@babel/types'
3
- import {
4
- TamaguiInternalConfig,
5
- getStylesAtomic,
6
- mediaObjectToString,
7
- } from '@tamagui/core-node'
3
+ import type { TamaguiInternalConfig } from '@tamagui/core'
8
4
  import type { ViewStyle } from 'react-native'
9
5
 
10
6
  import { MEDIA_SEP } from '../constants'
7
+ import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
11
8
  import type { StyleObject, TamaguiOptionsWithFileInfo, Ternary } from '../types'
12
9
  import { isPresent, isValidImport } from './extractHelpers'
13
10
 
@@ -20,6 +17,7 @@ export function extractMediaStyle(
20
17
  importance = 0,
21
18
  shouldPrintDebug: boolean | 'verbose' = false
22
19
  ) {
20
+ const { getStylesAtomic, mediaObjectToString } = requireTamaguiCore('web')
23
21
  const mt = getMediaQueryTernary(props, ternary, jsxPath, sourcePath)
24
22
  if (!mt) {
25
23
  return null
@@ -4,10 +4,10 @@ import * as util from 'util'
4
4
 
5
5
  import generate from '@babel/generator'
6
6
  import * as t from '@babel/types'
7
- import { getStylesAtomic } from '@tamagui/core-node'
8
7
  import { concatClassName } from '@tamagui/helpers'
9
8
  import type { ViewStyle } from 'react-native'
10
9
 
10
+ import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
11
11
  import type { ClassNameObject, StyleObject, TamaguiOptions, Ternary } from '../types'
12
12
  import { babelParse } from './babelParse'
13
13
  import { buildClassName } from './buildClassName'
@@ -52,6 +52,7 @@ export async function extractToClassNames({
52
52
  shouldPrintDebug,
53
53
  }: ExtractToClassNamesProps): Promise<ExtractedResponse | null> {
54
54
  const tm = timer()
55
+ const { getStylesAtomic } = requireTamaguiCore('web')
55
56
 
56
57
  if (sourcePath?.includes('node_modules')) {
57
58
  return null
@@ -1,10 +1,11 @@
1
1
  import { join } from 'path'
2
2
 
3
- import { getVariableValue } from '@tamagui/core-node'
4
3
  import { generateThemes, writeGeneratedThemes } from '@tamagui/generate-themes'
5
4
  import { TamaguiOptions } from '@tamagui/types'
6
5
  import fs, { readFile } from 'fs-extra'
7
6
 
7
+ import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
8
+ import { TamaguiPlatform } from '../types'
8
9
  import { BundledConfig, getBundledConfig } from './bundleConfig'
9
10
 
10
11
  const tamaguiDir = join(process.cwd(), '.tamagui')
@@ -22,7 +23,7 @@ export async function generateTamaguiStudioConfig(
22
23
  try {
23
24
  const config = configIn ?? (await getBundledConfig(tamaguiOptions, rebuild))
24
25
  if (!config) return
25
- const out = transformConfig(config)
26
+ const out = transformConfig(config, tamaguiOptions.platform)
26
27
 
27
28
  fs.writeJSON(confFile, out, {
28
29
  spaces: 2,
@@ -77,7 +78,7 @@ export function generateTamaguiStudioConfigSync(
77
78
  config: BundledConfig
78
79
  ) {
79
80
  try {
80
- fs.writeJSONSync(confFile, transformConfig(config), {
81
+ fs.writeJSONSync(confFile, transformConfig(config, _tamaguiOptions.platform), {
81
82
  spaces: 2,
82
83
  })
83
84
  } catch (err) {
@@ -99,11 +100,13 @@ function cloneDeepSafe(x: any, excludeKeys = {}) {
99
100
  )
100
101
  }
101
102
 
102
- function transformConfig(config: BundledConfig) {
103
+ function transformConfig(config: BundledConfig, platform: TamaguiPlatform) {
103
104
  if (!config) {
104
105
  return null
105
106
  }
106
107
 
108
+ const { getVariableValue } = requireTamaguiCore(platform)
109
+
107
110
  // ensure we don't mangle anything in the original
108
111
  const next = cloneDeepSafe(config, {
109
112
  validStyles: true,
@@ -1,15 +1,15 @@
1
1
  import { basename, dirname, extname, join, relative, resolve } from 'path'
2
2
 
3
3
  import { Color, colorLog } from '@tamagui/cli-color'
4
- import { getDefaultTamaguiConfig } from '@tamagui/config-default-node'
5
- import { createTamagui } from '@tamagui/core-node'
4
+ import { getDefaultTamaguiConfig } from '@tamagui/config-default'
6
5
  import { CLIResolvedOptions, CLIUserOptions, TamaguiOptions } from '@tamagui/types'
7
6
  import type { TamaguiInternalConfig } from '@tamagui/web'
8
7
  import esbuild from 'esbuild'
9
8
  import { existsSync, pathExists, readJSON, writeFile } from 'fs-extra'
10
9
 
11
10
  import { SHOULD_DEBUG } from '../constants'
12
- import { getNameToPaths, registerRequire } from '../require'
11
+ import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
12
+ import { getNameToPaths, registerRequire } from '../registerRequire'
13
13
  import {
14
14
  TamaguiProjectInfo,
15
15
  getBundledConfig,
@@ -25,20 +25,21 @@ import { getTamaguiConfigPathFromOptionsConfig } from './getTamaguiConfigPathFro
25
25
 
26
26
  const getFilledOptions = (propsIn: Partial<TamaguiOptions>): TamaguiOptions => ({
27
27
  // defaults
28
+ platform: (process.env.TAMAGUI_TARGET as any) || 'web',
28
29
  config: 'tamagui.config.ts',
29
30
  components: ['tamagui'],
30
31
  ...(propsIn as Partial<TamaguiOptions>),
31
32
  })
32
33
 
33
34
  export async function loadTamagui(
34
- propsIn: TamaguiOptions
35
+ propsIn: Partial<TamaguiOptions>
35
36
  ): Promise<TamaguiProjectInfo | null> {
36
- const options = getFilledOptions(propsIn)
37
+ const props = getFilledOptions(propsIn)
37
38
 
38
39
  // this affects the bundled config so run it first
39
- await generateThemesAndLog(options)
40
+ await generateThemesAndLog(props)
40
41
 
41
- const bundleInfo = await getBundledConfig(options)
42
+ const bundleInfo = await getBundledConfig(props)
42
43
  if (!bundleInfo) {
43
44
  console.warn(
44
45
  `No bundled config generated, maybe an error in bundling. Set DEBUG=tamagui and re-run to get logs.`
@@ -50,16 +51,17 @@ export async function loadTamagui(
50
51
  return bundleInfo
51
52
  }
52
53
 
53
- await generateTamaguiStudioConfig(options, bundleInfo)
54
+ await generateTamaguiStudioConfig(props, bundleInfo)
54
55
 
55
56
  // this depends on the config so run it after
56
57
  if (bundleInfo) {
57
- // init core-node
58
+ const { createTamagui } = requireTamaguiCore(props.platform)
59
+ // init config
58
60
  const config = createTamagui(bundleInfo.tamaguiConfig) as any
59
61
 
60
- if (options.outputCSS) {
61
- colorLog(Color.FgYellow, ` ➡ [tamagui] outputCSS: ${options.outputCSS}\n`)
62
- await writeFile(options.outputCSS, config.getCSS())
62
+ if (props.outputCSS) {
63
+ colorLog(Color.FgYellow, ` ➡ [tamagui] outputCSS: ${props.outputCSS}\n`)
64
+ await writeFile(props.outputCSS, config.getCSS())
63
65
  }
64
66
  }
65
67
 
@@ -93,16 +95,17 @@ const generateThemesAndLog = async (options: TamaguiOptions) => {
93
95
  }
94
96
 
95
97
  // loads in-process using esbuild-register
96
- export function loadTamaguiSync(propsIn: TamaguiOptions): TamaguiProjectInfo {
98
+ export function loadTamaguiSync(propsIn: Partial<TamaguiOptions>): TamaguiProjectInfo {
97
99
  const props = getFilledOptions(propsIn)
98
100
 
99
- const unregisterRequire = registerRequire()
100
- try {
101
- // lets shim require and avoid importing react-native + react-native-web
102
- // we just need to read the config around them
103
- process.env.IS_STATIC = 'is_static'
104
- process.env.TAMAGUI_IS_SERVER = 'true'
101
+ // lets shim require and avoid importing react-native + react-native-web
102
+ // we just need to read the config around them
103
+ process.env.IS_STATIC = 'is_static'
104
+ process.env.TAMAGUI_IS_SERVER = 'true'
105
105
 
106
+ const { createTamagui } = requireTamaguiCore(props.platform)
107
+ const { unregister, tamaguiRequire } = registerRequire(props.platform)
108
+ try {
106
109
  const devValueOG = globalThis['__DEV__' as any]
107
110
  globalThis['__DEV__' as any] = process.env.NODE_ENV === 'development'
108
111
 
@@ -111,7 +114,7 @@ export function loadTamaguiSync(propsIn: TamaguiOptions): TamaguiProjectInfo {
111
114
  let tamaguiConfig: TamaguiInternalConfig | null = null
112
115
  if (props.config) {
113
116
  const configPath = getTamaguiConfigPathFromOptionsConfig(props.config)
114
- const exp = require(configPath)
117
+ const exp = tamaguiRequire(configPath)
115
118
  tamaguiConfig = (exp['default'] || exp) as TamaguiInternalConfig
116
119
  if (!tamaguiConfig || !tamaguiConfig.parsed) {
117
120
  const confPath = require.resolve(configPath)
@@ -135,7 +138,7 @@ export function loadTamaguiSync(propsIn: TamaguiOptions): TamaguiProjectInfo {
135
138
  process.env.IS_STATIC = undefined
136
139
  globalThis['__DEV__' as any] = devValueOG
137
140
 
138
- // set up core-node
141
+ // set up core
139
142
  if (props.config && tamaguiConfig) {
140
143
  createTamagui(tamaguiConfig as any)
141
144
  }
@@ -170,7 +173,7 @@ export function loadTamaguiSync(propsIn: TamaguiOptions): TamaguiProjectInfo {
170
173
  }
171
174
  }
172
175
  } finally {
173
- unregisterRequire()
176
+ unregister()
174
177
  }
175
178
  }
176
179
 
@@ -198,6 +201,7 @@ export async function getOptions({
198
201
  debug,
199
202
  tsconfigPath,
200
203
  tamaguiOptions: {
204
+ platform: (process.env.TAMAGUI_TARGET as any) || 'web',
201
205
  components: ['tamagui'],
202
206
  ...tamaguiOptions,
203
207
  config: await getDefaultTamaguiConfigPath(root, tamaguiOptions?.config),
@@ -0,0 +1,13 @@
1
+ // this allows us to swap between core native and web in the same process:
2
+
3
+ import { TamaguiPlatform } from '../types'
4
+
5
+ export function requireTamaguiCore(
6
+ platform: TamaguiPlatform,
7
+ ogRequire: Function = require
8
+ ): typeof import('@tamagui/core') {
9
+ if (!platform) {
10
+ throw new Error(`No platform given to requireTamaguiCore`)
11
+ }
12
+ return ogRequire(platform === 'native' ? '@tamagui/core/native' : '@tamagui/core')
13
+ }
package/src/index.ts CHANGED
@@ -1,9 +1,2 @@
1
- export { TamaguiOptions } from './types'
2
- export { createExtractor } from './extractor/createExtractor'
3
- export { literalToAst } from './extractor/literalToAst'
4
- export * from './constants'
5
- export * from './extractor/extractToClassNames'
6
- export * from './extractor/extractHelpers'
7
- export * from './extractor/loadTamagui'
8
- export * from './require'
9
- export * from './getPragmaOptions'
1
+ import './setup'
2
+ export * from './static'