signalium 1.2.2 → 2.0.1

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 (388) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/{build/transform.js → config.js} +1 -5
  3. package/{build/react.js → debug.js} +1 -5
  4. package/dist/cjs/config.d.ts +1 -21
  5. package/dist/cjs/config.d.ts.map +1 -1
  6. package/dist/cjs/config.js +3 -36
  7. package/dist/cjs/config.js.map +1 -1
  8. package/dist/cjs/debug.d.ts +1 -1
  9. package/dist/cjs/debug.d.ts.map +1 -1
  10. package/dist/cjs/debug.js +1 -1
  11. package/dist/cjs/debug.js.map +1 -1
  12. package/dist/cjs/index.d.ts +5 -6
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/index.js +17 -23
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/internals/async.d.ts +24 -19
  17. package/dist/cjs/internals/async.d.ts.map +1 -1
  18. package/dist/cjs/internals/async.js +264 -137
  19. package/dist/cjs/internals/async.js.map +1 -1
  20. package/dist/cjs/internals/callback.d.ts +13 -0
  21. package/dist/cjs/internals/callback.d.ts.map +1 -0
  22. package/dist/cjs/internals/callback.js +73 -0
  23. package/dist/cjs/internals/callback.js.map +1 -0
  24. package/dist/cjs/internals/config.d.ts +7 -0
  25. package/dist/cjs/internals/config.d.ts.map +1 -0
  26. package/dist/cjs/internals/config.js +17 -0
  27. package/dist/cjs/internals/config.js.map +1 -0
  28. package/dist/cjs/internals/consumer.d.ts +3 -3
  29. package/dist/cjs/internals/consumer.d.ts.map +1 -1
  30. package/dist/cjs/internals/consumer.js.map +1 -1
  31. package/dist/cjs/internals/contexts.d.ts +15 -14
  32. package/dist/cjs/internals/contexts.d.ts.map +1 -1
  33. package/dist/cjs/internals/contexts.js +52 -52
  34. package/dist/cjs/internals/contexts.js.map +1 -1
  35. package/dist/cjs/internals/core-api.d.ts +14 -0
  36. package/dist/cjs/internals/core-api.d.ts.map +1 -0
  37. package/dist/cjs/internals/core-api.js +83 -0
  38. package/dist/cjs/internals/core-api.js.map +1 -0
  39. package/dist/cjs/internals/dirty.d.ts +3 -3
  40. package/dist/cjs/internals/dirty.d.ts.map +1 -1
  41. package/dist/cjs/internals/dirty.js +13 -13
  42. package/dist/cjs/internals/dirty.js.map +1 -1
  43. package/dist/cjs/internals/edge.d.ts +5 -5
  44. package/dist/cjs/internals/edge.d.ts.map +1 -1
  45. package/dist/cjs/internals/edge.js.map +1 -1
  46. package/dist/cjs/internals/generators.d.ts +5 -0
  47. package/dist/cjs/internals/generators.d.ts.map +1 -0
  48. package/dist/cjs/internals/generators.js +83 -0
  49. package/dist/cjs/internals/generators.js.map +1 -0
  50. package/dist/cjs/internals/get.d.ts +5 -8
  51. package/dist/cjs/internals/get.d.ts.map +1 -1
  52. package/dist/cjs/internals/get.js +48 -107
  53. package/dist/cjs/internals/get.js.map +1 -1
  54. package/dist/cjs/internals/reactive.d.ts +77 -0
  55. package/dist/cjs/internals/reactive.d.ts.map +1 -0
  56. package/dist/cjs/internals/{derived.js → reactive.js} +45 -33
  57. package/dist/cjs/internals/reactive.js.map +1 -0
  58. package/dist/cjs/internals/scheduling.d.ts +7 -7
  59. package/dist/cjs/internals/scheduling.d.ts.map +1 -1
  60. package/dist/cjs/internals/scheduling.js +9 -9
  61. package/dist/cjs/internals/scheduling.js.map +1 -1
  62. package/dist/cjs/internals/signal.d.ts +20 -0
  63. package/dist/cjs/internals/signal.d.ts.map +1 -0
  64. package/dist/cjs/internals/{state.js → signal.js} +31 -27
  65. package/dist/cjs/internals/signal.js.map +1 -0
  66. package/dist/{esm → cjs/internals}/trace.d.ts +1 -1
  67. package/dist/cjs/internals/trace.d.ts.map +1 -0
  68. package/dist/cjs/{trace.js → internals/trace.js} +1 -1
  69. package/dist/cjs/internals/trace.js.map +1 -0
  70. package/dist/cjs/internals/utils/equals.d.ts +4 -4
  71. package/dist/cjs/internals/utils/equals.d.ts.map +1 -1
  72. package/dist/cjs/internals/utils/equals.js.map +1 -1
  73. package/dist/cjs/internals/utils/type-utils.d.ts +0 -2
  74. package/dist/cjs/internals/utils/type-utils.d.ts.map +1 -1
  75. package/dist/cjs/internals/utils/type-utils.js +0 -5
  76. package/dist/cjs/internals/utils/type-utils.js.map +1 -1
  77. package/dist/cjs/internals/watch.d.ts +4 -0
  78. package/dist/cjs/internals/watch.d.ts.map +1 -0
  79. package/dist/cjs/internals/{connect.js → watch.js} +7 -7
  80. package/dist/cjs/internals/watch.js.map +1 -0
  81. package/dist/cjs/internals/weakref.d.ts.map +1 -0
  82. package/dist/cjs/internals/weakref.js.map +1 -0
  83. package/dist/cjs/react/component.d.ts +2 -0
  84. package/dist/cjs/react/component.d.ts.map +1 -0
  85. package/dist/cjs/react/component.js +40 -0
  86. package/dist/cjs/react/component.js.map +1 -0
  87. package/dist/cjs/react/context.d.ts +2 -1
  88. package/dist/cjs/react/context.d.ts.map +1 -1
  89. package/dist/cjs/react/context.js +10 -5
  90. package/dist/cjs/react/context.js.map +1 -1
  91. package/dist/cjs/react/index.d.ts +4 -4
  92. package/dist/cjs/react/index.d.ts.map +1 -1
  93. package/dist/cjs/react/index.js +11 -8
  94. package/dist/cjs/react/index.js.map +1 -1
  95. package/dist/cjs/react/provider.d.ts.map +1 -1
  96. package/dist/cjs/react/provider.js +1 -1
  97. package/dist/cjs/react/provider.js.map +1 -1
  98. package/dist/cjs/react/rendering.d.ts +0 -6
  99. package/dist/cjs/react/rendering.d.ts.map +1 -1
  100. package/dist/cjs/react/rendering.js +1 -19
  101. package/dist/cjs/react/rendering.js.map +1 -1
  102. package/dist/cjs/react/use-reactive.d.ts +7 -0
  103. package/dist/cjs/react/use-reactive.d.ts.map +1 -0
  104. package/dist/cjs/react/use-reactive.js +67 -0
  105. package/dist/cjs/react/use-reactive.js.map +1 -0
  106. package/dist/cjs/react/use-signal.d.ts +3 -0
  107. package/dist/cjs/react/use-signal.d.ts.map +1 -0
  108. package/dist/cjs/react/{state.js → use-signal.js} +5 -5
  109. package/dist/cjs/react/use-signal.js.map +1 -0
  110. package/dist/cjs/{transform.d.ts → transform/async.d.ts} +1 -1
  111. package/dist/cjs/transform/async.d.ts.map +1 -0
  112. package/dist/cjs/{transform.js → transform/async.js} +22 -9
  113. package/dist/cjs/transform/async.js.map +1 -0
  114. package/dist/cjs/transform/callback.d.ts +6 -0
  115. package/dist/cjs/transform/callback.d.ts.map +1 -0
  116. package/dist/cjs/transform/callback.js +259 -0
  117. package/dist/cjs/transform/callback.js.map +1 -0
  118. package/dist/cjs/transform/index.d.ts +5 -0
  119. package/dist/cjs/transform/index.d.ts.map +1 -0
  120. package/dist/cjs/transform/index.js +12 -0
  121. package/dist/cjs/transform/index.js.map +1 -0
  122. package/dist/cjs/transform/preset.d.ts +7 -0
  123. package/dist/cjs/transform/preset.d.ts.map +1 -0
  124. package/dist/cjs/transform/preset.js +20 -0
  125. package/dist/cjs/transform/preset.js.map +1 -0
  126. package/dist/cjs/transform/promise.d.ts +6 -0
  127. package/dist/cjs/transform/promise.d.ts.map +1 -0
  128. package/dist/cjs/transform/promise.js +129 -0
  129. package/dist/cjs/transform/promise.js.map +1 -0
  130. package/dist/cjs/types.d.ts +44 -63
  131. package/dist/cjs/types.d.ts.map +1 -1
  132. package/dist/cjs/utils.d.ts +2 -0
  133. package/dist/cjs/utils.d.ts.map +1 -0
  134. package/dist/cjs/utils.js +7 -0
  135. package/dist/cjs/utils.js.map +1 -0
  136. package/dist/esm/config.d.ts +1 -21
  137. package/dist/esm/config.d.ts.map +1 -1
  138. package/dist/esm/config.js +1 -29
  139. package/dist/esm/config.js.map +1 -1
  140. package/dist/esm/debug.d.ts +1 -1
  141. package/dist/esm/debug.d.ts.map +1 -1
  142. package/dist/esm/debug.js +1 -1
  143. package/dist/esm/debug.js.map +1 -1
  144. package/dist/esm/index.d.ts +5 -6
  145. package/dist/esm/index.d.ts.map +1 -1
  146. package/dist/esm/index.js +5 -6
  147. package/dist/esm/index.js.map +1 -1
  148. package/dist/esm/internals/async.d.ts +24 -19
  149. package/dist/esm/internals/async.d.ts.map +1 -1
  150. package/dist/esm/internals/async.js +253 -128
  151. package/dist/esm/internals/async.js.map +1 -1
  152. package/dist/esm/internals/callback.d.ts +13 -0
  153. package/dist/esm/internals/callback.d.ts.map +1 -0
  154. package/dist/esm/internals/callback.js +67 -0
  155. package/dist/esm/internals/callback.js.map +1 -0
  156. package/dist/esm/internals/config.d.ts +7 -0
  157. package/dist/esm/internals/config.d.ts.map +1 -0
  158. package/dist/esm/internals/config.js +11 -0
  159. package/dist/esm/internals/config.js.map +1 -0
  160. package/dist/esm/internals/consumer.d.ts +3 -3
  161. package/dist/esm/internals/consumer.d.ts.map +1 -1
  162. package/dist/esm/internals/consumer.js.map +1 -1
  163. package/dist/esm/internals/contexts.d.ts +15 -14
  164. package/dist/esm/internals/contexts.d.ts.map +1 -1
  165. package/dist/esm/internals/contexts.js +46 -46
  166. package/dist/esm/internals/contexts.js.map +1 -1
  167. package/dist/esm/internals/core-api.d.ts +14 -0
  168. package/dist/esm/internals/core-api.d.ts.map +1 -0
  169. package/dist/esm/internals/core-api.js +74 -0
  170. package/dist/esm/internals/core-api.js.map +1 -0
  171. package/dist/esm/internals/dirty.d.ts +3 -3
  172. package/dist/esm/internals/dirty.d.ts.map +1 -1
  173. package/dist/esm/internals/dirty.js +12 -12
  174. package/dist/esm/internals/dirty.js.map +1 -1
  175. package/dist/esm/internals/edge.d.ts +5 -5
  176. package/dist/esm/internals/edge.d.ts.map +1 -1
  177. package/dist/esm/internals/edge.js.map +1 -1
  178. package/dist/esm/internals/generators.d.ts +5 -0
  179. package/dist/esm/internals/generators.d.ts.map +1 -0
  180. package/dist/esm/internals/generators.js +79 -0
  181. package/dist/esm/internals/generators.js.map +1 -0
  182. package/dist/esm/internals/get.d.ts +5 -8
  183. package/dist/esm/internals/get.d.ts.map +1 -1
  184. package/dist/esm/internals/get.js +43 -100
  185. package/dist/esm/internals/get.js.map +1 -1
  186. package/dist/esm/internals/reactive.d.ts +77 -0
  187. package/dist/esm/internals/reactive.d.ts.map +1 -0
  188. package/dist/esm/internals/{derived.js → reactive.js} +41 -29
  189. package/dist/esm/internals/reactive.js.map +1 -0
  190. package/dist/esm/internals/scheduling.d.ts +7 -7
  191. package/dist/esm/internals/scheduling.d.ts.map +1 -1
  192. package/dist/esm/internals/scheduling.js +6 -6
  193. package/dist/esm/internals/scheduling.js.map +1 -1
  194. package/dist/esm/internals/signal.d.ts +20 -0
  195. package/dist/esm/internals/signal.d.ts.map +1 -0
  196. package/dist/esm/internals/{state.js → signal.js} +25 -22
  197. package/dist/esm/internals/signal.js.map +1 -0
  198. package/dist/{cjs → esm/internals}/trace.d.ts +1 -1
  199. package/dist/esm/internals/trace.d.ts.map +1 -0
  200. package/dist/esm/{trace.js → internals/trace.js} +1 -1
  201. package/dist/esm/internals/trace.js.map +1 -0
  202. package/dist/esm/internals/utils/equals.d.ts +4 -4
  203. package/dist/esm/internals/utils/equals.d.ts.map +1 -1
  204. package/dist/esm/internals/utils/equals.js.map +1 -1
  205. package/dist/esm/internals/utils/type-utils.d.ts +0 -2
  206. package/dist/esm/internals/utils/type-utils.d.ts.map +1 -1
  207. package/dist/esm/internals/utils/type-utils.js +0 -4
  208. package/dist/esm/internals/utils/type-utils.js.map +1 -1
  209. package/dist/esm/internals/watch.d.ts +4 -0
  210. package/dist/esm/internals/watch.d.ts.map +1 -0
  211. package/dist/esm/internals/{connect.js → watch.js} +7 -7
  212. package/dist/esm/internals/watch.js.map +1 -0
  213. package/dist/esm/internals/weakref.d.ts.map +1 -0
  214. package/dist/esm/internals/weakref.js.map +1 -0
  215. package/dist/esm/react/component.d.ts +2 -0
  216. package/dist/esm/react/component.d.ts.map +1 -0
  217. package/dist/esm/react/component.js +37 -0
  218. package/dist/esm/react/component.js.map +1 -0
  219. package/dist/esm/react/context.d.ts +2 -1
  220. package/dist/esm/react/context.d.ts.map +1 -1
  221. package/dist/esm/react/context.js +10 -6
  222. package/dist/esm/react/context.js.map +1 -1
  223. package/dist/esm/react/index.d.ts +4 -4
  224. package/dist/esm/react/index.d.ts.map +1 -1
  225. package/dist/esm/react/index.js +4 -4
  226. package/dist/esm/react/index.js.map +1 -1
  227. package/dist/esm/react/provider.d.ts.map +1 -1
  228. package/dist/esm/react/provider.js +2 -2
  229. package/dist/esm/react/provider.js.map +1 -1
  230. package/dist/esm/react/rendering.d.ts +0 -6
  231. package/dist/esm/react/rendering.d.ts.map +1 -1
  232. package/dist/esm/react/rendering.js +1 -17
  233. package/dist/esm/react/rendering.js.map +1 -1
  234. package/dist/esm/react/use-reactive.d.ts +7 -0
  235. package/dist/esm/react/use-reactive.d.ts.map +1 -0
  236. package/dist/esm/react/use-reactive.js +64 -0
  237. package/dist/esm/react/use-reactive.js.map +1 -0
  238. package/dist/esm/react/use-signal.d.ts +3 -0
  239. package/dist/esm/react/use-signal.d.ts.map +1 -0
  240. package/dist/esm/react/use-signal.js +10 -0
  241. package/dist/esm/react/use-signal.js.map +1 -0
  242. package/dist/esm/{transform.d.ts → transform/async.d.ts} +1 -1
  243. package/dist/esm/transform/async.d.ts.map +1 -0
  244. package/dist/esm/{transform.js → transform/async.js} +22 -9
  245. package/dist/esm/transform/async.js.map +1 -0
  246. package/dist/esm/transform/callback.d.ts +6 -0
  247. package/dist/esm/transform/callback.d.ts.map +1 -0
  248. package/dist/esm/transform/callback.js +256 -0
  249. package/dist/esm/transform/callback.js.map +1 -0
  250. package/dist/esm/transform/index.d.ts +5 -0
  251. package/dist/esm/transform/index.d.ts.map +1 -0
  252. package/dist/esm/transform/index.js +5 -0
  253. package/dist/esm/transform/index.js.map +1 -0
  254. package/dist/esm/transform/preset.d.ts +7 -0
  255. package/dist/esm/transform/preset.d.ts.map +1 -0
  256. package/dist/esm/transform/preset.js +17 -0
  257. package/dist/esm/transform/preset.js.map +1 -0
  258. package/dist/esm/transform/promise.d.ts +6 -0
  259. package/dist/esm/transform/promise.d.ts.map +1 -0
  260. package/dist/esm/transform/promise.js +126 -0
  261. package/dist/esm/transform/promise.js.map +1 -0
  262. package/dist/esm/types.d.ts +44 -63
  263. package/dist/esm/types.d.ts.map +1 -1
  264. package/dist/esm/utils.d.ts +2 -0
  265. package/dist/esm/utils.d.ts.map +1 -0
  266. package/dist/esm/utils.js +2 -0
  267. package/dist/esm/utils.js.map +1 -0
  268. package/package.json +56 -58
  269. package/react.js +0 -4
  270. package/transform.js +1 -5
  271. package/utils.js +15 -0
  272. package/.turbo/turbo-build.log +0 -12
  273. package/dist/cjs/hooks.d.ts +0 -16
  274. package/dist/cjs/hooks.d.ts.map +0 -1
  275. package/dist/cjs/hooks.js +0 -44
  276. package/dist/cjs/hooks.js.map +0 -1
  277. package/dist/cjs/internals/connect.d.ts +0 -4
  278. package/dist/cjs/internals/connect.d.ts.map +0 -1
  279. package/dist/cjs/internals/connect.js.map +0 -1
  280. package/dist/cjs/internals/derived.d.ts +0 -76
  281. package/dist/cjs/internals/derived.d.ts.map +0 -1
  282. package/dist/cjs/internals/derived.js.map +0 -1
  283. package/dist/cjs/internals/state.d.ts +0 -18
  284. package/dist/cjs/internals/state.d.ts.map +0 -1
  285. package/dist/cjs/internals/state.js.map +0 -1
  286. package/dist/cjs/react/setup.d.ts +0 -2
  287. package/dist/cjs/react/setup.d.ts.map +0 -1
  288. package/dist/cjs/react/setup.js +0 -14
  289. package/dist/cjs/react/setup.js.map +0 -1
  290. package/dist/cjs/react/signal-value.d.ts +0 -6
  291. package/dist/cjs/react/signal-value.d.ts.map +0 -1
  292. package/dist/cjs/react/signal-value.js +0 -37
  293. package/dist/cjs/react/signal-value.js.map +0 -1
  294. package/dist/cjs/react/state.d.ts +0 -3
  295. package/dist/cjs/react/state.d.ts.map +0 -1
  296. package/dist/cjs/react/state.js.map +0 -1
  297. package/dist/cjs/trace.d.ts.map +0 -1
  298. package/dist/cjs/trace.js.map +0 -1
  299. package/dist/cjs/transform.d.ts.map +0 -1
  300. package/dist/cjs/transform.js.map +0 -1
  301. package/dist/cjs/weakref.d.ts.map +0 -1
  302. package/dist/cjs/weakref.js.map +0 -1
  303. package/dist/esm/hooks.d.ts +0 -16
  304. package/dist/esm/hooks.d.ts.map +0 -1
  305. package/dist/esm/hooks.js +0 -37
  306. package/dist/esm/hooks.js.map +0 -1
  307. package/dist/esm/internals/connect.d.ts +0 -4
  308. package/dist/esm/internals/connect.d.ts.map +0 -1
  309. package/dist/esm/internals/connect.js.map +0 -1
  310. package/dist/esm/internals/derived.d.ts +0 -76
  311. package/dist/esm/internals/derived.d.ts.map +0 -1
  312. package/dist/esm/internals/derived.js.map +0 -1
  313. package/dist/esm/internals/state.d.ts +0 -18
  314. package/dist/esm/internals/state.d.ts.map +0 -1
  315. package/dist/esm/internals/state.js.map +0 -1
  316. package/dist/esm/react/setup.d.ts +0 -2
  317. package/dist/esm/react/setup.d.ts.map +0 -1
  318. package/dist/esm/react/setup.js +0 -11
  319. package/dist/esm/react/setup.js.map +0 -1
  320. package/dist/esm/react/signal-value.d.ts +0 -6
  321. package/dist/esm/react/signal-value.d.ts.map +0 -1
  322. package/dist/esm/react/signal-value.js +0 -33
  323. package/dist/esm/react/signal-value.js.map +0 -1
  324. package/dist/esm/react/state.d.ts +0 -3
  325. package/dist/esm/react/state.d.ts.map +0 -1
  326. package/dist/esm/react/state.js +0 -10
  327. package/dist/esm/react/state.js.map +0 -1
  328. package/dist/esm/trace.d.ts.map +0 -1
  329. package/dist/esm/trace.js.map +0 -1
  330. package/dist/esm/transform.d.ts.map +0 -1
  331. package/dist/esm/transform.js.map +0 -1
  332. package/dist/esm/weakref.d.ts.map +0 -1
  333. package/dist/esm/weakref.js.map +0 -1
  334. package/src/__tests__/__snapshots__/context.test.ts.snap +0 -2101
  335. package/src/__tests__/__snapshots__/nesting.test.ts.snap +0 -16201
  336. package/src/__tests__/__snapshots__/params-and-state.test.ts.snap +0 -1879
  337. package/src/__tests__/async-task.test.ts +0 -327
  338. package/src/__tests__/context.test.ts +0 -619
  339. package/src/__tests__/gc.test.ts +0 -256
  340. package/src/__tests__/nesting.test.ts +0 -298
  341. package/src/__tests__/params-and-state.test.ts +0 -230
  342. package/src/__tests__/reactive-async.test.ts +0 -548
  343. package/src/__tests__/reactive-sync.test.ts +0 -130
  344. package/src/__tests__/subscription.test.ts +0 -510
  345. package/src/__tests__/utils/async.ts +0 -6
  346. package/src/__tests__/utils/instrumented-hooks.ts +0 -410
  347. package/src/__tests__/utils/permute.ts +0 -85
  348. package/src/config.ts +0 -54
  349. package/src/debug.ts +0 -14
  350. package/src/hooks.ts +0 -82
  351. package/src/index.ts +0 -21
  352. package/src/internals/async.ts +0 -563
  353. package/src/internals/connect.ts +0 -49
  354. package/src/internals/consumer.ts +0 -13
  355. package/src/internals/contexts.ts +0 -177
  356. package/src/internals/derived.ts +0 -217
  357. package/src/internals/dirty.ts +0 -91
  358. package/src/internals/edge.ts +0 -109
  359. package/src/internals/get.ts +0 -298
  360. package/src/internals/scheduling.ts +0 -160
  361. package/src/internals/state.ts +0 -111
  362. package/src/internals/utils/debug-name.ts +0 -14
  363. package/src/internals/utils/equals.ts +0 -12
  364. package/src/internals/utils/hash.ts +0 -221
  365. package/src/internals/utils/stringify.ts +0 -57
  366. package/src/internals/utils/type-utils.ts +0 -19
  367. package/src/react/__tests__/async.test.tsx +0 -704
  368. package/src/react/__tests__/basic.test.tsx +0 -95
  369. package/src/react/__tests__/contexts.test.tsx +0 -181
  370. package/src/react/__tests__/subscriptions.test.tsx +0 -49
  371. package/src/react/__tests__/utils.tsx +0 -40
  372. package/src/react/context.ts +0 -14
  373. package/src/react/index.ts +0 -6
  374. package/src/react/provider.tsx +0 -18
  375. package/src/react/rendering.ts +0 -43
  376. package/src/react/setup.ts +0 -11
  377. package/src/react/signal-value.ts +0 -50
  378. package/src/react/state.ts +0 -13
  379. package/src/trace.ts +0 -454
  380. package/src/transform.ts +0 -113
  381. package/src/types.ts +0 -115
  382. package/src/weakref.ts +0 -9
  383. package/tsconfig.json +0 -13
  384. package/vitest.workspace.ts +0 -61
  385. /package/dist/cjs/{weakref.d.ts → internals/weakref.d.ts} +0 -0
  386. /package/dist/cjs/{weakref.js → internals/weakref.js} +0 -0
  387. /package/dist/esm/{weakref.d.ts → internals/weakref.d.ts} +0 -0
  388. /package/dist/esm/{weakref.js → internals/weakref.js} +0 -0
@@ -1,327 +0,0 @@
1
- import { describe, expect, test } from 'vitest';
2
- import { task, reactive } from './utils/instrumented-hooks.js';
3
- import { nextTick } from './utils/async.js';
4
-
5
- describe('async tasks', () => {
6
- test('Basic async task works', async () => {
7
- let taskCount = 0;
8
- const getC = reactive((a: number, b: number) => {
9
- return task(async () => {
10
- taskCount++;
11
- return a + b;
12
- });
13
- });
14
-
15
- // First set of args
16
- const task1 = getC(1, 2);
17
- expect(task1.isPending).toBe(false);
18
- expect(task1.value).toBe(undefined);
19
- expect(taskCount).toEqual(0);
20
-
21
- await nextTick();
22
- expect(task1.isPending).toBe(false);
23
- expect(task1.value).toBe(undefined);
24
- expect(taskCount).toEqual(0);
25
-
26
- const result1 = task1.run();
27
- expect(task1.isPending).toBe(true);
28
- expect(task1.value).toBe(undefined);
29
-
30
- expect(await result1).toBe(3);
31
- expect(task1.isResolved).toBe(true);
32
- expect(task1.value).toBe(3);
33
- expect(taskCount).toEqual(1);
34
-
35
- const result2 = task1.run();
36
- expect(task1.isPending).toBe(true);
37
- expect(task1.value).toBe(3);
38
- expect(taskCount).toEqual(2);
39
-
40
- expect(await result2).toBe(3);
41
- expect(task1.isResolved).toBe(true);
42
- expect(task1.value).toBe(3);
43
- expect(taskCount).toEqual(2);
44
-
45
- // Second set of args
46
- const task2 = getC(2, 2);
47
- expect(task2.isPending).toBe(false);
48
- expect(task2.value).toBe(undefined);
49
- expect(taskCount).toEqual(2);
50
-
51
- await nextTick();
52
- expect(task2.isPending).toBe(false);
53
- expect(task2.value).toBe(undefined);
54
- expect(taskCount).toEqual(2);
55
-
56
- const result3 = task2.run();
57
- expect(task2.isPending).toBe(true);
58
- expect(task2.value).toBe(undefined);
59
- expect(taskCount).toEqual(3);
60
-
61
- expect(await result3).toBe(4);
62
- expect(task2.isResolved).toBe(true);
63
- expect(task2.value).toBe(4);
64
- expect(taskCount).toEqual(3);
65
-
66
- const result4 = task2.run();
67
- expect(task2.isPending).toBe(true);
68
- expect(task2.value).toBe(4);
69
- expect(taskCount).toEqual(4);
70
-
71
- expect(await result4).toBe(4);
72
- expect(task2.isResolved).toBe(true);
73
- expect(task2.value).toBe(4);
74
- expect(taskCount).toEqual(4);
75
- });
76
-
77
- test('Can run separate tasks separately', async () => {
78
- const getC = reactive((a: number, b: number) => {
79
- return task(async () => {
80
- return a + b;
81
- });
82
- });
83
-
84
- const task1 = getC(1, 2);
85
- const task2 = getC(2, 2);
86
-
87
- expect(task1.isPending).toBe(false);
88
- expect(task1.value).toBe(undefined);
89
- expect(task2.isPending).toBe(false);
90
- expect(task2.value).toBe(undefined);
91
-
92
- await nextTick();
93
- expect(task1.isPending).toBe(false);
94
- expect(task1.value).toBe(undefined);
95
- expect(task2.isPending).toBe(false);
96
- expect(task2.value).toBe(undefined);
97
-
98
- const result1 = task1.run();
99
- expect(task1.isPending).toBe(true);
100
- expect(task1.value).toBe(undefined);
101
- expect(task2.isPending).toBe(false);
102
- expect(task2.value).toBe(undefined);
103
-
104
- expect(await result1).toBe(3);
105
- expect(task1.isResolved).toBe(true);
106
- expect(task1.value).toBe(3);
107
- expect(task2.isPending).toBe(false);
108
- expect(task2.value).toBe(undefined);
109
-
110
- const result2 = task2.run();
111
- expect(task2.isPending).toBe(true);
112
- expect(task2.value).toBe(undefined);
113
- expect(task1.isPending).toBe(false);
114
- expect(task1.value).toBe(3);
115
-
116
- expect(await result2).toBe(4);
117
- expect(task1.isPending).toBe(false);
118
- expect(task1.value).toBe(3);
119
- expect(task2.isResolved).toBe(true);
120
- expect(task2.value).toBe(4);
121
- });
122
-
123
- test('Tasks do not notify when the result is not used in a computed', async () => {
124
- const getC = reactive((a: number, b: number) => {
125
- return task(async () => {
126
- return a + b;
127
- });
128
- });
129
-
130
- const computed1 = reactive(() => {
131
- return getC(1, 2);
132
- });
133
- const computed2 = reactive(() => {
134
- return getC(2, 2);
135
- });
136
-
137
- const task1 = computed1();
138
- const task2 = computed2();
139
-
140
- expect(task1.isPending).toBe(false);
141
- expect(task1.value).toBe(undefined);
142
- expect(task2.isPending).toBe(false);
143
- expect(task2.value).toBe(undefined);
144
- expect(computed1).toHaveCounts({ compute: 1 });
145
- expect(computed2).toHaveCounts({ compute: 1 });
146
-
147
- await nextTick();
148
- expect(task1.isPending).toBe(false);
149
- expect(task1.value).toBe(undefined);
150
- expect(task2.isPending).toBe(false);
151
- expect(task2.value).toBe(undefined);
152
- expect(computed1).toHaveCounts({ compute: 1 });
153
- expect(computed2).toHaveCounts({ compute: 1 });
154
-
155
- const result1 = task1.run();
156
-
157
- computed1();
158
- computed2();
159
-
160
- expect(task1.isPending).toBe(true);
161
- expect(task1.value).toBe(undefined);
162
- expect(task2.isPending).toBe(false);
163
- expect(task2.value).toBe(undefined);
164
- expect(computed1).toHaveCounts({ compute: 1 });
165
- expect(computed2).toHaveCounts({ compute: 1 });
166
-
167
- computed1();
168
- computed2();
169
-
170
- expect(await result1).toBe(3);
171
- expect(task1.isResolved).toBe(true);
172
- expect(task1.value).toBe(3);
173
- expect(task2.isPending).toBe(false);
174
- expect(task2.value).toBe(undefined);
175
-
176
- computed1();
177
- computed2();
178
-
179
- expect(computed1).toHaveCounts({ compute: 1 });
180
- expect(computed2).toHaveCounts({ compute: 1 });
181
-
182
- const result2 = task2.run();
183
- expect(task2.isPending).toBe(true);
184
- expect(task2.value).toBe(undefined);
185
- expect(task1.isPending).toBe(false);
186
- expect(task1.value).toBe(3);
187
- expect(getC.withParams(1, 2)).toHaveCounts({ compute: 1 });
188
- expect(getC.withParams(2, 2)).toHaveCounts({ compute: 1 });
189
-
190
- computed1();
191
- computed2();
192
-
193
- expect(computed1).toHaveCounts({ compute: 1 });
194
- expect(computed2).toHaveCounts({ compute: 1 });
195
-
196
- expect(await result2).toBe(4);
197
- expect(task1.isPending).toBe(false);
198
- expect(task1.value).toBe(3);
199
- expect(task2.isResolved).toBe(true);
200
- expect(task2.value).toBe(4);
201
- expect(getC.withParams(1, 2)).toHaveCounts({ compute: 1 });
202
- expect(getC.withParams(2, 2)).toHaveCounts({ compute: 1 });
203
-
204
- computed1();
205
- computed2();
206
-
207
- expect(computed1).toHaveCounts({ compute: 1 });
208
- expect(computed2).toHaveCounts({ compute: 1 });
209
- });
210
-
211
- test('Basic async task works with run args', async () => {
212
- const getC = reactive((a: number, b: number) => {
213
- return task(async (c: number, d: number) => {
214
- return a + b + c + d;
215
- });
216
- });
217
-
218
- // First set of args
219
- const task1 = getC(1, 2);
220
- expect(task1.isPending).toBe(false);
221
- expect(task1.value).toBe(undefined);
222
-
223
- await nextTick();
224
- expect(task1.isPending).toBe(false);
225
- expect(task1.value).toBe(undefined);
226
-
227
- const result1 = task1.run(3, 4);
228
- expect(task1.isPending).toBe(true);
229
- expect(task1.value).toBe(undefined);
230
-
231
- expect(await result1).toBe(10);
232
- expect(task1.isResolved).toBe(true);
233
- expect(task1.value).toBe(10);
234
-
235
- const result2 = task1.run(5, 6);
236
- expect(task1.isPending).toBe(true);
237
- expect(task1.value).toBe(10);
238
-
239
- expect(await result2).toBe(14);
240
- expect(task1.isResolved).toBe(true);
241
- expect(task1.value).toBe(14);
242
-
243
- // Second set of args
244
- const task2 = getC(2, 2);
245
- expect(task2.isPending).toBe(false);
246
- expect(task2.value).toBe(undefined);
247
-
248
- await nextTick();
249
- expect(task2.isPending).toBe(false);
250
- expect(task2.value).toBe(undefined);
251
-
252
- const result3 = task2.run(7, 8);
253
- expect(task2.isPending).toBe(true);
254
- expect(task2.value).toBe(undefined);
255
-
256
- expect(await result3).toBe(19);
257
- expect(task2.isResolved).toBe(true);
258
- expect(task2.value).toBe(19);
259
-
260
- const result4 = task2.run(9, 10);
261
- expect(task2.isPending).toBe(true);
262
- expect(task2.value).toBe(19);
263
-
264
- expect(await result4).toBe(23);
265
- expect(task2.isResolved).toBe(true);
266
- expect(task2.value).toBe(23);
267
- });
268
-
269
- test('Task can be defined with rest params', async () => {
270
- const getC = reactive((...outerNums: number[]) => {
271
- return task(async (...nums: number[]) => {
272
- return [...outerNums, ...nums].reduce((acc, num) => acc + num, 0);
273
- });
274
- });
275
-
276
- // First set of args
277
- const task1 = getC(1, 2);
278
- expect(task1.isPending).toBe(false);
279
- expect(task1.value).toBe(undefined);
280
-
281
- await nextTick();
282
- expect(task1.isPending).toBe(false);
283
- expect(task1.value).toBe(undefined);
284
-
285
- const result1 = task1.run(3, 4);
286
- expect(task1.isPending).toBe(true);
287
- expect(task1.value).toBe(undefined);
288
-
289
- expect(await result1).toBe(10);
290
- expect(task1.isResolved).toBe(true);
291
- expect(task1.value).toBe(10);
292
-
293
- const result2 = task1.run(5, 6, 7);
294
- expect(task1.isPending).toBe(true);
295
- expect(task1.value).toBe(10);
296
-
297
- expect(await result2).toBe(21);
298
- expect(task1.isResolved).toBe(true);
299
- expect(task1.value).toBe(21);
300
- });
301
-
302
- test('Async task handles errors', async () => {
303
- const getC = reactive((shouldError: boolean) => {
304
- return task(async () => {
305
- if (shouldError) {
306
- throw new Error('Test error');
307
- }
308
- return 'success';
309
- });
310
- });
311
-
312
- const result1 = getC(false);
313
- await expect(result1.run()).resolves.toBe('success');
314
- expect(result1.isPending).toBe(false);
315
- expect(result1.value).toBe('success');
316
- // await nextTick();
317
- // expect(result1.isResolved).toBe(true);
318
- // expect(result1.value).toBe('success');
319
-
320
- // const result2 = getC(true);
321
- // await expect(result2.run()).rejects.toThrow('Test error');
322
- // await nextTick();
323
- // expect(result2.isRejected).toBe(true);
324
- // expect(result2.error).toBeInstanceOf(Error);
325
- // expect((result2.error as Error).message).toBe('Test error');
326
- });
327
- });