@tamagui/static 1.0.1-beta.99 → 1.0.1-rc.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 (269) hide show
  1. package/dist/{cjs/constants.js → constants.js} +9 -4
  2. package/dist/constants.js.map +7 -0
  3. package/dist/{cjs/extractor → extractor}/accessSafe.js +14 -2
  4. package/dist/{esm/extractor → extractor}/accessSafe.js.map +2 -2
  5. package/dist/{cjs/extractor → extractor}/babelParse.js +5 -1
  6. package/dist/extractor/babelParse.js.map +7 -0
  7. package/dist/{cjs/extractor → extractor}/buildClassName.js +40 -9
  8. package/dist/extractor/buildClassName.js.map +7 -0
  9. package/dist/extractor/bundle.js +117 -0
  10. package/dist/extractor/bundle.js.map +7 -0
  11. package/dist/{cjs/extractor → extractor}/createEvaluator.js +11 -8
  12. package/dist/extractor/createEvaluator.js.map +7 -0
  13. package/dist/extractor/createExtractor.js +1623 -0
  14. package/dist/extractor/createExtractor.js.map +7 -0
  15. package/dist/{cjs/extractor → extractor}/ensureImportingConcat.js +18 -6
  16. package/dist/extractor/ensureImportingConcat.js.map +7 -0
  17. package/dist/{cjs/extractor → extractor}/evaluateAstNode.js +14 -4
  18. package/dist/extractor/evaluateAstNode.js.map +7 -0
  19. package/dist/{cjs/extractor → extractor}/extractHelpers.js +83 -12
  20. package/dist/extractor/extractHelpers.js.map +7 -0
  21. package/dist/{cjs/extractor → extractor}/extractMediaStyle.js +46 -42
  22. package/dist/extractor/extractMediaStyle.js.map +7 -0
  23. package/dist/{cjs/extractor → extractor}/extractToClassNames.js +144 -73
  24. package/dist/extractor/extractToClassNames.js.map +7 -0
  25. package/dist/{cjs/extractor → extractor}/findTopmostFunction.js +1 -0
  26. package/dist/{cjs/extractor → extractor}/findTopmostFunction.js.map +2 -2
  27. package/dist/{cjs/extractor → extractor}/generatedUid.js +9 -2
  28. package/dist/{cjs/extractor → extractor}/generatedUid.js.map +3 -3
  29. package/dist/{cjs/extractor → extractor}/getPrefixLogs.js +1 -0
  30. package/dist/extractor/getPrefixLogs.js.map +7 -0
  31. package/dist/{cjs/extractor → extractor}/getPropValueFromAttributes.js +24 -13
  32. package/dist/extractor/getPropValueFromAttributes.js.map +7 -0
  33. package/dist/{cjs/extractor → extractor}/getSourceModule.js +5 -1
  34. package/dist/{esm/extractor → extractor}/getSourceModule.js.map +3 -3
  35. package/dist/{cjs/extractor → extractor}/getStaticBindingsForScope.js +89 -35
  36. package/dist/extractor/getStaticBindingsForScope.js.map +7 -0
  37. package/dist/{cjs/extractor → extractor}/hoistClassNames.js +5 -1
  38. package/dist/{jsx/extractor → extractor}/hoistClassNames.js.map +3 -3
  39. package/dist/{cjs/extractor → extractor}/literalToAst.js +26 -30
  40. package/dist/{jsx/extractor → extractor}/literalToAst.js.map +2 -2
  41. package/dist/extractor/loadFile.js +21 -0
  42. package/dist/extractor/loadFile.js.map +7 -0
  43. package/dist/extractor/loadTamagui.js +427 -0
  44. package/dist/extractor/loadTamagui.js.map +7 -0
  45. package/dist/{cjs/extractor → extractor}/logLines.js +2 -1
  46. package/dist/extractor/logLines.js.map +7 -0
  47. package/dist/{cjs/extractor → extractor}/normalizeTernaries.js +13 -34
  48. package/dist/extractor/normalizeTernaries.js.map +7 -0
  49. package/dist/{cjs/extractor → extractor}/removeUnusedHooks.js +5 -1
  50. package/dist/extractor/removeUnusedHooks.js.map +7 -0
  51. package/dist/{cjs/extractor → extractor}/timer.js +9 -1
  52. package/dist/extractor/timer.js.map +7 -0
  53. package/dist/{cjs/extractor → extractor}/validHTMLAttributes.js +1 -0
  54. package/dist/{jsx/extractor → extractor}/validHTMLAttributes.js.map +2 -2
  55. package/dist/getPragmaOptions.js +68 -0
  56. package/dist/getPragmaOptions.js.map +7 -0
  57. package/dist/helpers/memoize.js +46 -0
  58. package/dist/helpers/memoize.js.map +7 -0
  59. package/dist/{cjs/index.js → index.js} +10 -8
  60. package/dist/index.js.map +7 -0
  61. package/dist/require.js +86 -0
  62. package/dist/require.js.map +7 -0
  63. package/dist/{cjs/types.js → types.js} +1 -0
  64. package/dist/types.js.map +7 -0
  65. package/dist/webpackPlugin.js +35 -0
  66. package/dist/webpackPlugin.js.map +7 -0
  67. package/package.json +40 -36
  68. package/src/constants.ts +2 -1
  69. package/src/extractor/babelParse.ts +3 -2
  70. package/src/extractor/buildClassName.ts +21 -5
  71. package/src/extractor/bundle.ts +110 -0
  72. package/src/extractor/createEvaluator.ts +10 -12
  73. package/src/extractor/createExtractor.ts +1702 -1523
  74. package/src/extractor/ensureImportingConcat.ts +4 -11
  75. package/src/extractor/evaluateAstNode.ts +1 -1
  76. package/src/extractor/extractHelpers.ts +93 -10
  77. package/src/extractor/extractMediaStyle.ts +18 -11
  78. package/src/extractor/extractToClassNames.ts +104 -47
  79. package/src/extractor/getPrefixLogs.ts +1 -1
  80. package/src/extractor/getPropValueFromAttributes.ts +4 -3
  81. package/src/extractor/getSourceModule.ts +2 -0
  82. package/src/extractor/getStaticBindingsForScope.ts +90 -46
  83. package/src/extractor/loadFile.ts +17 -0
  84. package/src/extractor/loadTamagui.ts +448 -103
  85. package/src/extractor/logLines.ts +1 -1
  86. package/src/extractor/normalizeTernaries.ts +2 -2
  87. package/src/extractor/removeUnusedHooks.ts +2 -0
  88. package/src/extractor/timer.ts +12 -1
  89. package/src/getPragmaOptions.ts +53 -0
  90. package/src/helpers/memoize.ts +21 -0
  91. package/src/index.ts +9 -8
  92. package/src/require.ts +103 -0
  93. package/src/types.ts +33 -31
  94. package/src/webpackPlugin.ts +9 -0
  95. package/tamagui.tsconfig.json +5 -0
  96. package/types/constants.d.ts +6 -0
  97. package/types/extractor/accessSafe.d.ts +3 -0
  98. package/types/extractor/babelParse.d.ts +6 -0
  99. package/types/extractor/buildClassName.d.ts +5 -2
  100. package/types/extractor/bundle.d.ts +13 -0
  101. package/types/extractor/createEvaluator.d.ts +3 -3
  102. package/types/extractor/createExtractor.d.ts +25 -9
  103. package/types/extractor/ensureImportingConcat.d.ts +4 -0
  104. package/types/extractor/evaluateAstNode.d.ts +3 -0
  105. package/types/extractor/extractHelpers.d.ts +15 -3
  106. package/types/extractor/extractMediaStyle.d.ts +3 -3
  107. package/types/extractor/extractToClassNames.d.ts +5 -4
  108. package/types/extractor/findTopmostFunction.d.ts +4 -0
  109. package/types/extractor/generatedUid.d.ts +5 -0
  110. package/types/extractor/getPrefixLogs.d.ts +1 -1
  111. package/types/extractor/getPropValueFromAttributes.d.ts +19 -0
  112. package/types/extractor/getSourceModule.d.ts +16 -0
  113. package/types/extractor/getStaticBindingsForScope.d.ts +5 -0
  114. package/types/extractor/hoistClassNames.d.ts +6 -0
  115. package/types/extractor/literalToAst.d.ts +4 -0
  116. package/types/extractor/loadFile.d.ts +1 -0
  117. package/types/extractor/loadTamagui.d.ts +15 -5
  118. package/types/extractor/logLines.d.ts +2 -0
  119. package/types/extractor/normalizeTernaries.d.ts +1 -1
  120. package/types/extractor/removeUnusedHooks.d.ts +3 -0
  121. package/types/extractor/timer.d.ts +5 -0
  122. package/types/extractor/validHTMLAttributes.d.ts +98 -0
  123. package/types/getPragmaOptions.d.ts +9 -0
  124. package/types/helpers/memoize.d.ts +8 -0
  125. package/types/index.d.ts +9 -8
  126. package/types/require.d.ts +4 -0
  127. package/types/types.d.ts +28 -27
  128. package/types/webpackPlugin.d.ts +4 -0
  129. package/dist/cjs/constants.js.map +0 -7
  130. package/dist/cjs/extractor/accessSafe.js.map +0 -7
  131. package/dist/cjs/extractor/babelParse.js.map +0 -7
  132. package/dist/cjs/extractor/buildClassName.js.map +0 -7
  133. package/dist/cjs/extractor/createEvaluator.js.map +0 -7
  134. package/dist/cjs/extractor/createExtractor.js +0 -1394
  135. package/dist/cjs/extractor/createExtractor.js.map +0 -7
  136. package/dist/cjs/extractor/ensureImportingConcat.js.map +0 -7
  137. package/dist/cjs/extractor/evaluateAstNode.js.map +0 -7
  138. package/dist/cjs/extractor/extractHelpers.js.map +0 -7
  139. package/dist/cjs/extractor/extractMediaStyle.js.map +0 -7
  140. package/dist/cjs/extractor/extractToClassNames.js.map +0 -7
  141. package/dist/cjs/extractor/getPrefixLogs.js.map +0 -7
  142. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +0 -7
  143. package/dist/cjs/extractor/getSourceModule.js.map +0 -7
  144. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +0 -7
  145. package/dist/cjs/extractor/hoistClassNames.js.map +0 -7
  146. package/dist/cjs/extractor/literalToAst.js.map +0 -7
  147. package/dist/cjs/extractor/loadTamagui.js +0 -139
  148. package/dist/cjs/extractor/loadTamagui.js.map +0 -7
  149. package/dist/cjs/extractor/logLines.js.map +0 -7
  150. package/dist/cjs/extractor/normalizeTernaries.js.map +0 -7
  151. package/dist/cjs/extractor/removeUnusedHooks.js.map +0 -7
  152. package/dist/cjs/extractor/timer.js.map +0 -7
  153. package/dist/cjs/extractor/validHTMLAttributes.js.map +0 -7
  154. package/dist/cjs/index.js.map +0 -7
  155. package/dist/cjs/types.js.map +0 -7
  156. package/dist/esm/constants.js +0 -14
  157. package/dist/esm/constants.js.map +0 -7
  158. package/dist/esm/extractor/accessSafe.js +0 -8
  159. package/dist/esm/extractor/babelParse.js +0 -28
  160. package/dist/esm/extractor/babelParse.js.map +0 -7
  161. package/dist/esm/extractor/buildClassName.js +0 -37
  162. package/dist/esm/extractor/buildClassName.js.map +0 -7
  163. package/dist/esm/extractor/createEvaluator.js +0 -53
  164. package/dist/esm/extractor/createEvaluator.js.map +0 -7
  165. package/dist/esm/extractor/createExtractor.js +0 -1379
  166. package/dist/esm/extractor/createExtractor.js.map +0 -7
  167. package/dist/esm/extractor/ensureImportingConcat.js +0 -21
  168. package/dist/esm/extractor/ensureImportingConcat.js.map +0 -7
  169. package/dist/esm/extractor/evaluateAstNode.js +0 -91
  170. package/dist/esm/extractor/evaluateAstNode.js.map +0 -7
  171. package/dist/esm/extractor/extractHelpers.js +0 -97
  172. package/dist/esm/extractor/extractHelpers.js.map +0 -7
  173. package/dist/esm/extractor/extractMediaStyle.js +0 -161
  174. package/dist/esm/extractor/extractMediaStyle.js.map +0 -7
  175. package/dist/esm/extractor/extractToClassNames.js +0 -294
  176. package/dist/esm/extractor/extractToClassNames.js.map +0 -7
  177. package/dist/esm/extractor/findTopmostFunction.js +0 -20
  178. package/dist/esm/extractor/findTopmostFunction.js.map +0 -7
  179. package/dist/esm/extractor/generatedUid.js +0 -25
  180. package/dist/esm/extractor/generatedUid.js.map +0 -7
  181. package/dist/esm/extractor/getPrefixLogs.js +0 -8
  182. package/dist/esm/extractor/getPrefixLogs.js.map +0 -7
  183. package/dist/esm/extractor/getPropValueFromAttributes.js +0 -46
  184. package/dist/esm/extractor/getPropValueFromAttributes.js.map +0 -7
  185. package/dist/esm/extractor/getSourceModule.js +0 -66
  186. package/dist/esm/extractor/getStaticBindingsForScope.js +0 -132
  187. package/dist/esm/extractor/getStaticBindingsForScope.js.map +0 -7
  188. package/dist/esm/extractor/hoistClassNames.js +0 -40
  189. package/dist/esm/extractor/hoistClassNames.js.map +0 -7
  190. package/dist/esm/extractor/literalToAst.js +0 -90
  191. package/dist/esm/extractor/literalToAst.js.map +0 -7
  192. package/dist/esm/extractor/loadTamagui.js +0 -117
  193. package/dist/esm/extractor/loadTamagui.js.map +0 -7
  194. package/dist/esm/extractor/logLines.js +0 -20
  195. package/dist/esm/extractor/logLines.js.map +0 -7
  196. package/dist/esm/extractor/normalizeTernaries.js +0 -79
  197. package/dist/esm/extractor/normalizeTernaries.js.map +0 -7
  198. package/dist/esm/extractor/removeUnusedHooks.js +0 -76
  199. package/dist/esm/extractor/removeUnusedHooks.js.map +0 -7
  200. package/dist/esm/extractor/timer.js +0 -22
  201. package/dist/esm/extractor/timer.js.map +0 -7
  202. package/dist/esm/extractor/validHTMLAttributes.js +0 -102
  203. package/dist/esm/extractor/validHTMLAttributes.js.map +0 -7
  204. package/dist/esm/index.js +0 -15
  205. package/dist/esm/index.js.map +0 -7
  206. package/dist/esm/types.js +0 -1
  207. package/dist/esm/types.js.map +0 -7
  208. package/dist/jsx/constants.js +0 -14
  209. package/dist/jsx/constants.js.map +0 -7
  210. package/dist/jsx/extractor/accessSafe.js +0 -8
  211. package/dist/jsx/extractor/accessSafe.js.map +0 -7
  212. package/dist/jsx/extractor/babelParse.js +0 -28
  213. package/dist/jsx/extractor/babelParse.js.map +0 -7
  214. package/dist/jsx/extractor/buildClassName.js +0 -37
  215. package/dist/jsx/extractor/buildClassName.js.map +0 -7
  216. package/dist/jsx/extractor/createEvaluator.js +0 -53
  217. package/dist/jsx/extractor/createEvaluator.js.map +0 -7
  218. package/dist/jsx/extractor/createExtractor.js +0 -1343
  219. package/dist/jsx/extractor/createExtractor.js.map +0 -7
  220. package/dist/jsx/extractor/ensureImportingConcat.js +0 -21
  221. package/dist/jsx/extractor/ensureImportingConcat.js.map +0 -7
  222. package/dist/jsx/extractor/evaluateAstNode.js +0 -91
  223. package/dist/jsx/extractor/evaluateAstNode.js.map +0 -7
  224. package/dist/jsx/extractor/extractHelpers.js +0 -97
  225. package/dist/jsx/extractor/extractHelpers.js.map +0 -7
  226. package/dist/jsx/extractor/extractMediaStyle.js +0 -146
  227. package/dist/jsx/extractor/extractMediaStyle.js.map +0 -7
  228. package/dist/jsx/extractor/extractToClassNames.js +0 -280
  229. package/dist/jsx/extractor/extractToClassNames.js.map +0 -7
  230. package/dist/jsx/extractor/findTopmostFunction.js +0 -20
  231. package/dist/jsx/extractor/findTopmostFunction.js.map +0 -7
  232. package/dist/jsx/extractor/generatedUid.js +0 -25
  233. package/dist/jsx/extractor/generatedUid.js.map +0 -7
  234. package/dist/jsx/extractor/getPrefixLogs.js +0 -9
  235. package/dist/jsx/extractor/getPrefixLogs.js.map +0 -7
  236. package/dist/jsx/extractor/getPropValueFromAttributes.js +0 -46
  237. package/dist/jsx/extractor/getPropValueFromAttributes.js.map +0 -7
  238. package/dist/jsx/extractor/getSourceModule.js +0 -66
  239. package/dist/jsx/extractor/getSourceModule.js.map +0 -7
  240. package/dist/jsx/extractor/getStaticBindingsForScope.js +0 -132
  241. package/dist/jsx/extractor/getStaticBindingsForScope.js.map +0 -7
  242. package/dist/jsx/extractor/hoistClassNames.js +0 -40
  243. package/dist/jsx/extractor/literalToAst.js +0 -75
  244. package/dist/jsx/extractor/loadTamagui.js +0 -102
  245. package/dist/jsx/extractor/loadTamagui.js.map +0 -7
  246. package/dist/jsx/extractor/logLines.js +0 -20
  247. package/dist/jsx/extractor/logLines.js.map +0 -7
  248. package/dist/jsx/extractor/normalizeTernaries.js +0 -50
  249. package/dist/jsx/extractor/normalizeTernaries.js.map +0 -7
  250. package/dist/jsx/extractor/removeUnusedHooks.js +0 -77
  251. package/dist/jsx/extractor/removeUnusedHooks.js.map +0 -7
  252. package/dist/jsx/extractor/timer.js +0 -22
  253. package/dist/jsx/extractor/timer.js.map +0 -7
  254. package/dist/jsx/extractor/validHTMLAttributes.js +0 -102
  255. package/dist/jsx/index.js +0 -15
  256. package/dist/jsx/index.js.map +0 -7
  257. package/dist/jsx/types.js +0 -1
  258. package/dist/jsx/types.js.map +0 -7
  259. package/types/extractor/buildClassName.d.ts.map +0 -1
  260. package/types/extractor/createEvaluator.d.ts.map +0 -1
  261. package/types/extractor/createExtractor.d.ts.map +0 -1
  262. package/types/extractor/extractHelpers.d.ts.map +0 -1
  263. package/types/extractor/extractMediaStyle.d.ts.map +0 -1
  264. package/types/extractor/extractToClassNames.d.ts.map +0 -1
  265. package/types/extractor/getPrefixLogs.d.ts.map +0 -1
  266. package/types/extractor/loadTamagui.d.ts.map +0 -1
  267. package/types/extractor/normalizeTernaries.d.ts.map +0 -1
  268. package/types/index.d.ts.map +0 -1
  269. package/types/types.d.ts.map +0 -1
@@ -1,11 +1,11 @@
1
- import { dirname, extname, resolve } from 'path'
1
+ import { fork } from 'child_process'
2
+ import { dirname, extname, join, resolve } from 'path'
2
3
 
3
4
  import { Binding, NodePath } from '@babel/traverse'
4
5
  import * as t from '@babel/types'
5
- import { existsSync } from 'fs-extra'
6
6
 
7
- import { evaluateAstNode } from './evaluateAstNode'
8
- import { getSourceModule } from './getSourceModule'
7
+ import { evaluateAstNode } from './evaluateAstNode.js'
8
+ import { getSourceModule } from './getSourceModule.js'
9
9
 
10
10
  const isLocalImport = (path: string) => path.startsWith('.') || path.startsWith('/')
11
11
 
@@ -20,40 +20,78 @@ function resolveImportPath(sourcePath: string, path: string) {
20
20
  return path
21
21
  }
22
22
 
23
+ const cache = new Map()
24
+ const pending = new Map<string, Promise<any>>()
25
+ setInterval(() => {
26
+ if (cache.size) {
27
+ cache.clear()
28
+ }
29
+ }, 10)
30
+
31
+ const loadCmd = `${join(__dirname, 'loadFile.js')}`
32
+
33
+ let exited = false
34
+ const child = fork(loadCmd, [], {
35
+ execArgv: ['-r', 'esbuild-register'],
36
+ detached: true,
37
+ stdio: 'ignore',
38
+ })
39
+
40
+ export function cleanupBeforeExit() {
41
+ if (exited) return
42
+ child.removeAllListeners()
43
+ child.unref()
44
+ child.disconnect()
45
+ child.kill()
46
+ exited = true
47
+ }
48
+
49
+ process.once('SIGTERM', cleanupBeforeExit)
50
+ process.once('SIGINT', cleanupBeforeExit)
51
+ process.once('beforeExit', cleanupBeforeExit)
52
+
23
53
  function importModule(path: string) {
24
- const filenames = [path.replace('.js', '.tsx'), path.replace('.js', '.ts'), path]
25
- for (const file of filenames) {
26
- if (existsSync(file)) {
27
- const { unregister } = require('esbuild-register/dist/node').register({
28
- target: 'es2019',
29
- format: 'cjs',
30
- })
31
- try {
32
- // TODO we can clear this when we see updates on it later on
33
- return require(file)
34
- } catch {
35
- // doesn't exists
36
- } finally {
37
- unregister()
54
+ if (pending.has(path)) {
55
+ return pending.get(path)
56
+ }
57
+ const promise = new Promise((res, rej) => {
58
+ if (cache.has(path)) {
59
+ return cache.get(path)
60
+ }
61
+ const listener = (msg: any) => {
62
+ if (!msg) return
63
+ if (typeof msg !== 'string') return
64
+ if (msg[0] === '-') {
65
+ rej(new Error(msg.slice(1)))
66
+ return
38
67
  }
68
+ child.removeListener('message', listener)
69
+ const val = JSON.parse(msg)
70
+ cache.set(path, val)
71
+ res(val)
39
72
  }
40
- }
41
- return null
73
+ child.once('message', listener)
74
+ child.send(`${path.replace('.js', '')}`)
75
+ })
76
+ pending.set(path, promise)
77
+ return promise
42
78
  }
43
79
 
44
- export function getStaticBindingsForScope(
80
+ export async function getStaticBindingsForScope(
45
81
  scope: NodePath<t.JSXElement>['scope'],
46
82
  whitelist: string[] = [],
47
83
  sourcePath: string,
48
84
  bindingCache: Record<string, string | null>,
49
85
  shouldPrintDebug: boolean | 'verbose'
50
- ): Record<string, any> {
86
+ ): Promise<Record<string, any>> {
51
87
  const bindings: Record<string, Binding> = scope.getAllBindings() as any
52
88
  const ret: Record<string, any> = {}
53
89
 
54
- if (shouldPrintDebug) {
90
+ if (
91
+ shouldPrintDebug
92
+ ) {
55
93
  // prettier-ignore
56
- console.log(' ', Object.keys(bindings).length, 'variables in scope')
94
+ // console.log(' ', Object.keys(bindings).length, 'variables in scope')
57
95
  // .map(x => bindings[x].identifier?.name).join(', ')
58
96
  }
59
97
 
@@ -70,21 +108,33 @@ export function getStaticBindingsForScope(
70
108
  const moduleName = resolveImportPath(sourcePath, importPath)
71
109
  const isOnWhitelist = whitelist.some((test) => moduleName.endsWith(test))
72
110
  if (!isOnWhitelist) continue
73
- const src = importModule(moduleName)
74
- if (!src) continue
75
- for (const specifier of node.specifiers) {
76
- if (t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported)) {
77
- if (typeof src[specifier.imported.name] !== 'undefined') {
78
- const val = src[specifier.local.name]
79
- ret[specifier.local.name] = val
111
+ try {
112
+ const src = await importModule(moduleName)
113
+ if (!src) continue
114
+ for (const specifier of node.specifiers) {
115
+ if (t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported)) {
116
+ if (typeof src[specifier.imported.name] !== 'undefined') {
117
+ const val = src[specifier.local.name]
118
+ ret[specifier.local.name] = val
119
+ }
80
120
  }
81
121
  }
122
+ } catch (err: any) {
123
+ if (shouldPrintDebug) {
124
+ // eslint-disable-next-line no-console
125
+ console.warn(
126
+ ` | Skipping partial evaluation of constant file: ${moduleName} (DEBUG=tamagui for more)`
127
+ )
128
+ } else if (process.env.DEBUG?.startsWith('tamagui')) {
129
+ // eslint-disable-next-line no-console
130
+ console.log(`Error in partial evaluation`, err.message, err.stack)
131
+ }
82
132
  }
83
133
  }
84
134
  }
85
135
 
86
136
  if (!bindingCache) {
87
- throw new Error('bindingCache is a required param')
137
+ throw new Error('BindingCache is a required param')
88
138
  }
89
139
 
90
140
  for (const k in bindings) {
@@ -105,8 +155,9 @@ export function getStaticBindingsForScope(
105
155
  if (isOnWhitelist) {
106
156
  const src = importModule(moduleName)
107
157
  if (!src) {
158
+ // eslint-disable-next-line no-console
108
159
  console.log(
109
- `⚠️ missing file ${moduleName} via ${sourcePath} import ${sourceModule.sourceModule}?`
160
+ ` | ⚠️ Missing file ${moduleName} via ${sourcePath} import ${sourceModule.sourceModule}?`
110
161
  )
111
162
  return {}
112
163
  }
@@ -115,19 +166,13 @@ export function getStaticBindingsForScope(
115
166
  ret[k] = src[sourceModule.imported]
116
167
  }
117
168
  } else {
118
- // crude esmodule check
119
- // TODO: make sure this actually works
120
- // if (src && src.__esModule) {
121
- // ret[k] = src.default
122
- // } else {
123
169
  ret[k] = src
124
- // }
125
170
  }
126
171
  }
127
172
  continue
128
173
  }
129
174
 
130
- const { parent, parentPath } = binding.path
175
+ const { parent } = binding.path
131
176
 
132
177
  if (!t.isVariableDeclaration(parent) || parent.kind !== 'const') {
133
178
  continue
@@ -144,11 +189,13 @@ export function getStaticBindingsForScope(
144
189
 
145
190
  // missing start/end will break caching
146
191
  if (typeof dec.id.start !== 'number' || typeof dec.id.end !== 'number') {
192
+ // eslint-disable-next-line no-console
147
193
  console.error('dec.id.start/end is not a number')
148
194
  continue
149
195
  }
150
196
 
151
197
  if (!t.isIdentifier(dec.id)) {
198
+ // eslint-disable-next-line no-console
152
199
  console.error('dec is not an identifier')
153
200
  continue
154
201
  }
@@ -156,12 +203,12 @@ export function getStaticBindingsForScope(
156
203
  const cacheKey = `${dec.id.name}_${dec.id.start}-${dec.id.end}`
157
204
 
158
205
  // retrieve value from cache
159
- if (bindingCache.hasOwnProperty(cacheKey)) {
206
+ if (Object.hasOwnProperty.call(bindingCache, cacheKey)) {
160
207
  ret[k] = bindingCache[cacheKey]
161
208
  continue
162
209
  }
163
210
  // retrieve value from cache
164
- if (bindingCache.hasOwnProperty(cacheKey)) {
211
+ if (Object.hasOwnProperty.call(bindingCache, cacheKey)) {
165
212
  ret[k] = bindingCache[cacheKey]
166
213
  continue
167
214
  }
@@ -171,11 +218,8 @@ export function getStaticBindingsForScope(
171
218
  ret[k] = evaluateAstNode(dec.init, undefined, shouldPrintDebug)
172
219
  bindingCache[cacheKey] = ret[k]
173
220
  continue
174
- } catch (e) {
221
+ } catch {
175
222
  // skip
176
- // if (shouldPrintDebug) {
177
- // console.error('[🐇] cant eval, skipping', cacheKey) //, e.message)
178
- // }
179
223
  }
180
224
  }
181
225
 
@@ -0,0 +1,17 @@
1
+ process.on('message', (path) => {
2
+ if (typeof path !== 'string') {
3
+ throw new Error(`Not a string: ${path}`)
4
+ }
5
+ try {
6
+ const out = require(path)
7
+ process.send?.(JSON.stringify(out))
8
+ } catch (err) {
9
+ if (err instanceof Error) {
10
+ process.send?.(`-${err.message}\n${err.stack}`)
11
+ } else {
12
+ process.send?.(`-${err}`)
13
+ }
14
+ }
15
+ })
16
+
17
+ setInterval(() => {}, 1000)