@tamagui/static 1.61.2 → 1.62.0

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 (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 +34 -78
  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 +25 -59
  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 +3 -1
  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.2",
3
+ "version": "1.62.0",
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.2",
39
- "@tamagui/cli-color": "1.61.2",
40
- "@tamagui/config-default-node": "1.61.2",
41
- "@tamagui/core-node": "1.61.2",
42
- "@tamagui/fake-react-native": "1.61.2",
43
- "@tamagui/generate-themes": "1.61.2",
44
- "@tamagui/helpers": "1.61.2",
45
- "@tamagui/helpers-node": "1.61.2",
46
- "@tamagui/proxy-worm": "1.61.2",
47
- "@tamagui/shorthands": "1.61.2",
48
- "@tamagui/types": "1.61.2",
38
+ "@tamagui/build": "1.62.0",
39
+ "@tamagui/cli-color": "1.62.0",
40
+ "@tamagui/config-default": "1.62.0",
41
+ "@tamagui/core": "1.62.0",
42
+ "@tamagui/fake-react-native": "1.62.0",
43
+ "@tamagui/generate-themes": "1.62.0",
44
+ "@tamagui/helpers": "1.62.0",
45
+ "@tamagui/helpers-node": "1.62.0",
46
+ "@tamagui/proxy-worm": "1.62.0",
47
+ "@tamagui/shorthands": "1.62.0",
48
+ "@tamagui/types": "1.62.0",
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.2",
59
- "react-native-web-lite": "1.61.2"
58
+ "react-native-web-internals": "1.62.0",
59
+ "react-native-web-lite": "1.62.0"
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.2",
64
+ "@tamagui/test-design-system": "1.62.0",
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,10 @@
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
8
  import { BundledConfig, getBundledConfig } from './bundleConfig'
9
9
 
10
10
  const tamaguiDir = join(process.cwd(), '.tamagui')
@@ -104,6 +104,8 @@ function transformConfig(config: BundledConfig) {
104
104
  return null
105
105
  }
106
106
 
107
+ const { getVariableValue } = requireTamaguiCore('web')
108
+
107
109
  // ensure we don't mangle anything in the original
108
110
  const next = cloneDeepSafe(config, {
109
111
  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'