kiru 0.54.4 → 1.1.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 (381) hide show
  1. package/dist/{appContext.d.ts → appHandle.d.ts} +4 -4
  2. package/dist/appHandle.d.ts.map +1 -0
  3. package/dist/{appContext.js → appHandle.js} +13 -10
  4. package/dist/appHandle.js.map +1 -0
  5. package/dist/components/derive.d.ts +10 -8
  6. package/dist/components/derive.d.ts.map +1 -1
  7. package/dist/components/derive.js +50 -47
  8. package/dist/components/derive.js.map +1 -1
  9. package/dist/components/index.d.ts +0 -1
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.js +0 -1
  12. package/dist/components/index.js.map +1 -1
  13. package/dist/components/lazy.d.ts.map +1 -1
  14. package/dist/components/lazy.js +7 -6
  15. package/dist/components/lazy.js.map +1 -1
  16. package/dist/components/portal.d.ts.map +1 -1
  17. package/dist/components/portal.js +2 -3
  18. package/dist/components/portal.js.map +1 -1
  19. package/dist/components/transition.d.ts +3 -2
  20. package/dist/components/transition.d.ts.map +1 -1
  21. package/dist/components/transition.js +29 -30
  22. package/dist/components/transition.js.map +1 -1
  23. package/dist/constants.d.ts +1 -5
  24. package/dist/constants.d.ts.map +1 -1
  25. package/dist/constants.js +1 -5
  26. package/dist/constants.js.map +1 -1
  27. package/dist/context.d.ts +1 -1
  28. package/dist/context.d.ts.map +1 -1
  29. package/dist/context.js +25 -19
  30. package/dist/context.js.map +1 -1
  31. package/dist/devtools.d.ts +7 -0
  32. package/dist/devtools.d.ts.map +1 -0
  33. package/dist/devtools.js +19 -0
  34. package/dist/devtools.js.map +1 -0
  35. package/dist/dom/commit.d.ts +5 -0
  36. package/dist/dom/commit.d.ts.map +1 -0
  37. package/dist/dom/commit.js +94 -0
  38. package/dist/dom/commit.js.map +1 -0
  39. package/dist/dom/focus.d.ts +4 -0
  40. package/dist/dom/focus.d.ts.map +1 -0
  41. package/dist/dom/focus.js +32 -0
  42. package/dist/dom/focus.js.map +1 -0
  43. package/dist/dom/index.d.ts +4 -0
  44. package/dist/dom/index.d.ts.map +1 -0
  45. package/dist/dom/index.js +4 -0
  46. package/dist/dom/index.js.map +1 -0
  47. package/dist/dom/nodes.d.ts +12 -0
  48. package/dist/dom/nodes.d.ts.map +1 -0
  49. package/dist/dom/nodes.js +165 -0
  50. package/dist/dom/nodes.js.map +1 -0
  51. package/dist/dom/props.d.ts +8 -0
  52. package/dist/dom/props.d.ts.map +1 -0
  53. package/dist/dom/props.js +675 -0
  54. package/dist/dom/props.js.map +1 -0
  55. package/dist/env.d.ts +2 -0
  56. package/dist/env.d.ts.map +1 -1
  57. package/dist/env.js +2 -0
  58. package/dist/env.js.map +1 -1
  59. package/dist/globalContext.d.ts +17 -23
  60. package/dist/globalContext.d.ts.map +1 -1
  61. package/dist/globalContext.js +31 -53
  62. package/dist/globalContext.js.map +1 -1
  63. package/dist/globals.d.ts +21 -4
  64. package/dist/globals.d.ts.map +1 -1
  65. package/dist/globals.js +22 -5
  66. package/dist/globals.js.map +1 -1
  67. package/dist/headlessRender.d.ts +6 -0
  68. package/dist/headlessRender.d.ts.map +1 -0
  69. package/dist/{recursiveRender.js → headlessRender.js} +17 -16
  70. package/dist/headlessRender.js.map +1 -0
  71. package/dist/hmr.d.ts +21 -8
  72. package/dist/hmr.d.ts.map +1 -1
  73. package/dist/hmr.js +58 -37
  74. package/dist/hmr.js.map +1 -1
  75. package/dist/hooks/index.d.ts +4 -14
  76. package/dist/hooks/index.d.ts.map +1 -1
  77. package/dist/hooks/index.js +4 -14
  78. package/dist/hooks/index.js.map +1 -1
  79. package/dist/hooks/onBeforeMount.d.ts +9 -0
  80. package/dist/hooks/onBeforeMount.d.ts.map +1 -0
  81. package/dist/hooks/onBeforeMount.js +19 -0
  82. package/dist/hooks/onBeforeMount.js.map +1 -0
  83. package/dist/hooks/onCleanup.d.ts +8 -0
  84. package/dist/hooks/onCleanup.d.ts.map +1 -0
  85. package/dist/hooks/onCleanup.js +18 -0
  86. package/dist/hooks/onCleanup.js.map +1 -0
  87. package/dist/hooks/onMount.d.ts +9 -0
  88. package/dist/hooks/onMount.d.ts.map +1 -0
  89. package/dist/hooks/onMount.js +19 -0
  90. package/dist/hooks/onMount.js.map +1 -0
  91. package/dist/hooks/setup.d.ts +13 -0
  92. package/dist/hooks/setup.d.ts.map +1 -0
  93. package/dist/hooks/setup.js +54 -0
  94. package/dist/hooks/setup.js.map +1 -0
  95. package/dist/hooks/utils.d.ts +2 -63
  96. package/dist/hooks/utils.d.ts.map +1 -1
  97. package/dist/hooks/utils.js +17 -144
  98. package/dist/hooks/utils.js.map +1 -1
  99. package/dist/index.d.ts +9 -4
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +11 -8
  102. package/dist/index.js.map +1 -1
  103. package/dist/profiling.d.ts +15 -14
  104. package/dist/profiling.d.ts.map +1 -1
  105. package/dist/profiling.js +9 -4
  106. package/dist/profiling.js.map +1 -1
  107. package/dist/reconciler.d.ts.map +1 -1
  108. package/dist/reconciler.js +15 -28
  109. package/dist/reconciler.js.map +1 -1
  110. package/dist/ref.d.ts +4 -0
  111. package/dist/ref.d.ts.map +1 -0
  112. package/dist/ref.js +4 -0
  113. package/dist/ref.js.map +1 -0
  114. package/dist/renderToString.js +1 -1
  115. package/dist/renderToString.js.map +1 -1
  116. package/dist/router/context.d.ts.map +1 -1
  117. package/dist/router/context.js +1 -2
  118. package/dist/router/context.js.map +1 -1
  119. package/dist/router/fileRouter.d.ts +1 -1
  120. package/dist/router/fileRouter.d.ts.map +1 -1
  121. package/dist/router/fileRouter.js +17 -11
  122. package/dist/router/fileRouter.js.map +1 -1
  123. package/dist/router/fileRouterController.d.ts.map +1 -1
  124. package/dist/router/fileRouterController.js +68 -55
  125. package/dist/router/fileRouterController.js.map +1 -1
  126. package/dist/router/head.js +2 -2
  127. package/dist/router/head.js.map +1 -1
  128. package/dist/router/link.d.ts.map +1 -1
  129. package/dist/router/link.js +19 -23
  130. package/dist/router/link.js.map +1 -1
  131. package/dist/router/pageConfig.js +2 -2
  132. package/dist/router/pageConfig.js.map +1 -1
  133. package/dist/router/server/index.d.ts.map +1 -1
  134. package/dist/router/server/index.js +14 -11
  135. package/dist/router/server/index.js.map +1 -1
  136. package/dist/router/types.d.ts +11 -6
  137. package/dist/router/types.d.ts.map +1 -1
  138. package/dist/scheduler.d.ts +1 -0
  139. package/dist/scheduler.d.ts.map +1 -1
  140. package/dist/scheduler.js +91 -73
  141. package/dist/scheduler.js.map +1 -1
  142. package/dist/signals/base.d.ts +0 -1
  143. package/dist/signals/base.d.ts.map +1 -1
  144. package/dist/signals/base.js +14 -37
  145. package/dist/signals/base.js.map +1 -1
  146. package/dist/signals/computed.d.ts +0 -2
  147. package/dist/signals/computed.d.ts.map +1 -1
  148. package/dist/signals/computed.js +1 -40
  149. package/dist/signals/computed.js.map +1 -1
  150. package/dist/signals/effect.d.ts +15 -14
  151. package/dist/signals/effect.d.ts.map +1 -1
  152. package/dist/signals/effect.js +65 -37
  153. package/dist/signals/effect.js.map +1 -1
  154. package/dist/signals/globals.d.ts +0 -5
  155. package/dist/signals/globals.d.ts.map +1 -1
  156. package/dist/signals/globals.js +0 -6
  157. package/dist/signals/globals.js.map +1 -1
  158. package/dist/signals/index.d.ts +4 -4
  159. package/dist/signals/index.d.ts.map +1 -1
  160. package/dist/signals/index.js +4 -4
  161. package/dist/signals/index.js.map +1 -1
  162. package/dist/signals/{for.d.ts → jsx.d.ts} +8 -1
  163. package/dist/signals/jsx.d.ts.map +1 -0
  164. package/dist/signals/{for.js → jsx.js} +4 -1
  165. package/dist/signals/jsx.js.map +1 -0
  166. package/dist/signals/tracking.d.ts +24 -0
  167. package/dist/signals/tracking.d.ts.map +1 -0
  168. package/dist/signals/tracking.js +51 -0
  169. package/dist/signals/tracking.js.map +1 -0
  170. package/dist/signals/types.d.ts +1 -1
  171. package/dist/signals/types.d.ts.map +1 -1
  172. package/dist/signals/utils.d.ts +2 -1
  173. package/dist/signals/utils.d.ts.map +1 -1
  174. package/dist/signals/utils.js +9 -2
  175. package/dist/signals/utils.js.map +1 -1
  176. package/dist/ssr/client.d.ts +3 -3
  177. package/dist/ssr/client.d.ts.map +1 -1
  178. package/dist/ssr/client.js.map +1 -1
  179. package/dist/ssr/server.js +1 -1
  180. package/dist/ssr/server.js.map +1 -1
  181. package/dist/statefulPromise.d.ts +22 -0
  182. package/dist/statefulPromise.d.ts.map +1 -0
  183. package/dist/statefulPromise.js +94 -0
  184. package/dist/statefulPromise.js.map +1 -0
  185. package/dist/types.d.ts +40 -50
  186. package/dist/types.d.ts.map +1 -1
  187. package/dist/types.dom.d.ts +5 -8
  188. package/dist/types.dom.d.ts.map +1 -1
  189. package/dist/types.utils.d.ts +3 -4
  190. package/dist/types.utils.d.ts.map +1 -1
  191. package/dist/utils/format.d.ts.map +1 -1
  192. package/dist/utils/format.js +4 -1
  193. package/dist/utils/format.js.map +1 -1
  194. package/dist/utils/vdom.d.ts +8 -6
  195. package/dist/utils/vdom.d.ts.map +1 -1
  196. package/dist/utils/vdom.js +32 -9
  197. package/dist/utils/vdom.js.map +1 -1
  198. package/dist/viewTransitions.d.ts +7 -0
  199. package/dist/viewTransitions.d.ts.map +1 -0
  200. package/dist/viewTransitions.js +72 -0
  201. package/dist/viewTransitions.js.map +1 -0
  202. package/package.json +1 -1
  203. package/src/{appContext.ts → appHandle.ts} +22 -17
  204. package/src/components/derive.ts +74 -69
  205. package/src/components/index.ts +0 -1
  206. package/src/components/lazy.ts +10 -10
  207. package/src/components/portal.ts +2 -3
  208. package/src/components/transition.ts +33 -39
  209. package/src/constants.ts +0 -8
  210. package/src/context.ts +30 -23
  211. package/src/devtools.ts +18 -0
  212. package/src/dom/commit.ts +133 -0
  213. package/src/dom/focus.ts +34 -0
  214. package/src/dom/index.ts +3 -0
  215. package/src/dom/nodes.ts +204 -0
  216. package/src/dom/props.ts +818 -0
  217. package/src/env.ts +3 -0
  218. package/src/globalContext.ts +51 -85
  219. package/src/globals.ts +25 -6
  220. package/src/{recursiveRender.ts → headlessRender.ts} +18 -18
  221. package/src/hmr.ts +60 -42
  222. package/src/hooks/index.ts +4 -14
  223. package/src/hooks/onBeforeMount.ts +18 -0
  224. package/src/hooks/onCleanup.ts +21 -0
  225. package/src/hooks/onMount.ts +18 -0
  226. package/src/hooks/setup.ts +70 -0
  227. package/src/hooks/utils.ts +24 -239
  228. package/src/index.ts +17 -7
  229. package/src/profiling.ts +22 -20
  230. package/src/reconciler.ts +21 -33
  231. package/src/ref.ts +6 -0
  232. package/src/renderToString.ts +1 -1
  233. package/src/router/context.ts +1 -2
  234. package/src/router/fileRouter.ts +23 -13
  235. package/src/router/fileRouterController.ts +72 -64
  236. package/src/router/head.ts +2 -2
  237. package/src/router/link.ts +11 -25
  238. package/src/router/pageConfig.ts +2 -2
  239. package/src/router/server/index.ts +24 -13
  240. package/src/router/types.ts +15 -8
  241. package/src/scheduler.ts +116 -98
  242. package/src/signals/base.ts +13 -42
  243. package/src/signals/computed.ts +1 -62
  244. package/src/signals/effect.ts +93 -48
  245. package/src/signals/globals.ts +0 -7
  246. package/src/signals/index.ts +4 -4
  247. package/src/signals/{for.ts → jsx.ts} +10 -0
  248. package/src/signals/tracking.ts +70 -0
  249. package/src/signals/types.ts +1 -1
  250. package/src/signals/utils.ts +9 -1
  251. package/src/ssr/client.ts +4 -4
  252. package/src/ssr/server.ts +2 -2
  253. package/src/statefulPromise.ts +136 -0
  254. package/src/types.dom.ts +6 -10
  255. package/src/types.ts +51 -60
  256. package/src/types.utils.ts +3 -4
  257. package/src/utils/format.ts +3 -1
  258. package/src/utils/vdom.ts +44 -15
  259. package/src/viewTransitions.ts +89 -0
  260. package/dist/appContext.d.ts.map +0 -1
  261. package/dist/appContext.js.map +0 -1
  262. package/dist/components/memo.d.ts +0 -10
  263. package/dist/components/memo.d.ts.map +0 -1
  264. package/dist/components/memo.js +0 -23
  265. package/dist/components/memo.js.map +0 -1
  266. package/dist/dom.d.ts +0 -10
  267. package/dist/dom.d.ts.map +0 -1
  268. package/dist/dom.js +0 -634
  269. package/dist/dom.js.map +0 -1
  270. package/dist/form/index.d.ts +0 -4
  271. package/dist/form/index.d.ts.map +0 -1
  272. package/dist/form/index.js +0 -518
  273. package/dist/form/index.js.map +0 -1
  274. package/dist/form/types.d.ts +0 -122
  275. package/dist/form/types.d.ts.map +0 -1
  276. package/dist/form/types.js +0 -2
  277. package/dist/form/types.js.map +0 -1
  278. package/dist/form/utils.d.ts +0 -3
  279. package/dist/form/utils.d.ts.map +0 -1
  280. package/dist/form/utils.js +0 -16
  281. package/dist/form/utils.js.map +0 -1
  282. package/dist/hooks/useAsync.d.ts +0 -18
  283. package/dist/hooks/useAsync.d.ts.map +0 -1
  284. package/dist/hooks/useAsync.js +0 -96
  285. package/dist/hooks/useAsync.js.map +0 -1
  286. package/dist/hooks/useCallback.d.ts +0 -7
  287. package/dist/hooks/useCallback.d.ts.map +0 -1
  288. package/dist/hooks/useCallback.js +0 -30
  289. package/dist/hooks/useCallback.js.map +0 -1
  290. package/dist/hooks/useContext.d.ts +0 -7
  291. package/dist/hooks/useContext.d.ts.map +0 -1
  292. package/dist/hooks/useContext.js +0 -59
  293. package/dist/hooks/useContext.js.map +0 -1
  294. package/dist/hooks/useEffect.d.ts +0 -8
  295. package/dist/hooks/useEffect.d.ts.map +0 -1
  296. package/dist/hooks/useEffect.js +0 -34
  297. package/dist/hooks/useEffect.js.map +0 -1
  298. package/dist/hooks/useEffectEvent.d.ts +0 -8
  299. package/dist/hooks/useEffectEvent.d.ts.map +0 -1
  300. package/dist/hooks/useEffectEvent.js +0 -23
  301. package/dist/hooks/useEffectEvent.js.map +0 -1
  302. package/dist/hooks/useId.d.ts +0 -8
  303. package/dist/hooks/useId.d.ts.map +0 -1
  304. package/dist/hooks/useId.js +0 -35
  305. package/dist/hooks/useId.js.map +0 -1
  306. package/dist/hooks/useLayoutEffect.d.ts +0 -8
  307. package/dist/hooks/useLayoutEffect.d.ts.map +0 -1
  308. package/dist/hooks/useLayoutEffect.js +0 -34
  309. package/dist/hooks/useLayoutEffect.js.map +0 -1
  310. package/dist/hooks/useMemo.d.ts +0 -8
  311. package/dist/hooks/useMemo.d.ts.map +0 -1
  312. package/dist/hooks/useMemo.js +0 -31
  313. package/dist/hooks/useMemo.js.map +0 -1
  314. package/dist/hooks/usePromise.d.ts +0 -8
  315. package/dist/hooks/usePromise.d.ts.map +0 -1
  316. package/dist/hooks/usePromise.js +0 -90
  317. package/dist/hooks/usePromise.js.map +0 -1
  318. package/dist/hooks/useReducer.d.ts +0 -7
  319. package/dist/hooks/useReducer.d.ts.map +0 -1
  320. package/dist/hooks/useReducer.js +0 -44
  321. package/dist/hooks/useReducer.js.map +0 -1
  322. package/dist/hooks/useRef.d.ts +0 -10
  323. package/dist/hooks/useRef.d.ts.map +0 -1
  324. package/dist/hooks/useRef.js +0 -29
  325. package/dist/hooks/useRef.js.map +0 -1
  326. package/dist/hooks/useState.d.ts +0 -7
  327. package/dist/hooks/useState.d.ts.map +0 -1
  328. package/dist/hooks/useState.js +0 -54
  329. package/dist/hooks/useState.js.map +0 -1
  330. package/dist/hooks/useSyncExternalStore.d.ts +0 -8
  331. package/dist/hooks/useSyncExternalStore.d.ts.map +0 -1
  332. package/dist/hooks/useSyncExternalStore.js +0 -50
  333. package/dist/hooks/useSyncExternalStore.js.map +0 -1
  334. package/dist/hooks/useViewTransition.d.ts +0 -10
  335. package/dist/hooks/useViewTransition.d.ts.map +0 -1
  336. package/dist/hooks/useViewTransition.js +0 -27
  337. package/dist/hooks/useViewTransition.js.map +0 -1
  338. package/dist/recursiveRender.d.ts +0 -7
  339. package/dist/recursiveRender.d.ts.map +0 -1
  340. package/dist/recursiveRender.js.map +0 -1
  341. package/dist/signals/for.d.ts.map +0 -1
  342. package/dist/signals/for.js.map +0 -1
  343. package/dist/signals/watch.d.ts +0 -21
  344. package/dist/signals/watch.d.ts.map +0 -1
  345. package/dist/signals/watch.js +0 -86
  346. package/dist/signals/watch.js.map +0 -1
  347. package/dist/store.d.ts +0 -28
  348. package/dist/store.d.ts.map +0 -1
  349. package/dist/store.js +0 -166
  350. package/dist/store.js.map +0 -1
  351. package/dist/swr.d.ts +0 -63
  352. package/dist/swr.d.ts.map +0 -1
  353. package/dist/swr.js +0 -236
  354. package/dist/swr.js.map +0 -1
  355. package/dist/utils/promise.d.ts +0 -16
  356. package/dist/utils/promise.d.ts.map +0 -1
  357. package/dist/utils/promise.js +0 -14
  358. package/dist/utils/promise.js.map +0 -1
  359. package/src/components/memo.ts +0 -39
  360. package/src/dom.ts +0 -809
  361. package/src/form/index.ts +0 -676
  362. package/src/form/types.ts +0 -262
  363. package/src/form/utils.ts +0 -19
  364. package/src/hooks/useAsync.ts +0 -121
  365. package/src/hooks/useCallback.ts +0 -32
  366. package/src/hooks/useContext.ts +0 -79
  367. package/src/hooks/useEffect.ts +0 -40
  368. package/src/hooks/useEffectEvent.ts +0 -24
  369. package/src/hooks/useId.ts +0 -42
  370. package/src/hooks/useLayoutEffect.ts +0 -43
  371. package/src/hooks/useMemo.ts +0 -34
  372. package/src/hooks/usePromise.ts +0 -126
  373. package/src/hooks/useReducer.ts +0 -50
  374. package/src/hooks/useRef.ts +0 -40
  375. package/src/hooks/useState.ts +0 -62
  376. package/src/hooks/useSyncExternalStore.ts +0 -59
  377. package/src/hooks/useViewTransition.ts +0 -25
  378. package/src/signals/watch.ts +0 -139
  379. package/src/store.ts +0 -245
  380. package/src/swr.ts +0 -351
  381. package/src/utils/promise.ts +0 -26
package/dist/hmr.js CHANGED
@@ -12,16 +12,20 @@ export function isGenericHmrAcceptor(thing) {
12
12
  typeof thing[$HMR_ACCEPT] === "object" &&
13
13
  !!thing[$HMR_ACCEPT]);
14
14
  }
15
- export function createHMRContext() {
15
+ export function createHmrContext() {
16
16
  const moduleMap = new Map();
17
17
  let currentModuleFilePath = null;
18
18
  let currentModuleMemory = null;
19
19
  let isModuleReplacementExecution = false;
20
20
  const isReplacement = () => isModuleReplacementExecution;
21
- let isWaitingForNextWatchCall = false;
22
- const onHmrCallbacks = [];
21
+ let isWaitingForNextEffect = false;
22
+ const globalHmrCallbacks = [];
23
23
  const onHmr = (callback) => {
24
- onHmrCallbacks.push(callback);
24
+ if (currentModuleMemory) {
25
+ currentModuleMemory.hmrCallbacks.push(callback);
26
+ return;
27
+ }
28
+ globalHmrCallbacks.push(callback);
25
29
  };
26
30
  const prepare = (filePath) => {
27
31
  let mod = moduleMap.get(filePath);
@@ -29,16 +33,20 @@ export function createHMRContext() {
29
33
  if (!mod) {
30
34
  mod = {
31
35
  hotVars: new Map(),
32
- unnamedWatchers: [],
36
+ unnamedEffects: [],
37
+ hmrCallbacks: [],
33
38
  };
34
39
  moduleMap.set(filePath, mod);
35
40
  }
36
41
  else {
37
- while (onHmrCallbacks.length)
38
- onHmrCallbacks.shift()();
39
- for (const prevWatcher of mod.unnamedWatchers.splice(0)) {
40
- prevWatcher.stop();
42
+ while (mod.hmrCallbacks.length)
43
+ mod.hmrCallbacks.shift()();
44
+ while (globalHmrCallbacks.length)
45
+ globalHmrCallbacks.shift()();
46
+ for (const effect of mod.unnamedEffects) {
47
+ effect.stop();
41
48
  }
49
+ mod.unnamedEffects.length = 0;
42
50
  }
43
51
  currentModuleMemory = mod;
44
52
  currentModuleFilePath = filePath;
@@ -46,23 +54,18 @@ export function createHMRContext() {
46
54
  const register = (hotVarRegistrationEntries) => {
47
55
  if (currentModuleMemory === null)
48
56
  throw new Error("[kiru]: HMR could not register: No active module");
49
- let dirtiedApps = new Set();
57
+ let dirtyNodes = new Set();
50
58
  for (const [name, newEntry] of Object.entries(hotVarRegistrationEntries)) {
51
59
  const oldEntry = currentModuleMemory.hotVars.get(name);
52
60
  // @ts-ignore - this is how we tell devtools what file the hotvar is from
53
61
  newEntry.value[$DEV_FILE_LINK] = newEntry.link;
54
- if (typeof newEntry.value === "function") {
55
- if (oldEntry?.value) {
56
- /**
57
- * this is how, when the previous function has been stored somewhere else (eg. in a Map, or by Vike),
58
- * we can trace it to its latest version
59
- */
60
- // @ts-ignore
61
- oldEntry.value.__next = newEntry.value;
62
- }
63
- }
64
- if (newEntry.type === "createStore") {
65
- window.__kiru.stores.add(name, newEntry.value);
62
+ if (oldEntry?.value) {
63
+ /**
64
+ * this is how, when the previous value has been stored somewhere else (eg. in a Map, or by Vike),
65
+ * we can trace it to its current version by using latest(value)
66
+ */
67
+ // @ts-ignore
68
+ oldEntry.value.__next = newEntry.value;
66
69
  }
67
70
  currentModuleMemory.hotVars.set(name, newEntry);
68
71
  if (!oldEntry)
@@ -74,19 +77,19 @@ export function createHMRContext() {
74
77
  continue;
75
78
  }
76
79
  if (oldEntry.type === "component" && newEntry.type === "component") {
77
- window.__kiru.apps.forEach((ctx) => {
78
- traverseApply(ctx.rootNode, (vNode) => {
80
+ window.__kiru.apps.forEach((app) => {
81
+ traverseApply(app.rootNode, (vNode) => {
79
82
  if (vNode.type === oldEntry.value) {
80
83
  vNode.type = newEntry.value;
81
- dirtiedApps.add(ctx);
84
+ dirtyNodes.add(vNode);
82
85
  }
83
86
  });
84
87
  });
85
88
  }
86
89
  }
87
- if (dirtiedApps.size) {
90
+ if (dirtyNodes.size) {
88
91
  _isHmrUpdate = true;
89
- dirtiedApps.forEach((ctx) => requestUpdate(ctx.rootNode));
92
+ dirtyNodes.forEach((n) => requestUpdate(n));
90
93
  flushSync();
91
94
  _isHmrUpdate = false;
92
95
  }
@@ -94,27 +97,45 @@ export function createHMRContext() {
94
97
  currentModuleMemory = null;
95
98
  currentModuleFilePath = null;
96
99
  };
97
- const signals = {
98
- registerNextWatch() {
99
- isWaitingForNextWatchCall = true;
100
+ const moduleEffects = {
101
+ registerNext() {
102
+ isWaitingForNextEffect = true;
100
103
  },
101
- isWaitingForNextWatchCall() {
102
- return isWaitingForNextWatchCall;
103
- },
104
- pushWatch(watch) {
105
- currentModuleMemory.unnamedWatchers.push(watch);
106
- isWaitingForNextWatchCall = false;
104
+ push(effect) {
105
+ if (!isWaitingForNextEffect)
106
+ return;
107
+ currentModuleMemory.unnamedEffects.push(effect);
108
+ isWaitingForNextEffect = false;
107
109
  },
108
110
  };
109
111
  return {
110
112
  register,
111
113
  prepare,
112
114
  isReplacement,
113
- signals,
115
+ moduleEffects,
114
116
  onHmr,
115
117
  getCurrentFilePath() {
116
118
  return currentModuleFilePath;
117
119
  },
118
120
  };
119
121
  }
122
+ /**
123
+ * Queues a callback to be fired when HMR is triggered. This is a no-op in non-browser environments or in production.
124
+ * - If called during current module evaluation, the callback will be fired the next time the current module is evaluated.
125
+ * - If called at any other time, the callback will be fired the next time HMR is triggered.
126
+ * @see https://kirujs.dev/docs/api/lifecycles#onHmr
127
+ *
128
+ * ```ts
129
+ * import { onHmr } from "kiru"
130
+ * // start an interval in the module scope
131
+ * const interval = setInterval(() => {...}, 1000)
132
+ * // stop the interval when this file is reloaded
133
+ * onHmr(() => clearInterval(interval))
134
+ ```
135
+ */
136
+ export function onHmr(callback) {
137
+ if ("window" in globalThis && window.__kiru.HMRContext) {
138
+ window.__kiru.HMRContext.onHmr(callback);
139
+ }
140
+ }
120
141
  //# sourceMappingURL=hmr.js.map
package/dist/hmr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,6 @@
1
- export * from "./useAsync.js";
2
- export * from "./useCallback.js";
3
- export * from "./useContext.js";
4
- export * from "./useEffect.js";
5
- export * from "./useEffectEvent.js";
6
- export * from "./useId.js";
7
- export * from "./useLayoutEffect.js";
8
- export * from "./useMemo.js";
9
- export * from "./usePromise.js";
10
- export * from "./useReducer.js";
11
- export * from "./useRef.js";
12
- export * from "./useState.js";
13
- export * from "./useSyncExternalStore.js";
14
- export * from "./useViewTransition.js";
1
+ export * from "./onCleanup.js";
2
+ export * from "./onMount.js";
3
+ export * from "./onBeforeMount.js";
4
+ export * from "./setup.js";
15
5
  export * from "./utils.js";
16
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
@@ -1,16 +1,6 @@
1
- export * from "./useAsync.js";
2
- export * from "./useCallback.js";
3
- export * from "./useContext.js";
4
- export * from "./useEffect.js";
5
- export * from "./useEffectEvent.js";
6
- export * from "./useId.js";
7
- export * from "./useLayoutEffect.js";
8
- export * from "./useMemo.js";
9
- export * from "./usePromise.js";
10
- export * from "./useReducer.js";
11
- export * from "./useRef.js";
12
- export * from "./useState.js";
13
- export * from "./useSyncExternalStore.js";
14
- export * from "./useViewTransition.js";
1
+ export * from "./onCleanup.js";
2
+ export * from "./onMount.js";
3
+ export * from "./onBeforeMount.js";
4
+ export * from "./setup.js";
15
5
  export * from "./utils.js";
16
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
3
+ * Optionally returns a cleanup function that will run when the component unmounts.
4
+ * Intended for use during component setup when the component returns a render function.
5
+ *
6
+ * @see https://kirujs.dev/docs/api/lifecycles#onBeforeMount
7
+ */
8
+ export declare function onBeforeMount(fn: () => (() => void) | void): void;
9
+ //# sourceMappingURL=onBeforeMount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onBeforeMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAOjE"}
@@ -0,0 +1,19 @@
1
+ import { sideEffectsEnabled } from "../utils/index.js";
2
+ import { getVNodeLifecycleHooks, wrapLifecycleHookCallback } from "./utils.js";
3
+ /**
4
+ * Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
5
+ * Optionally returns a cleanup function that will run when the component unmounts.
6
+ * Intended for use during component setup when the component returns a render function.
7
+ *
8
+ * @see https://kirujs.dev/docs/api/lifecycles#onBeforeMount
9
+ */
10
+ export function onBeforeMount(fn) {
11
+ if (!sideEffectsEnabled())
12
+ return;
13
+ const hooks = getVNodeLifecycleHooks();
14
+ if (!hooks) {
15
+ throw new Error("Cannot queue beforeMount effect outside of a component");
16
+ }
17
+ hooks.pre.push(wrapLifecycleHookCallback(fn, hooks.preCleanups));
18
+ }
19
+ //# sourceMappingURL=onBeforeMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onBeforeMount.js","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAA6B;IACzD,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAM;IACjC,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;AAClE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Registers a cleanup function that runs when the component unmounts.
3
+ * Intended for use during component setup when the component returns a render function.
4
+ *
5
+ * @see https://kirujs.dev/docs/api/lifecycles#onCleanup
6
+ */
7
+ export declare function onCleanup(fn: () => void): void;
8
+ //# sourceMappingURL=onCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onCleanup.d.ts","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAO9C"}
@@ -0,0 +1,18 @@
1
+ import { node } from "../globals.js";
2
+ import { generateRandomID, registerVNodeCleanup, sideEffectsEnabled, } from "../utils/index.js";
3
+ /**
4
+ * Registers a cleanup function that runs when the component unmounts.
5
+ * Intended for use during component setup when the component returns a render function.
6
+ *
7
+ * @see https://kirujs.dev/docs/api/lifecycles#onCleanup
8
+ */
9
+ export function onCleanup(fn) {
10
+ if (!sideEffectsEnabled())
11
+ return;
12
+ const vNode = node.current;
13
+ if (!vNode) {
14
+ throw new Error("Cannot queue onCleanup effect outside of a component");
15
+ }
16
+ registerVNodeCleanup(vNode, generateRandomID(10), fn);
17
+ }
18
+ //# sourceMappingURL=onCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onCleanup.js","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAM;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAA;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AACvD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Registers a callback that runs after the component is first mounted to the DOM.
3
+ * Optionally returns a cleanup function that will run after the component unmounts.
4
+ * Intended for use during component setup when the component returns a render function.
5
+ *
6
+ * @see https://kirujs.dev/docs/api/lifecycles#onMount
7
+ */
8
+ export declare function onMount(fn: () => (() => void) | void): void;
9
+ //# sourceMappingURL=onMount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAO3D"}
@@ -0,0 +1,19 @@
1
+ import { sideEffectsEnabled } from "../utils/index.js";
2
+ import { getVNodeLifecycleHooks, wrapLifecycleHookCallback } from "./utils.js";
3
+ /**
4
+ * Registers a callback that runs after the component is first mounted to the DOM.
5
+ * Optionally returns a cleanup function that will run after the component unmounts.
6
+ * Intended for use during component setup when the component returns a render function.
7
+ *
8
+ * @see https://kirujs.dev/docs/api/lifecycles#onMount
9
+ */
10
+ export function onMount(fn) {
11
+ if (!sideEffectsEnabled())
12
+ return;
13
+ const hooks = getVNodeLifecycleHooks();
14
+ if (!hooks) {
15
+ throw new Error("Cannot queue onMount effect outside of a component");
16
+ }
17
+ hooks.post.push(wrapLifecycleHookCallback(fn, hooks.postCleanups));
18
+ }
19
+ //# sourceMappingURL=onMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onMount.js","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,EAA6B;IACnD,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAM;IACjC,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;AACpE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Signal } from "../signals/base.js";
2
+ export interface Setup<Props extends {}> {
3
+ readonly derive: <T>(selector: (props: Props extends Kiru.FC<infer P> ? P : Props) => T) => Signal<T>;
4
+ readonly id: Signal<string>;
5
+ }
6
+ /**
7
+ * Creates a per‑VNode setup context that can be used during
8
+ * component setup to derive props into signals.
9
+ *
10
+ * @see https://kirujs.dev/docs/api/lifecycles#setup
11
+ */
12
+ export declare function setup<Props extends {}>(): Setup<Props>;
13
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/hooks/setup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAIhD,MAAM,WAAW,KAAK,CAAC,KAAK,SAAS,EAAE;IACrC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,KAC/D,MAAM,CAAC,CAAC,CAAC,CAAA;IACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAkBtD"}
@@ -0,0 +1,54 @@
1
+ import { node, setups } from "../globals.js";
2
+ import { signal } from "../signals/index.js";
3
+ import { createVNodeId } from "../utils/vdom.js";
4
+ import { __DEV__ } from "../env.js";
5
+ /**
6
+ * Creates a per‑VNode setup context that can be used during
7
+ * component setup to derive props into signals.
8
+ *
9
+ * @see https://kirujs.dev/docs/api/lifecycles#setup
10
+ */
11
+ export function setup() {
12
+ const vNode = node.current;
13
+ if (__DEV__) {
14
+ if (!vNode) {
15
+ throw new Error("setup() must be called inside a Kiru component");
16
+ }
17
+ if (vNode.render) {
18
+ throw new Error("setup() cannot be used inside a render function");
19
+ }
20
+ }
21
+ if (setups.has(vNode)) {
22
+ return setups.get(vNode);
23
+ }
24
+ const setup = createSetup(vNode);
25
+ setups.set(vNode, setup);
26
+ return setup;
27
+ }
28
+ function createSetup(vNode) {
29
+ let id;
30
+ const propSyncs = (vNode.propSyncs = []);
31
+ let prevIndex = -1;
32
+ return {
33
+ derive(selector) {
34
+ const props = { ...vNode.props };
35
+ const sig = signal(selector(props));
36
+ propSyncs.push((p) => (sig.value = selector(p)));
37
+ return sig;
38
+ },
39
+ get id() {
40
+ if (!id) {
41
+ id = signal(createVNodeId(vNode));
42
+ prevIndex = vNode.index;
43
+ propSyncs.push(() => {
44
+ if (prevIndex !== vNode.index) {
45
+ id.value = createVNodeId(vNode);
46
+ prevIndex = vNode.index;
47
+ }
48
+ });
49
+ }
50
+ return id;
51
+ },
52
+ };
53
+ }
54
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/hooks/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASnC;;;;;GAKG;AACH,MAAM,UAAU,KAAK;IACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAA;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAQ,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAmB,KAAiB;IACtD,IAAI,EAAkB,CAAA;IAGtB,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAuC,CAAA;IAE9E,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;IAElB,OAAO;QACL,MAAM,CAAC,QAAQ;YACb,MAAM,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAmB,CAAA;YACjD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YACnC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,IAAI,EAAE;YACJ,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;gBACjC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;gBACvB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClB,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC9B,EAAE,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;wBAC/B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,EAAE,CAAA;QACX,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,64 +1,3 @@
1
- export { cleanupHook, depsRequireChange, useHook, useVNode, useHookDebugGroup, useRequestUpdate, HookDebugGroupAction, type HookState, type HookCallback, type HookCallbackContext as HookCallbackState, };
2
- type HookState<T> = Kiru.Hook<T>;
3
- declare enum HookDebugGroupAction {
4
- Start = "start",
5
- End = "end"
6
- }
7
- /**
8
- * **dev only - this is a no-op in production.**
9
- *
10
- * Used to create 'groups' of hooks in the devtools.
11
- * Useful for debugging and profiling.
12
- */
13
- declare const useHookDebugGroup: (name: string, action: HookDebugGroupAction) => void;
14
- /**
15
- * Used obtain an 'requestUpdate' function for the current component.
16
- */
17
- declare const useRequestUpdate: () => () => void;
18
- /**
19
- * Used to obtain the 'VNode' for the current component.
20
- */
21
- declare const useVNode: () => Kiru.VNode;
22
- type HookCallbackContext<T> = {
23
- /**
24
- * The current state of the hook
25
- */
26
- hook: HookState<T>;
27
- /**
28
- * Indicates if this is the first time the hook has been initialized
29
- */
30
- isInit: boolean;
31
- /**
32
- * Dev mode only - indicates if the hook is being run as a result of a HMR update.
33
- * This is the time to clean up the previous version of the hook if necessary, ie. initial arguments changed.
34
- */
35
- isHMR?: boolean;
36
- /**
37
- * Queues the current component to be re-rendered
38
- */
39
- update: () => void;
40
- /**
41
- * Queues an effect to be run, either immediately or on the next render
42
- */
43
- queueEffect: (callback: Function, opts?: {
44
- immediate?: boolean;
45
- }) => void;
46
- /**
47
- * The VNode associated with the current component
48
- */
49
- vNode: Kiru.VNode;
50
- /**
51
- * The index of the current hook.
52
- * You can count on this being stable across renders,
53
- * and unique across separate hooks in the same component.
54
- */
55
- index: number;
56
- };
57
- type HookCallback<T> = (state: HookCallbackContext<T>) => any;
58
- declare function useHook<T extends () => Record<string, unknown>, U extends HookCallback<ReturnType<T>>>(hookName: string, hookInitializer: T, callback: U): ReturnType<U>;
59
- declare function useHook<T extends Record<string, unknown>, U extends HookCallback<T>>(hookName: string, hookData: T, callback: U): ReturnType<U>;
60
- declare function cleanupHook(hook: {
61
- cleanup?: () => void;
62
- }): void;
63
- declare function depsRequireChange(a?: unknown[], b?: unknown[]): boolean;
1
+ export declare function getVNodeLifecycleHooks(): null | NonNullable<Kiru.VNode["hooks"]>;
2
+ export declare function wrapLifecycleHookCallback(callback: Kiru.LifecycleHookCallback, cleanups: (() => void)[]): Kiru.LifecycleHookCallback;
64
3
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,mBAAmB,IAAI,iBAAiB,GAC9C,CAAA;AAED,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,aAAK,oBAAoB;IACvB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,QAAQ,oBAAoB,SAQpE,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,kBAGrB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,kBAEb,CAAA;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzE;;OAEG;IACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAA;IACjB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;AAK7D,iBAAS,OAAO,CACd,CAAC,SAAS,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,CAAC,SAAS,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AAEnE,iBAAS,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC3E,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,CAAC,CAAC,CAAA;AA2HhB,iBAAS,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,QAKlD;AAED,iBAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,WAOtD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,IAAI,IAAI,GAAG,WAAW,CAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACpB,CAUA;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EACpC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,GACvB,IAAI,CAAC,qBAAqB,CAO5B"}