kiru 0.49.0 → 0.50.0-preview.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 (65) hide show
  1. package/dist/components/errorBoundary.d.ts +7 -0
  2. package/dist/components/errorBoundary.d.ts.map +1 -0
  3. package/dist/components/errorBoundary.js +6 -0
  4. package/dist/components/errorBoundary.js.map +1 -0
  5. package/dist/components/index.d.ts +2 -0
  6. package/dist/components/index.d.ts.map +1 -1
  7. package/dist/components/index.js +2 -0
  8. package/dist/components/index.js.map +1 -1
  9. package/dist/components/suspense.d.ts +33 -0
  10. package/dist/components/suspense.d.ts.map +1 -0
  11. package/dist/components/suspense.js +113 -0
  12. package/dist/components/suspense.js.map +1 -0
  13. package/dist/constants.d.ts +4 -11
  14. package/dist/constants.d.ts.map +1 -1
  15. package/dist/constants.js +4 -11
  16. package/dist/constants.js.map +1 -1
  17. package/dist/dom.js +1 -3
  18. package/dist/dom.js.map +1 -1
  19. package/dist/hooks/utils.d.ts.map +1 -1
  20. package/dist/hooks/utils.js +1 -0
  21. package/dist/hooks/utils.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/renderToString.d.ts.map +1 -1
  27. package/dist/renderToString.js +92 -36
  28. package/dist/renderToString.js.map +1 -1
  29. package/dist/scheduler.d.ts.map +1 -1
  30. package/dist/scheduler.js +47 -10
  31. package/dist/scheduler.js.map +1 -1
  32. package/dist/ssr/server.d.ts +4 -1
  33. package/dist/ssr/server.d.ts.map +1 -1
  34. package/dist/ssr/server.js +135 -64
  35. package/dist/ssr/server.js.map +1 -1
  36. package/dist/types.d.ts +10 -2
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.utils.d.ts +7 -1
  39. package/dist/types.utils.d.ts.map +1 -1
  40. package/dist/utils/format.d.ts.map +1 -1
  41. package/dist/utils/format.js +15 -8
  42. package/dist/utils/format.js.map +1 -1
  43. package/dist/utils/runtime.d.ts +1 -1
  44. package/dist/utils/runtime.d.ts.map +1 -1
  45. package/dist/utils/runtime.js.map +1 -1
  46. package/dist/utils/vdom.d.ts +3 -1
  47. package/dist/utils/vdom.d.ts.map +1 -1
  48. package/dist/utils/vdom.js +6 -2
  49. package/dist/utils/vdom.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/components/errorBoundary.ts +16 -0
  52. package/src/components/index.ts +2 -0
  53. package/src/components/suspense.ts +193 -0
  54. package/src/constants.ts +6 -12
  55. package/src/dom.ts +1 -3
  56. package/src/hooks/utils.ts +1 -0
  57. package/src/index.ts +1 -0
  58. package/src/renderToString.ts +106 -40
  59. package/src/scheduler.ts +59 -12
  60. package/src/ssr/server.ts +161 -69
  61. package/src/types.ts +11 -0
  62. package/src/types.utils.ts +8 -0
  63. package/src/utils/format.ts +16 -12
  64. package/src/utils/runtime.ts +1 -1
  65. package/src/utils/vdom.ts +11 -0
package/src/utils/vdom.ts CHANGED
@@ -6,11 +6,13 @@ import {
6
6
  $HYDRATION_BOUNDARY,
7
7
  FLAG_PLACEMENT,
8
8
  FLAG_UPDATE,
9
+ $ERROR_BOUNDARY,
9
10
  } from "../constants.js"
10
11
  import { createElement } from "../index.js"
11
12
  import { KiruError } from "../error.js"
12
13
  import { node } from "../globals.js"
13
14
  import type { AppContext } from "../appContext.js"
15
+ import type { ErrorBoundaryNode } from "../types.utils.js"
14
16
 
15
17
  export {
16
18
  cloneVNode,
@@ -27,6 +29,7 @@ export {
27
29
  commitSnapshot,
28
30
  traverseApply,
29
31
  findParent,
32
+ findParentErrorBoundary,
30
33
  assertValidElementProps,
31
34
  isValidElementKeyProp,
32
35
  isValidElementRefProp,
@@ -56,6 +59,7 @@ function isExoticType(type: Kiru.VNode["type"]): type is Kiru.ExoticSymbol {
56
59
  return (
57
60
  type === $FRAGMENT ||
58
61
  type === $CONTEXT_PROVIDER ||
62
+ type === $ERROR_BOUNDARY ||
59
63
  type === $HYDRATION_BOUNDARY
60
64
  )
61
65
  }
@@ -153,6 +157,13 @@ function findParent(vNode: Kiru.VNode, predicate: (n: Kiru.VNode) => boolean) {
153
157
  return null
154
158
  }
155
159
 
160
+ function findParentErrorBoundary(vNode: Kiru.VNode): ErrorBoundaryNode | null {
161
+ return findParent(
162
+ vNode,
163
+ (n) => n.type === $ERROR_BOUNDARY
164
+ ) as ErrorBoundaryNode | null
165
+ }
166
+
156
167
  function assertValidElementProps(vNode: Kiru.VNode) {
157
168
  if ("children" in vNode.props && vNode.props.innerHTML) {
158
169
  throw new KiruError({