ripple 0.3.12 → 0.3.14

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 (217) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/package.json +11 -30
  3. package/src/compiler/types/import.d.ts +0 -12
  4. package/src/helpers.d.ts +2 -0
  5. package/src/runtime/array.js +38 -38
  6. package/src/runtime/create-subscriber.js +2 -2
  7. package/src/runtime/index-client.js +15 -13
  8. package/src/runtime/index-server.js +18 -11
  9. package/src/runtime/internal/client/bindings.js +4 -6
  10. package/src/runtime/internal/client/blocks.js +19 -23
  11. package/src/runtime/internal/client/constants.js +20 -9
  12. package/src/runtime/internal/client/events.js +8 -3
  13. package/src/runtime/internal/client/hmr.js +5 -17
  14. package/src/runtime/internal/client/index.js +14 -4
  15. package/src/runtime/internal/client/runtime.js +436 -173
  16. package/src/runtime/internal/client/try.js +334 -156
  17. package/src/runtime/internal/client/types.d.ts +26 -0
  18. package/src/runtime/internal/server/blocks.js +181 -0
  19. package/src/runtime/internal/server/constants.js +7 -0
  20. package/src/runtime/internal/server/index.js +774 -150
  21. package/src/runtime/internal/server/types.d.ts +35 -0
  22. package/src/runtime/media-query.js +34 -33
  23. package/src/runtime/object.js +7 -10
  24. package/src/runtime/proxy.js +2 -3
  25. package/src/runtime/reactive-value.js +23 -21
  26. package/src/server/index.js +1 -1
  27. package/src/utils/ast.js +1 -1
  28. package/src/utils/async.js +35 -0
  29. package/src/utils/attributes.js +43 -0
  30. package/src/utils/builders.js +5 -3
  31. package/tests/client/__snapshots__/computed-properties.test.rsrx.snap +49 -0
  32. package/tests/client/__snapshots__/for.test.rsrx.snap +319 -0
  33. package/tests/client/__snapshots__/html.test.rsrx.snap +40 -0
  34. package/tests/client/_etc.test.rsrx +7 -0
  35. package/tests/client/array/{array.static.test.ripple → array.static.test.rsrx} +18 -20
  36. package/tests/client/async-suspend.test.rsrx +662 -0
  37. package/tests/client/basic/__snapshots__/basic.attributes.test.rsrx.snap +60 -0
  38. package/tests/client/basic/__snapshots__/basic.rendering.test.rsrx.snap +59 -0
  39. package/tests/client/basic/{basic.errors.test.ripple → basic.errors.test.rsrx} +3 -3
  40. package/tests/client/basic/{basic.styling.test.ripple → basic.styling.test.rsrx} +1 -1
  41. package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +12 -0
  42. package/tests/client/compiler/__snapshots__/compiler.typescript.test.rsrx.snap +46 -0
  43. package/tests/client/compiler/{compiler.assignments.test.ripple → compiler.assignments.test.rsrx} +1 -1
  44. package/tests/client/compiler/{compiler.attributes.test.ripple → compiler.attributes.test.rsrx} +1 -1
  45. package/tests/client/compiler/{compiler.basic.test.ripple → compiler.basic.test.rsrx} +13 -13
  46. package/tests/client/compiler/{compiler.tracked-access.test.ripple → compiler.tracked-access.test.rsrx} +1 -1
  47. package/tests/client/compiler/{compiler.try-in-function.test.ripple → compiler.try-in-function.test.rsrx} +9 -7
  48. package/tests/client/compiler/{compiler.typescript.test.ripple → compiler.typescript.test.rsrx} +1 -1
  49. package/tests/client/composite/__snapshots__/composite.render.test.rsrx.snap +37 -0
  50. package/tests/client/css/{global-additional-cases.test.ripple → global-additional-cases.test.rsrx} +1 -1
  51. package/tests/client/css/{global-advanced-selectors.test.ripple → global-advanced-selectors.test.rsrx} +1 -1
  52. package/tests/client/css/{global-at-rules.test.ripple → global-at-rules.test.rsrx} +1 -1
  53. package/tests/client/css/{global-basic.test.ripple → global-basic.test.rsrx} +1 -1
  54. package/tests/client/css/{global-classes-ids.test.ripple → global-classes-ids.test.rsrx} +1 -1
  55. package/tests/client/css/{global-combinators.test.ripple → global-combinators.test.rsrx} +1 -1
  56. package/tests/client/css/{global-complex-nesting.test.ripple → global-complex-nesting.test.rsrx} +1 -1
  57. package/tests/client/css/{global-edge-cases.test.ripple → global-edge-cases.test.rsrx} +1 -1
  58. package/tests/client/css/{global-keyframes.test.ripple → global-keyframes.test.rsrx} +1 -1
  59. package/tests/client/css/{global-nested.test.ripple → global-nested.test.rsrx} +1 -1
  60. package/tests/client/css/{global-pseudo.test.ripple → global-pseudo.test.rsrx} +1 -1
  61. package/tests/client/css/{global-scoping.test.ripple → global-scoping.test.rsrx} +1 -1
  62. package/tests/client/css/{style-identifier.test.ripple → style-identifier.test.rsrx} +1 -1
  63. package/tests/client/{function-overload.test.ripple → function-overload.test.rsrx} +1 -1
  64. package/tests/client/{return.test.ripple → return.test.rsrx} +1 -1
  65. package/tests/client/try.test.rsrx +1702 -0
  66. package/tests/hydration/build-components.js +6 -4
  67. package/tests/hydration/compiled/client/head.js +11 -11
  68. package/tests/hydration/compiled/client/mixed-control-flow.js +55 -70
  69. package/tests/hydration/compiled/client/nested-control-flow.js +72 -88
  70. package/tests/hydration/compiled/client/try.js +42 -54
  71. package/tests/hydration/compiled/server/basic.js +491 -369
  72. package/tests/hydration/compiled/server/composite.js +153 -128
  73. package/tests/hydration/compiled/server/events.js +166 -145
  74. package/tests/hydration/compiled/server/for.js +821 -677
  75. package/tests/hydration/compiled/server/head.js +200 -165
  76. package/tests/hydration/compiled/server/hmr.js +62 -54
  77. package/tests/hydration/compiled/server/html-in-template.js +64 -55
  78. package/tests/hydration/compiled/server/html.js +1477 -1360
  79. package/tests/hydration/compiled/server/if-children.js +448 -408
  80. package/tests/hydration/compiled/server/if.js +204 -171
  81. package/tests/hydration/compiled/server/mixed-control-flow.js +237 -195
  82. package/tests/hydration/compiled/server/nested-control-flow.js +533 -467
  83. package/tests/hydration/compiled/server/portal.js +94 -107
  84. package/tests/hydration/compiled/server/reactivity.js +87 -64
  85. package/tests/hydration/compiled/server/return.js +1424 -1174
  86. package/tests/hydration/compiled/server/switch.js +268 -238
  87. package/tests/hydration/compiled/server/try.js +98 -87
  88. package/tests/hydration/components/{mixed-control-flow.ripple → mixed-control-flow.rsrx} +2 -2
  89. package/tests/hydration/components/{try.ripple → try.rsrx} +4 -2
  90. package/tests/hydration/mixed-control-flow.test.js +14 -0
  91. package/tests/hydration/nested-control-flow.test.js +50 -48
  92. package/tests/hydration/try.test.js +25 -0
  93. package/tests/server/__snapshots__/compiler.test.ripple.snap +0 -32
  94. package/tests/server/__snapshots__/compiler.test.rsrx.snap +95 -0
  95. package/tests/server/{compiler.test.ripple → compiler.test.rsrx} +0 -17
  96. package/tests/server/{html-nesting-validation.test.ripple → html-nesting-validation.test.rsrx} +3 -3
  97. package/tests/server/streaming-ssr.test.rsrx +115 -0
  98. package/tests/server/{style-identifier.test.ripple → style-identifier.test.rsrx} +1 -1
  99. package/tests/server/try.test.rsrx +503 -0
  100. package/tests/setup-server.js +1 -1
  101. package/tests/utils/compiler-compat-config.test.js +4 -4
  102. package/tests/utils/vite-plugin-config.test.js +1 -1
  103. package/tests/utils/vite-plugin-hmr.test.js +5 -5
  104. package/tsconfig.json +2 -0
  105. package/types/index.d.ts +13 -23
  106. package/types/server.d.ts +43 -16
  107. package/src/compiler/comment-utils.js +0 -91
  108. package/src/compiler/errors.js +0 -77
  109. package/src/compiler/identifier-utils.js +0 -80
  110. package/src/compiler/index.d.ts +0 -127
  111. package/src/compiler/index.js +0 -89
  112. package/src/compiler/phases/1-parse/index.js +0 -2964
  113. package/src/compiler/phases/1-parse/style.js +0 -704
  114. package/src/compiler/phases/2-analyze/css-analyze.js +0 -160
  115. package/src/compiler/phases/2-analyze/index.js +0 -2238
  116. package/src/compiler/phases/2-analyze/prune.js +0 -1131
  117. package/src/compiler/phases/2-analyze/validation.js +0 -168
  118. package/src/compiler/phases/3-transform/client/index.js +0 -5301
  119. package/src/compiler/phases/3-transform/segments.js +0 -2129
  120. package/src/compiler/phases/3-transform/server/index.js +0 -1899
  121. package/src/compiler/phases/3-transform/stylesheet.js +0 -545
  122. package/src/compiler/scope.js +0 -476
  123. package/src/compiler/source-map-utils.js +0 -358
  124. package/src/compiler/types/acorn.d.ts +0 -11
  125. package/src/compiler/types/estree-jsx.d.ts +0 -11
  126. package/src/compiler/types/estree.d.ts +0 -11
  127. package/src/compiler/types/index.d.ts +0 -1404
  128. package/src/compiler/types/parse.d.ts +0 -1721
  129. package/src/compiler/utils.js +0 -1263
  130. package/tests/client/_etc.test.ripple +0 -5
  131. package/tests/client/async-suspend.test.ripple +0 -94
  132. package/tests/client/try.test.ripple +0 -196
  133. package/tests/server/streaming-ssr.test.ripple +0 -68
  134. package/tests/server/try.test.ripple +0 -82
  135. /package/tests/client/array/{array.copy-within.test.ripple → array.copy-within.test.rsrx} +0 -0
  136. /package/tests/client/array/{array.derived.test.ripple → array.derived.test.rsrx} +0 -0
  137. /package/tests/client/array/{array.iteration.test.ripple → array.iteration.test.rsrx} +0 -0
  138. /package/tests/client/array/{array.mutations.test.ripple → array.mutations.test.rsrx} +0 -0
  139. /package/tests/client/array/{array.to-methods.test.ripple → array.to-methods.test.rsrx} +0 -0
  140. /package/tests/client/basic/{basic.attributes.test.ripple → basic.attributes.test.rsrx} +0 -0
  141. /package/tests/client/basic/{basic.collections.test.ripple → basic.collections.test.rsrx} +0 -0
  142. /package/tests/client/basic/{basic.components.test.ripple → basic.components.test.rsrx} +0 -0
  143. /package/tests/client/basic/{basic.events.test.ripple → basic.events.test.rsrx} +0 -0
  144. /package/tests/client/basic/{basic.get-set.test.ripple → basic.get-set.test.rsrx} +0 -0
  145. /package/tests/client/basic/{basic.hmr.test.ripple → basic.hmr.test.rsrx} +0 -0
  146. /package/tests/client/basic/{basic.reactivity.test.ripple → basic.reactivity.test.rsrx} +0 -0
  147. /package/tests/client/basic/{basic.rendering.test.ripple → basic.rendering.test.rsrx} +0 -0
  148. /package/tests/client/basic/{basic.utilities.test.ripple → basic.utilities.test.rsrx} +0 -0
  149. /package/tests/client/{boundaries.test.ripple → boundaries.test.rsrx} +0 -0
  150. /package/tests/client/compiler/{compiler.regex.test.ripple → compiler.regex.test.rsrx} +0 -0
  151. /package/tests/client/composite/{composite.dynamic-components.test.ripple → composite.dynamic-components.test.rsrx} +0 -0
  152. /package/tests/client/composite/{composite.generics.test.ripple → composite.generics.test.rsrx} +0 -0
  153. /package/tests/client/composite/{composite.props.test.ripple → composite.props.test.rsrx} +0 -0
  154. /package/tests/client/composite/{composite.reactivity.test.ripple → composite.reactivity.test.rsrx} +0 -0
  155. /package/tests/client/composite/{composite.render.test.ripple → composite.render.test.rsrx} +0 -0
  156. /package/tests/client/{computed-properties.test.ripple → computed-properties.test.rsrx} +0 -0
  157. /package/tests/client/{context.test.ripple → context.test.rsrx} +0 -0
  158. /package/tests/client/{date.test.ripple → date.test.rsrx} +0 -0
  159. /package/tests/client/{dynamic-elements.test.ripple → dynamic-elements.test.rsrx} +0 -0
  160. /package/tests/client/{events.test.ripple → events.test.rsrx} +0 -0
  161. /package/tests/client/{for.test.ripple → for.test.rsrx} +0 -0
  162. /package/tests/client/{function-overload-import.ripple → function-overload-import.rsrx} +0 -0
  163. /package/tests/client/{head.test.ripple → head.test.rsrx} +0 -0
  164. /package/tests/client/{html.test.ripple → html.test.rsrx} +0 -0
  165. /package/tests/client/{input-value.test.ripple → input-value.test.rsrx} +0 -0
  166. /package/tests/client/{lazy-destructuring.test.ripple → lazy-destructuring.test.rsrx} +0 -0
  167. /package/tests/client/{map.test.ripple → map.test.rsrx} +0 -0
  168. /package/tests/client/{media-query.test.ripple → media-query.test.rsrx} +0 -0
  169. /package/tests/client/{object.test.ripple → object.test.rsrx} +0 -0
  170. /package/tests/client/{portal.test.ripple → portal.test.rsrx} +0 -0
  171. /package/tests/client/{ref.test.ripple → ref.test.rsrx} +0 -0
  172. /package/tests/client/{set.test.ripple → set.test.rsrx} +0 -0
  173. /package/tests/client/{svg.test.ripple → svg.test.rsrx} +0 -0
  174. /package/tests/client/{switch.test.ripple → switch.test.rsrx} +0 -0
  175. /package/tests/client/{tsx.test.ripple → tsx.test.rsrx} +0 -0
  176. /package/tests/client/{typescript-generics.test.ripple → typescript-generics.test.rsrx} +0 -0
  177. /package/tests/client/url/{url.derived.test.ripple → url.derived.test.rsrx} +0 -0
  178. /package/tests/client/url/{url.parsing.test.ripple → url.parsing.test.rsrx} +0 -0
  179. /package/tests/client/url/{url.partial-removal.test.ripple → url.partial-removal.test.rsrx} +0 -0
  180. /package/tests/client/url/{url.reactivity.test.ripple → url.reactivity.test.rsrx} +0 -0
  181. /package/tests/client/url/{url.serialization.test.ripple → url.serialization.test.rsrx} +0 -0
  182. /package/tests/client/url-search-params/{url-search-params.derived.test.ripple → url-search-params.derived.test.rsrx} +0 -0
  183. /package/tests/client/url-search-params/{url-search-params.initialization.test.ripple → url-search-params.initialization.test.rsrx} +0 -0
  184. /package/tests/client/url-search-params/{url-search-params.iteration.test.ripple → url-search-params.iteration.test.rsrx} +0 -0
  185. /package/tests/client/url-search-params/{url-search-params.mutation.test.ripple → url-search-params.mutation.test.rsrx} +0 -0
  186. /package/tests/client/url-search-params/{url-search-params.retrieval.test.ripple → url-search-params.retrieval.test.rsrx} +0 -0
  187. /package/tests/client/url-search-params/{url-search-params.serialization.test.ripple → url-search-params.serialization.test.rsrx} +0 -0
  188. /package/tests/client/url-search-params/{url-search-params.tracked-url.test.ripple → url-search-params.tracked-url.test.rsrx} +0 -0
  189. /package/tests/hydration/components/{basic.ripple → basic.rsrx} +0 -0
  190. /package/tests/hydration/components/{composite.ripple → composite.rsrx} +0 -0
  191. /package/tests/hydration/components/{events.ripple → events.rsrx} +0 -0
  192. /package/tests/hydration/components/{for.ripple → for.rsrx} +0 -0
  193. /package/tests/hydration/components/{head.ripple → head.rsrx} +0 -0
  194. /package/tests/hydration/components/{hmr.ripple → hmr.rsrx} +0 -0
  195. /package/tests/hydration/components/{html-in-template.ripple → html-in-template.rsrx} +0 -0
  196. /package/tests/hydration/components/{html.ripple → html.rsrx} +0 -0
  197. /package/tests/hydration/components/{if-children.ripple → if-children.rsrx} +0 -0
  198. /package/tests/hydration/components/{if.ripple → if.rsrx} +0 -0
  199. /package/tests/hydration/components/{nested-control-flow.ripple → nested-control-flow.rsrx} +0 -0
  200. /package/tests/hydration/components/{portal.ripple → portal.rsrx} +0 -0
  201. /package/tests/hydration/components/{reactivity.ripple → reactivity.rsrx} +0 -0
  202. /package/tests/hydration/components/{return.ripple → return.rsrx} +0 -0
  203. /package/tests/hydration/components/{switch.ripple → switch.rsrx} +0 -0
  204. /package/tests/server/{await.test.ripple → await.test.rsrx} +0 -0
  205. /package/tests/server/{basic.attributes.test.ripple → basic.attributes.test.rsrx} +0 -0
  206. /package/tests/server/{basic.components.test.ripple → basic.components.test.rsrx} +0 -0
  207. /package/tests/server/{basic.test.ripple → basic.test.rsrx} +0 -0
  208. /package/tests/server/{composite.props.test.ripple → composite.props.test.rsrx} +0 -0
  209. /package/tests/server/{composite.test.ripple → composite.test.rsrx} +0 -0
  210. /package/tests/server/{context.test.ripple → context.test.rsrx} +0 -0
  211. /package/tests/server/{dynamic-elements.test.ripple → dynamic-elements.test.rsrx} +0 -0
  212. /package/tests/server/{for.test.ripple → for.test.rsrx} +0 -0
  213. /package/tests/server/{head.test.ripple → head.test.rsrx} +0 -0
  214. /package/tests/server/{if.test.ripple → if.test.rsrx} +0 -0
  215. /package/tests/server/{lazy-destructuring.test.ripple → lazy-destructuring.test.rsrx} +0 -0
  216. /package/tests/server/{return.test.ripple → return.test.rsrx} +0 -0
  217. /package/tests/server/{switch.test.ripple → switch.test.rsrx} +0 -0
@@ -0,0 +1,319 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`for statements > correctly handles intermediate statements in for block 1`] = `
4
+ <div>
5
+ <div>
6
+ <div>
7
+ <div>
8
+ 1
9
+ </div>
10
+ <div>
11
+ 1
12
+ </div>
13
+ </div>
14
+ <div>
15
+ <div>
16
+ 2
17
+ </div>
18
+ <div>
19
+ 2
20
+ </div>
21
+ </div>
22
+ <div>
23
+ <div>
24
+ 3
25
+ </div>
26
+ <div>
27
+ 3
28
+ </div>
29
+ </div>
30
+
31
+ </div>
32
+ <button>
33
+ Add Item
34
+ </button>
35
+
36
+ </div>
37
+ `;
38
+
39
+ exports[`for statements > correctly handles intermediate statements in for block 2`] = `
40
+ <div>
41
+ <div>
42
+ <div>
43
+ <div>
44
+ 1
45
+ </div>
46
+ <div>
47
+ 1
48
+ </div>
49
+ </div>
50
+ <div>
51
+ <div>
52
+ 2
53
+ </div>
54
+ <div>
55
+ 2
56
+ </div>
57
+ </div>
58
+ <div>
59
+ <div>
60
+ 3
61
+ </div>
62
+ <div>
63
+ 3
64
+ </div>
65
+ </div>
66
+ <div>
67
+ <div>
68
+ 4
69
+ </div>
70
+ <div>
71
+ 4
72
+ </div>
73
+ </div>
74
+
75
+ </div>
76
+ <button>
77
+ Add Item
78
+ </button>
79
+
80
+ </div>
81
+ `;
82
+
83
+ exports[`for statements > correctly handles keyed for...of loops 1`] = `
84
+ <div>
85
+ <!---->
86
+ <div>
87
+ 0:Item 1
88
+ </div>
89
+ <div>
90
+ 1:Item 2
91
+ </div>
92
+ <div>
93
+ 2:Item 3
94
+ </div>
95
+ <!---->
96
+ <button>
97
+ Reverse
98
+ </button>
99
+
100
+ </div>
101
+ `;
102
+
103
+ exports[`for statements > correctly handles keyed for...of loops 2`] = `
104
+ <div>
105
+ <!---->
106
+ <div>
107
+ 0:Item 3
108
+ </div>
109
+ <div>
110
+ 1:Item 2
111
+ </div>
112
+ <div>
113
+ 2:Item 1
114
+ </div>
115
+ <!---->
116
+ <button>
117
+ Reverse
118
+ </button>
119
+
120
+ </div>
121
+ `;
122
+
123
+ exports[`for statements > correctly handles the index in a for...of loop 1`] = `
124
+ <div>
125
+ <div>
126
+ <div>
127
+ 0 : a
128
+ </div>
129
+ <div>
130
+ 1 : b
131
+ </div>
132
+ <div>
133
+ 2 : c
134
+ </div>
135
+
136
+ </div>
137
+ <button>
138
+ Add Item
139
+ </button>
140
+ <button>
141
+ Reverse
142
+ </button>
143
+
144
+ </div>
145
+ `;
146
+
147
+ exports[`for statements > correctly handles the index in a for...of loop 2`] = `
148
+ <div>
149
+ <div>
150
+ <div>
151
+ 0 : a
152
+ </div>
153
+ <div>
154
+ 1 : b
155
+ </div>
156
+ <div>
157
+ 2 : c
158
+ </div>
159
+ <div>
160
+ 3 : d
161
+ </div>
162
+
163
+ </div>
164
+ <button>
165
+ Add Item
166
+ </button>
167
+ <button>
168
+ Reverse
169
+ </button>
170
+
171
+ </div>
172
+ `;
173
+
174
+ exports[`for statements > correctly handles the index in a for...of loop 3`] = `
175
+ <div>
176
+ <div>
177
+ <div>
178
+ 0 : d
179
+ </div>
180
+ <div>
181
+ 1 : c
182
+ </div>
183
+ <div>
184
+ 2 : b
185
+ </div>
186
+ <div>
187
+ 3 : a
188
+ </div>
189
+
190
+ </div>
191
+ <button>
192
+ Add Item
193
+ </button>
194
+ <button>
195
+ Reverse
196
+ </button>
197
+
198
+ </div>
199
+ `;
200
+
201
+ exports[`for statements > handles updating with new objects with same key 1`] = `
202
+ <div>
203
+ <!---->
204
+ <div>
205
+ 0:Item 1
206
+ </div>
207
+ <div>
208
+ 1:Item 2
209
+ </div>
210
+ <div>
211
+ 2:Item 3
212
+ </div>
213
+ <!---->
214
+ <button>
215
+ Reverse
216
+ </button>
217
+
218
+ </div>
219
+ `;
220
+
221
+ exports[`for statements > handles updating with new objects with same key 2`] = `
222
+ <div>
223
+ <!---->
224
+ <div>
225
+ 0:Item 1!
226
+ </div>
227
+ <div>
228
+ 1:Item 2!
229
+ </div>
230
+ <div>
231
+ 2:Item 3!
232
+ </div>
233
+ <!---->
234
+ <button>
235
+ Reverse
236
+ </button>
237
+
238
+ </div>
239
+ `;
240
+
241
+ exports[`for statements > renders a simple dynamic array 1`] = `
242
+ <div>
243
+ <!---->
244
+ <div
245
+ class="Item 1"
246
+ >
247
+ Item 1
248
+ </div>
249
+ <div
250
+ class="Item 2"
251
+ >
252
+ Item 2
253
+ </div>
254
+ <div
255
+ class="Item 3"
256
+ >
257
+ Item 3
258
+ </div>
259
+ <!---->
260
+ <button>
261
+ Add Item
262
+ </button>
263
+
264
+ </div>
265
+ `;
266
+
267
+ exports[`for statements > renders a simple dynamic array 2`] = `
268
+ <div>
269
+ <!---->
270
+ <div
271
+ class="Item 1"
272
+ >
273
+ Item 1
274
+ </div>
275
+ <div
276
+ class="Item 2"
277
+ >
278
+ Item 2
279
+ </div>
280
+ <div
281
+ class="Item 3"
282
+ >
283
+ Item 3
284
+ </div>
285
+ <div
286
+ class="Item 4"
287
+ >
288
+ Item 4
289
+ </div>
290
+ <!---->
291
+ <button>
292
+ Add Item
293
+ </button>
294
+
295
+ </div>
296
+ `;
297
+
298
+ exports[`for statements > renders a simple static array 1`] = `
299
+ <div>
300
+ <!---->
301
+ <div
302
+ class="Item 1"
303
+ >
304
+ Item 1
305
+ </div>
306
+ <div
307
+ class="Item 2"
308
+ >
309
+ Item 2
310
+ </div>
311
+ <div
312
+ class="Item 3"
313
+ >
314
+ Item 3
315
+ </div>
316
+ <!---->
317
+
318
+ </div>
319
+ `;
@@ -0,0 +1,40 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`html directive > renders dynamic html 1`] = `
4
+ <div>
5
+ <!---->
6
+ <div>
7
+ Test
8
+ </div>
9
+ <!---->
10
+ <button>
11
+ Update
12
+ </button>
13
+
14
+ </div>
15
+ `;
16
+
17
+ exports[`html directive > renders dynamic html 2`] = `
18
+ <div>
19
+ <!---->
20
+ <div>
21
+ Updated
22
+ </div>
23
+ <!---->
24
+ <button>
25
+ Update
26
+ </button>
27
+
28
+ </div>
29
+ `;
30
+
31
+ exports[`html directive > renders static html 1`] = `
32
+ <div>
33
+ <!---->
34
+ <div>
35
+ Test
36
+ </div>
37
+ <!---->
38
+
39
+ </div>
40
+ `;
@@ -0,0 +1,7 @@
1
+ // This file is for tests that don't fit anywhere else
2
+
3
+ describe('etc', () => {
4
+ it('this is here so the empty test suite does not fail', () => {
5
+ expect(true).toBe(true);
6
+ });
7
+ });
@@ -1,4 +1,4 @@
1
- import { flushSync, RippleArray } from 'ripple';
1
+ import { flushSync, RippleArray, trackAsync } from 'ripple';
2
2
  import { MAX_ARRAY_LENGTH } from '../../../src/runtime/internal/client/constants.js';
3
3
 
4
4
  describe('RippleArray > static', () => {
@@ -46,11 +46,11 @@ describe('RippleArray > static', () => {
46
46
  }
47
47
 
48
48
  component ArrayTest() {
49
- let items = await RippleArray.fromAsync([1, 2, 3]);
49
+ let &[items] = trackAsync(() => RippleArray.fromAsync([1, 2, 3]));
50
50
 
51
51
  <button
52
52
  onClick={() => {
53
- if (items) items.push(4);
53
+ items.push(4);
54
54
  }}
55
55
  >
56
56
  {'add item'}
@@ -85,16 +85,16 @@ describe('RippleArray > static', () => {
85
85
  }
86
86
 
87
87
  component ArrayTest() {
88
- let items = await RippleArray.fromAsync([1, 2, 3], (x: number) => x * 2);
88
+ let &[items] = trackAsync(() => RippleArray.fromAsync([1, 2, 3], (x: number) => x * 2));
89
89
 
90
90
  <button
91
91
  onClick={() => {
92
- if (items) items.push(8);
92
+ items.push(8);
93
93
  }}
94
94
  >
95
95
  {'add item'}
96
96
  </button>
97
- <pre>{items ? JSON.stringify(items) : 'Loading...'}</pre>
97
+ <pre>{JSON.stringify(items)}</pre>
98
98
  }
99
99
 
100
100
  render(Parent);
@@ -125,26 +125,24 @@ describe('RippleArray > static', () => {
125
125
  }
126
126
 
127
127
  component ArrayTest() {
128
- let items: RippleArray<string> | null = null;
129
- let error: string | null = null;
130
-
131
128
  async function* throwingIterable() {
132
129
  throw new Error('Async error');
133
130
  }
134
131
 
135
132
  try {
136
- items = await RippleArray.fromAsync(throwingIterable());
137
- for (const item of items) {
138
- <li>{item}</li>
139
- }
133
+ let &[items] = trackAsync(() => RippleArray.fromAsync(throwingIterable()));
134
+
135
+ <ul>
136
+ for (const item of items) {
137
+ <li>{item}</li>
138
+ }
139
+ </ul>
140
140
  } pending {
141
141
  <div>{'Loading...'}</div>
142
142
  } catch (e) {
143
- error = (e as Error).message;
143
+ <pre>{'Error: ' + (e as Error).message}</pre>
144
+ <pre>{'No items'}</pre>
144
145
  }
145
-
146
- <pre>{error ? 'Error: ' + error : 'No error'}</pre>
147
- <pre>{items ? JSON.stringify(items) : 'No items'}</pre>
148
146
  }
149
147
 
150
148
  render(Parent);
@@ -228,10 +226,10 @@ describe('RippleArray > static', () => {
228
226
  }
229
227
 
230
228
  component ArrayTest() {
231
- const items = await RippleArray.fromAsync([6]);
229
+ let &[items] = trackAsync(() => RippleArray.fromAsync([6]));
232
230
 
233
- <pre>{items ? JSON.stringify(items) : 'Loading...'}</pre>
234
- <pre>{items ? items.length : ''}</pre>
231
+ <pre>{JSON.stringify(items)}</pre>
232
+ <pre>{items.length}</pre>
235
233
  }
236
234
 
237
235
  render(Parent);