ripple 0.3.11 → 0.3.13
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.
- package/CHANGELOG.md +43 -0
- package/package.json +8 -2
- package/src/compiler/phases/1-parse/index.js +73 -30
- package/src/compiler/phases/2-analyze/index.js +28 -58
- package/src/compiler/phases/3-transform/client/index.js +127 -164
- package/src/compiler/phases/3-transform/segments.js +4 -8
- package/src/compiler/phases/3-transform/server/index.js +210 -360
- package/src/compiler/types/import.d.ts +0 -12
- package/src/compiler/types/index.d.ts +12 -5
- package/src/compiler/types/parse.d.ts +2 -0
- package/src/compiler/utils.js +39 -44
- package/src/helpers.d.ts +2 -0
- package/src/runtime/index-client.js +15 -13
- package/src/runtime/index-server.js +18 -11
- package/src/runtime/internal/client/blocks.js +19 -23
- package/src/runtime/internal/client/constants.js +20 -9
- package/src/runtime/internal/client/index.js +14 -4
- package/src/runtime/internal/client/runtime.js +435 -173
- package/src/runtime/internal/client/try.js +334 -156
- package/src/runtime/internal/client/types.d.ts +26 -0
- package/src/runtime/internal/server/blocks.js +183 -0
- package/src/runtime/internal/server/constants.js +7 -0
- package/src/runtime/internal/server/index.js +780 -148
- package/src/runtime/internal/server/types.d.ts +35 -0
- package/src/server/index.js +1 -1
- package/src/utils/async.js +35 -0
- package/src/utils/builders.js +3 -1
- package/tests/client/__snapshots__/computed-properties.test.rsrx.snap +49 -0
- package/tests/client/__snapshots__/for.test.rsrx.snap +319 -0
- package/tests/client/__snapshots__/html.test.rsrx.snap +40 -0
- package/tests/client/_etc.test.rsrx +7 -0
- package/tests/client/array/{array.static.test.ripple → array.static.test.rsrx} +18 -20
- package/tests/client/async-suspend.test.rsrx +662 -0
- package/tests/client/basic/__snapshots__/basic.attributes.test.rsrx.snap +60 -0
- package/tests/client/basic/__snapshots__/basic.rendering.test.rsrx.snap +59 -0
- package/tests/client/basic/{basic.errors.test.ripple → basic.errors.test.rsrx} +2 -2
- package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +12 -0
- package/tests/client/compiler/__snapshots__/compiler.typescript.test.rsrx.snap +46 -0
- package/tests/client/compiler/{compiler.try-in-function.test.ripple → compiler.try-in-function.test.rsrx} +8 -6
- package/tests/client/composite/__snapshots__/composite.render.test.rsrx.snap +37 -0
- package/tests/client/{function-overload.test.ripple → function-overload.test.rsrx} +1 -1
- package/tests/client/try.test.rsrx +1702 -0
- package/tests/hydration/build-components.js +5 -3
- package/tests/hydration/compiled/client/head.js +11 -11
- package/tests/hydration/compiled/client/mixed-control-flow.js +55 -70
- package/tests/hydration/compiled/client/nested-control-flow.js +72 -88
- package/tests/hydration/compiled/client/try.js +42 -54
- package/tests/hydration/compiled/server/basic.js +491 -369
- package/tests/hydration/compiled/server/composite.js +153 -128
- package/tests/hydration/compiled/server/events.js +166 -145
- package/tests/hydration/compiled/server/for.js +821 -677
- package/tests/hydration/compiled/server/head.js +200 -165
- package/tests/hydration/compiled/server/hmr.js +62 -54
- package/tests/hydration/compiled/server/html-in-template.js +64 -55
- package/tests/hydration/compiled/server/html.js +1477 -1360
- package/tests/hydration/compiled/server/if-children.js +448 -408
- package/tests/hydration/compiled/server/if.js +204 -171
- package/tests/hydration/compiled/server/mixed-control-flow.js +237 -195
- package/tests/hydration/compiled/server/nested-control-flow.js +533 -467
- package/tests/hydration/compiled/server/portal.js +94 -107
- package/tests/hydration/compiled/server/reactivity.js +87 -64
- package/tests/hydration/compiled/server/return.js +1424 -1174
- package/tests/hydration/compiled/server/switch.js +268 -238
- package/tests/hydration/compiled/server/try.js +98 -87
- package/tests/hydration/components/{mixed-control-flow.ripple → mixed-control-flow.rsrx} +2 -2
- package/tests/hydration/components/{try.ripple → try.rsrx} +4 -2
- package/tests/hydration/mixed-control-flow.test.js +14 -0
- package/tests/hydration/nested-control-flow.test.js +50 -48
- package/tests/hydration/try.test.js +25 -0
- package/tests/server/__snapshots__/compiler.test.ripple.snap +0 -32
- package/tests/server/__snapshots__/compiler.test.rsrx.snap +95 -0
- package/tests/server/{compiler.test.ripple → compiler.test.rsrx} +0 -17
- package/tests/server/{html-nesting-validation.test.ripple → html-nesting-validation.test.rsrx} +3 -3
- package/tests/server/streaming-ssr.test.rsrx +115 -0
- package/tests/server/try.test.rsrx +503 -0
- package/tests/utils/compiler-compat-config.test.js +3 -3
- package/tests/utils/vite-plugin-config.test.js +1 -1
- package/tests/utils/vite-plugin-hmr.test.js +5 -5
- package/tsconfig.json +4 -0
- package/types/index.d.ts +13 -23
- package/types/server.d.ts +43 -16
- package/tests/client/_etc.test.ripple +0 -5
- package/tests/client/async-suspend.test.ripple +0 -94
- package/tests/client/try.test.ripple +0 -196
- package/tests/server/streaming-ssr.test.ripple +0 -68
- package/tests/server/try.test.ripple +0 -82
- /package/tests/client/array/{array.copy-within.test.ripple → array.copy-within.test.rsrx} +0 -0
- /package/tests/client/array/{array.derived.test.ripple → array.derived.test.rsrx} +0 -0
- /package/tests/client/array/{array.iteration.test.ripple → array.iteration.test.rsrx} +0 -0
- /package/tests/client/array/{array.mutations.test.ripple → array.mutations.test.rsrx} +0 -0
- /package/tests/client/array/{array.to-methods.test.ripple → array.to-methods.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.attributes.test.ripple → basic.attributes.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.collections.test.ripple → basic.collections.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.components.test.ripple → basic.components.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.events.test.ripple → basic.events.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.get-set.test.ripple → basic.get-set.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.hmr.test.ripple → basic.hmr.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.reactivity.test.ripple → basic.reactivity.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.rendering.test.ripple → basic.rendering.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.styling.test.ripple → basic.styling.test.rsrx} +0 -0
- /package/tests/client/basic/{basic.utilities.test.ripple → basic.utilities.test.rsrx} +0 -0
- /package/tests/client/{boundaries.test.ripple → boundaries.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.assignments.test.ripple → compiler.assignments.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.attributes.test.ripple → compiler.attributes.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.basic.test.ripple → compiler.basic.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.regex.test.ripple → compiler.regex.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.tracked-access.test.ripple → compiler.tracked-access.test.rsrx} +0 -0
- /package/tests/client/compiler/{compiler.typescript.test.ripple → compiler.typescript.test.rsrx} +0 -0
- /package/tests/client/composite/{composite.dynamic-components.test.ripple → composite.dynamic-components.test.rsrx} +0 -0
- /package/tests/client/composite/{composite.generics.test.ripple → composite.generics.test.rsrx} +0 -0
- /package/tests/client/composite/{composite.props.test.ripple → composite.props.test.rsrx} +0 -0
- /package/tests/client/composite/{composite.reactivity.test.ripple → composite.reactivity.test.rsrx} +0 -0
- /package/tests/client/composite/{composite.render.test.ripple → composite.render.test.rsrx} +0 -0
- /package/tests/client/{computed-properties.test.ripple → computed-properties.test.rsrx} +0 -0
- /package/tests/client/{context.test.ripple → context.test.rsrx} +0 -0
- /package/tests/client/css/{global-additional-cases.test.ripple → global-additional-cases.test.rsrx} +0 -0
- /package/tests/client/css/{global-advanced-selectors.test.ripple → global-advanced-selectors.test.rsrx} +0 -0
- /package/tests/client/css/{global-at-rules.test.ripple → global-at-rules.test.rsrx} +0 -0
- /package/tests/client/css/{global-basic.test.ripple → global-basic.test.rsrx} +0 -0
- /package/tests/client/css/{global-classes-ids.test.ripple → global-classes-ids.test.rsrx} +0 -0
- /package/tests/client/css/{global-combinators.test.ripple → global-combinators.test.rsrx} +0 -0
- /package/tests/client/css/{global-complex-nesting.test.ripple → global-complex-nesting.test.rsrx} +0 -0
- /package/tests/client/css/{global-edge-cases.test.ripple → global-edge-cases.test.rsrx} +0 -0
- /package/tests/client/css/{global-keyframes.test.ripple → global-keyframes.test.rsrx} +0 -0
- /package/tests/client/css/{global-nested.test.ripple → global-nested.test.rsrx} +0 -0
- /package/tests/client/css/{global-pseudo.test.ripple → global-pseudo.test.rsrx} +0 -0
- /package/tests/client/css/{global-scoping.test.ripple → global-scoping.test.rsrx} +0 -0
- /package/tests/client/css/{style-identifier.test.ripple → style-identifier.test.rsrx} +0 -0
- /package/tests/client/{date.test.ripple → date.test.rsrx} +0 -0
- /package/tests/client/{dynamic-elements.test.ripple → dynamic-elements.test.rsrx} +0 -0
- /package/tests/client/{events.test.ripple → events.test.rsrx} +0 -0
- /package/tests/client/{for.test.ripple → for.test.rsrx} +0 -0
- /package/tests/client/{function-overload-import.ripple → function-overload-import.rsrx} +0 -0
- /package/tests/client/{head.test.ripple → head.test.rsrx} +0 -0
- /package/tests/client/{html.test.ripple → html.test.rsrx} +0 -0
- /package/tests/client/{input-value.test.ripple → input-value.test.rsrx} +0 -0
- /package/tests/client/{lazy-destructuring.test.ripple → lazy-destructuring.test.rsrx} +0 -0
- /package/tests/client/{map.test.ripple → map.test.rsrx} +0 -0
- /package/tests/client/{media-query.test.ripple → media-query.test.rsrx} +0 -0
- /package/tests/client/{object.test.ripple → object.test.rsrx} +0 -0
- /package/tests/client/{portal.test.ripple → portal.test.rsrx} +0 -0
- /package/tests/client/{ref.test.ripple → ref.test.rsrx} +0 -0
- /package/tests/client/{return.test.ripple → return.test.rsrx} +0 -0
- /package/tests/client/{set.test.ripple → set.test.rsrx} +0 -0
- /package/tests/client/{svg.test.ripple → svg.test.rsrx} +0 -0
- /package/tests/client/{switch.test.ripple → switch.test.rsrx} +0 -0
- /package/tests/client/{tsx.test.ripple → tsx.test.rsrx} +0 -0
- /package/tests/client/{typescript-generics.test.ripple → typescript-generics.test.rsrx} +0 -0
- /package/tests/client/url/{url.derived.test.ripple → url.derived.test.rsrx} +0 -0
- /package/tests/client/url/{url.parsing.test.ripple → url.parsing.test.rsrx} +0 -0
- /package/tests/client/url/{url.partial-removal.test.ripple → url.partial-removal.test.rsrx} +0 -0
- /package/tests/client/url/{url.reactivity.test.ripple → url.reactivity.test.rsrx} +0 -0
- /package/tests/client/url/{url.serialization.test.ripple → url.serialization.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.derived.test.ripple → url-search-params.derived.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.initialization.test.ripple → url-search-params.initialization.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.iteration.test.ripple → url-search-params.iteration.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.mutation.test.ripple → url-search-params.mutation.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.retrieval.test.ripple → url-search-params.retrieval.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.serialization.test.ripple → url-search-params.serialization.test.rsrx} +0 -0
- /package/tests/client/url-search-params/{url-search-params.tracked-url.test.ripple → url-search-params.tracked-url.test.rsrx} +0 -0
- /package/tests/hydration/components/{basic.ripple → basic.rsrx} +0 -0
- /package/tests/hydration/components/{composite.ripple → composite.rsrx} +0 -0
- /package/tests/hydration/components/{events.ripple → events.rsrx} +0 -0
- /package/tests/hydration/components/{for.ripple → for.rsrx} +0 -0
- /package/tests/hydration/components/{head.ripple → head.rsrx} +0 -0
- /package/tests/hydration/components/{hmr.ripple → hmr.rsrx} +0 -0
- /package/tests/hydration/components/{html-in-template.ripple → html-in-template.rsrx} +0 -0
- /package/tests/hydration/components/{html.ripple → html.rsrx} +0 -0
- /package/tests/hydration/components/{if-children.ripple → if-children.rsrx} +0 -0
- /package/tests/hydration/components/{if.ripple → if.rsrx} +0 -0
- /package/tests/hydration/components/{nested-control-flow.ripple → nested-control-flow.rsrx} +0 -0
- /package/tests/hydration/components/{portal.ripple → portal.rsrx} +0 -0
- /package/tests/hydration/components/{reactivity.ripple → reactivity.rsrx} +0 -0
- /package/tests/hydration/components/{return.ripple → return.rsrx} +0 -0
- /package/tests/hydration/components/{switch.ripple → switch.rsrx} +0 -0
- /package/tests/server/{await.test.ripple → await.test.rsrx} +0 -0
- /package/tests/server/{basic.attributes.test.ripple → basic.attributes.test.rsrx} +0 -0
- /package/tests/server/{basic.components.test.ripple → basic.components.test.rsrx} +0 -0
- /package/tests/server/{basic.test.ripple → basic.test.rsrx} +0 -0
- /package/tests/server/{composite.props.test.ripple → composite.props.test.rsrx} +0 -0
- /package/tests/server/{composite.test.ripple → composite.test.rsrx} +0 -0
- /package/tests/server/{context.test.ripple → context.test.rsrx} +0 -0
- /package/tests/server/{dynamic-elements.test.ripple → dynamic-elements.test.rsrx} +0 -0
- /package/tests/server/{for.test.ripple → for.test.rsrx} +0 -0
- /package/tests/server/{head.test.ripple → head.test.rsrx} +0 -0
- /package/tests/server/{if.test.ripple → if.test.rsrx} +0 -0
- /package/tests/server/{lazy-destructuring.test.ripple → lazy-destructuring.test.rsrx} +0 -0
- /package/tests/server/{return.test.ripple → return.test.rsrx} +0 -0
- /package/tests/server/{style-identifier.test.ripple → style-identifier.test.rsrx} +0 -0
- /package/tests/server/{switch.test.ripple → switch.test.rsrx} +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`basic client > attribute rendering > handles boolean attributes with no prop value provides 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="container"
|
|
7
|
+
>
|
|
8
|
+
<button
|
|
9
|
+
disabled=""
|
|
10
|
+
>
|
|
11
|
+
Button
|
|
12
|
+
</button>
|
|
13
|
+
<input
|
|
14
|
+
checked=""
|
|
15
|
+
type="checkbox"
|
|
16
|
+
/>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
exports[`basic client > attribute rendering > handles boolean props correctly 1`] = `
|
|
23
|
+
<div>
|
|
24
|
+
<div
|
|
25
|
+
data-disabled=""
|
|
26
|
+
/>
|
|
27
|
+
<input
|
|
28
|
+
disabled=""
|
|
29
|
+
/>
|
|
30
|
+
<!---->
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
`;
|
|
34
|
+
|
|
35
|
+
exports[`basic client > attribute rendering > render spread props without duplication 1`] = `
|
|
36
|
+
<div>
|
|
37
|
+
<div>
|
|
38
|
+
<input
|
|
39
|
+
id="vehicle1"
|
|
40
|
+
name="car"
|
|
41
|
+
type="checkbox"
|
|
42
|
+
value="Bike"
|
|
43
|
+
/>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
`;
|
|
48
|
+
|
|
49
|
+
exports[`basic client > attribute rendering > render static attributes 1`] = `
|
|
50
|
+
<div>
|
|
51
|
+
<div
|
|
52
|
+
class="foo"
|
|
53
|
+
id="bar"
|
|
54
|
+
style="color: red;"
|
|
55
|
+
>
|
|
56
|
+
Hello World
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
</div>
|
|
60
|
+
`;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`basic client > rendering & text > basic operations 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div>
|
|
6
|
+
0
|
|
7
|
+
</div>
|
|
8
|
+
<div>
|
|
9
|
+
2
|
|
10
|
+
</div>
|
|
11
|
+
<div>
|
|
12
|
+
5
|
|
13
|
+
</div>
|
|
14
|
+
<div>
|
|
15
|
+
2
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
</div>
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
exports[`basic client > rendering & text > renders semi-dynamic text 1`] = `
|
|
22
|
+
<div>
|
|
23
|
+
<div>
|
|
24
|
+
Hello World
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
exports[`basic client > rendering & text > renders simple JS expression logic correctly 1`] = `
|
|
31
|
+
<div>
|
|
32
|
+
<div>
|
|
33
|
+
{"0":"Test"}
|
|
34
|
+
</div>
|
|
35
|
+
<div>
|
|
36
|
+
1
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
</div>
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
exports[`basic client > rendering & text > renders static text 1`] = `
|
|
43
|
+
<div>
|
|
44
|
+
<div>
|
|
45
|
+
Hello World
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
</div>
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
exports[`basic client > rendering & text > should handle lexical scopes correctly 1`] = `
|
|
52
|
+
<div>
|
|
53
|
+
<section>
|
|
54
|
+
Nested scope variable
|
|
55
|
+
<!---->
|
|
56
|
+
</section>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
`;
|
|
@@ -182,7 +182,7 @@ describe('basic client > errors', () => {
|
|
|
182
182
|
);
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
it('should throw error for await
|
|
185
|
+
it('should throw error for await inside client components', () => {
|
|
186
186
|
const code = `
|
|
187
187
|
export default component App() {
|
|
188
188
|
let data = 'initial';
|
|
@@ -195,7 +195,7 @@ describe('basic client > errors', () => {
|
|
|
195
195
|
`;
|
|
196
196
|
expect(() => {
|
|
197
197
|
compile(code, 'test.ripple', { mode: 'client' });
|
|
198
|
-
}).toThrow('`await` is not allowed
|
|
198
|
+
}).toThrow('`await` is not allowed inside client components');
|
|
199
199
|
});
|
|
200
200
|
|
|
201
201
|
it('should throw error for while loop inside a component', () => {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`compiler > assignments > compiles tracked values in effect with assignment expression 1`] = `"state.count = _$_.get(lazy);"`;
|
|
4
|
+
|
|
5
|
+
exports[`compiler > assignments > compiles tracked values in effect with update expressions 1`] = `
|
|
6
|
+
"_$_.untrack(() => {
|
|
7
|
+
state.preIncrement = _$_.update_pre(lazy);
|
|
8
|
+
state.postIncrement = _$_.update(lazy);
|
|
9
|
+
state.preDecrement = _$_.update_pre(lazy, -1);
|
|
10
|
+
state.postDecrement = _$_.update(lazy, -1);
|
|
11
|
+
});"
|
|
12
|
+
`;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`compiler > typescript > compiles TSInstantiationExpression 1`] = `
|
|
4
|
+
"import * as _$_ from 'ripple/internal/client';
|
|
5
|
+
|
|
6
|
+
function makeBox(value) {
|
|
7
|
+
return { value };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const makeStringBox = (makeBox);
|
|
11
|
+
const stringBox = makeStringBox('abc');
|
|
12
|
+
const ErrorMap = (Map);
|
|
13
|
+
const errorMap = new ErrorMap();"
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
exports[`compiler > typescript > removes class TypeScript syntax from JS output 1`] = `
|
|
17
|
+
"import * as _$_ from 'ripple/internal/client';
|
|
18
|
+
|
|
19
|
+
class PrintEvent {
|
|
20
|
+
text;
|
|
21
|
+
|
|
22
|
+
constructor(text) {
|
|
23
|
+
this.text = text;
|
|
24
|
+
}
|
|
25
|
+
}"
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
exports[`compiler > typescript > removes class extends type arguments from JS output 1`] = `
|
|
29
|
+
"import * as _$_ from 'ripple/internal/client';
|
|
30
|
+
|
|
31
|
+
class StringMap extends Map {
|
|
32
|
+
constructor() {
|
|
33
|
+
var __block = _$_.scope();
|
|
34
|
+
|
|
35
|
+
super();
|
|
36
|
+
}
|
|
37
|
+
}"
|
|
38
|
+
`;
|
|
39
|
+
|
|
40
|
+
exports[`compiler > typescript > removes type assertions from function parameters and leaves default values 1`] = `
|
|
41
|
+
"import * as _$_ from 'ripple/internal/client';
|
|
42
|
+
|
|
43
|
+
function getString(e = 'test') {
|
|
44
|
+
return e;
|
|
45
|
+
}"
|
|
46
|
+
`;
|
|
@@ -71,22 +71,24 @@ describe('compiler > Volar transform does not duplicate try blocks from function
|
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
it('try at component top level is preserved', () => {
|
|
74
|
-
const source = `
|
|
74
|
+
const source = `import { trackAsync } from 'ripple';
|
|
75
|
+
export component App() {
|
|
75
76
|
try {
|
|
76
|
-
|
|
77
|
+
let &[data] = trackAsync(() => fetch('/api'));
|
|
77
78
|
} catch (e) {}
|
|
78
79
|
<div>{"hi"}</div>
|
|
79
80
|
}`;
|
|
80
81
|
const result = compile_to_volar_mappings(source, 'test.ripple').code;
|
|
81
82
|
|
|
82
83
|
expect(count_occurrences(result, 'try {')).toBe(1);
|
|
83
|
-
expect(count_occurrences(result, '
|
|
84
|
+
expect(count_occurrences(result, 'trackAsync(() => fetch(\'/api\'))')).toBe(1);
|
|
84
85
|
});
|
|
85
86
|
|
|
86
87
|
it('component-level try and function-level try coexist without duplication', () => {
|
|
87
|
-
const source = `
|
|
88
|
+
const source = `import { trackAsync } from 'ripple';
|
|
89
|
+
export component App() {
|
|
88
90
|
try {
|
|
89
|
-
|
|
91
|
+
let &[data] = trackAsync(() => fetch('/init'));
|
|
90
92
|
} catch (e) {}
|
|
91
93
|
|
|
92
94
|
async function refresh() {
|
|
@@ -99,7 +101,7 @@ describe('compiler > Volar transform does not duplicate try blocks from function
|
|
|
99
101
|
const result = compile_to_volar_mappings(source, 'test.ripple').code;
|
|
100
102
|
|
|
101
103
|
expect(count_occurrences(result, 'try {')).toBe(2);
|
|
102
|
-
expect(count_occurrences(result, '
|
|
104
|
+
expect(count_occurrences(result, 'trackAsync(() => fetch(\'/init\'))')).toBe(1);
|
|
103
105
|
expect(count_occurrences(result, 'await fetch(\'/refresh\')')).toBe(1);
|
|
104
106
|
});
|
|
105
107
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`composite > render > correct handles passing through component props and children 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<!---->
|
|
6
|
+
<div>
|
|
7
|
+
<div>
|
|
8
|
+
I am A
|
|
9
|
+
</div>
|
|
10
|
+
<!---->
|
|
11
|
+
<div>
|
|
12
|
+
other text
|
|
13
|
+
</div>
|
|
14
|
+
<!---->
|
|
15
|
+
<div>
|
|
16
|
+
I am B
|
|
17
|
+
</div>
|
|
18
|
+
<!---->
|
|
19
|
+
</div>
|
|
20
|
+
<!---->
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
`;
|
|
24
|
+
|
|
25
|
+
exports[`composite > render > render simple text as children 1`] = `
|
|
26
|
+
<div>
|
|
27
|
+
<!---->
|
|
28
|
+
<button
|
|
29
|
+
class="my-button"
|
|
30
|
+
>
|
|
31
|
+
Click Me
|
|
32
|
+
<!---->
|
|
33
|
+
</button>
|
|
34
|
+
<!---->
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
2
|
import { mount, flushSync } from 'ripple';
|
|
3
|
-
import { test } from './function-overload-import.
|
|
3
|
+
import { test } from './function-overload-import.rsrx';
|
|
4
4
|
|
|
5
5
|
describe('function overload import tests', () => {
|
|
6
6
|
describe('function overloads', () => {
|