ripple 0.3.8 → 0.3.10
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 +19 -0
- package/package.json +2 -2
- package/src/compiler/phases/1-parse/index.js +38 -172
- package/src/compiler/phases/2-analyze/index.js +308 -115
- package/src/compiler/phases/2-analyze/prune.js +13 -5
- package/src/compiler/phases/3-transform/client/index.js +197 -213
- package/src/compiler/phases/3-transform/segments.js +0 -7
- package/src/compiler/phases/3-transform/server/index.js +77 -170
- package/src/compiler/types/acorn.d.ts +1 -1
- package/src/compiler/types/estree.d.ts +1 -1
- package/src/compiler/types/import.d.ts +0 -2
- package/src/compiler/types/index.d.ts +14 -18
- package/src/compiler/types/parse.d.ts +3 -9
- package/src/compiler/utils.js +154 -21
- package/src/runtime/element.js +39 -0
- package/src/runtime/index-client.js +2 -13
- package/src/runtime/index-server.js +2 -2
- package/src/runtime/internal/client/bindings.js +3 -1
- package/src/runtime/internal/client/composite.js +11 -6
- package/src/runtime/internal/client/events.js +1 -1
- package/src/runtime/internal/client/expression.js +218 -0
- package/src/runtime/internal/client/head.js +3 -4
- package/src/runtime/internal/client/index.js +4 -1
- package/src/runtime/internal/client/portal.js +12 -6
- package/src/runtime/internal/client/runtime.js +0 -52
- package/src/runtime/internal/server/index.js +57 -56
- package/tests/client/basic/basic.components.test.ripple +85 -87
- package/tests/client/basic/basic.errors.test.ripple +28 -4
- package/tests/client/basic/basic.reactivity.test.ripple +10 -155
- package/tests/client/basic/basic.rendering.test.ripple +23 -8
- package/tests/client/capture-error.js +12 -0
- package/tests/client/compiler/compiler.basic.test.ripple +107 -18
- package/tests/client/composite/composite.props.test.ripple +5 -9
- package/tests/client/composite/composite.reactivity.test.ripple +35 -36
- package/tests/client/composite/composite.render.test.ripple +45 -13
- package/tests/client/css/global-additional-cases.test.ripple +3 -3
- package/tests/client/dynamic-elements.test.ripple +3 -4
- package/tests/client/lazy-destructuring.test.ripple +69 -12
- package/tests/client/svg.test.ripple +4 -4
- package/tests/hydration/basic.test.js +23 -0
- package/tests/hydration/compiled/client/basic.js +118 -66
- package/tests/hydration/compiled/client/composite.js +90 -37
- package/tests/hydration/compiled/client/events.js +18 -18
- package/tests/hydration/compiled/client/for.js +62 -62
- package/tests/hydration/compiled/client/head.js +10 -10
- package/tests/hydration/compiled/client/hmr.js +13 -10
- package/tests/hydration/compiled/client/html.js +274 -236
- package/tests/hydration/compiled/client/if-children.js +41 -35
- package/tests/hydration/compiled/client/if.js +2 -2
- package/tests/hydration/compiled/client/mixed-control-flow.js +12 -12
- package/tests/hydration/compiled/client/nested-control-flow.js +46 -46
- package/tests/hydration/compiled/client/portal.js +8 -8
- package/tests/hydration/compiled/client/reactivity.js +14 -14
- package/tests/hydration/compiled/client/return.js +2 -2
- package/tests/hydration/compiled/client/try.js +4 -4
- package/tests/hydration/compiled/server/basic.js +64 -31
- package/tests/hydration/compiled/server/composite.js +62 -29
- package/tests/hydration/compiled/server/hmr.js +24 -37
- package/tests/hydration/compiled/server/html.js +472 -611
- package/tests/hydration/compiled/server/if-children.js +77 -103
- package/tests/hydration/compiled/server/portal.js +8 -8
- package/tests/hydration/components/basic.ripple +15 -5
- package/tests/hydration/components/composite.ripple +13 -1
- package/tests/hydration/components/hmr.ripple +1 -3
- package/tests/hydration/components/html.ripple +13 -35
- package/tests/hydration/components/if-children.ripple +4 -8
- package/tests/hydration/composite.test.js +11 -0
- package/tests/server/basic.attributes.test.ripple +50 -0
- package/tests/server/basic.components.test.ripple +22 -28
- package/tests/server/basic.test.ripple +12 -0
- package/tests/server/compiler.test.ripple +43 -4
- package/tests/server/composite.props.test.ripple +5 -9
- package/tests/server/dynamic-elements.test.ripple +3 -4
- package/tests/server/lazy-destructuring.test.ripple +68 -12
- package/tests/server/style-identifier.test.ripple +2 -4
- package/tsconfig.typecheck.json +4 -0
- package/types/index.d.ts +9 -21
- package/tests/client/__snapshots__/tracked-expression.test.ripple.snap +0 -34
- package/tests/client/tracked-expression.test.ripple +0 -26
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
import * as _$_ from 'ripple/internal/client';
|
|
3
3
|
|
|
4
4
|
var root = _$_.template(`<div class="layout"><!></div>`, 0);
|
|
5
|
-
var root_1 = _$_.template(`<div class="
|
|
6
|
-
var root_2 = _$_.template(`<
|
|
7
|
-
var root_3 = _$_.template(
|
|
8
|
-
var root_5 = _$_.template(`<!>`, 1, 1);
|
|
5
|
+
var root_1 = _$_.template(`<div class="layout">before<!>after</div>`, 0);
|
|
6
|
+
var root_2 = _$_.template(`<div class="single">single</div>`, 0);
|
|
7
|
+
var root_3 = _$_.template(`<h1>title</h1><p>description</p>`, 1, 2);
|
|
9
8
|
var root_4 = _$_.template(`<!>`, 1, 1);
|
|
10
|
-
var root_7 = _$_.template(`<!><div class="extra">extra</div>`, 1, 2);
|
|
11
9
|
var root_6 = _$_.template(`<!>`, 1, 1);
|
|
10
|
+
var root_5 = _$_.template(`<!>`, 1, 1);
|
|
11
|
+
var root_8 = _$_.template(`<!><div class="extra">extra</div>`, 1, 2);
|
|
12
|
+
var root_7 = _$_.template(`<!>`, 1, 1);
|
|
13
|
+
var root_10 = _$_.template(`<!>`, 1, 1);
|
|
12
14
|
var root_9 = _$_.template(`<!>`, 1, 1);
|
|
13
|
-
var
|
|
15
|
+
var root_12 = _$_.template(`<!>`, 1, 1);
|
|
16
|
+
var root_11 = _$_.template(`<!>`, 1, 1);
|
|
14
17
|
|
|
15
18
|
export function Layout(__anchor, __props, __block) {
|
|
16
19
|
_$_.push_component();
|
|
@@ -18,29 +21,52 @@ export function Layout(__anchor, __props, __block) {
|
|
|
18
21
|
var div_1 = root();
|
|
19
22
|
|
|
20
23
|
{
|
|
21
|
-
var
|
|
24
|
+
var expression = _$_.child(div_1);
|
|
22
25
|
|
|
23
|
-
_$_.composite(() => __props.children, node, {});
|
|
24
26
|
_$_.pop(div_1);
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
_$_.render(() => {
|
|
30
|
+
_$_.expression(expression, () => __props.children);
|
|
31
|
+
});
|
|
32
|
+
|
|
27
33
|
_$_.append(__anchor, div_1);
|
|
28
34
|
_$_.pop_component();
|
|
29
35
|
}
|
|
30
36
|
|
|
31
|
-
export function
|
|
37
|
+
export function TextWrappedLayout(__anchor, __props, __block) {
|
|
32
38
|
_$_.push_component();
|
|
33
39
|
|
|
34
40
|
var div_2 = root_1();
|
|
35
41
|
|
|
42
|
+
{
|
|
43
|
+
var text = _$_.child(div_2);
|
|
44
|
+
var expression_1 = _$_.sibling(text);
|
|
45
|
+
|
|
46
|
+
_$_.pop(div_2);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
_$_.render(() => {
|
|
50
|
+
_$_.expression(expression_1, () => __props.children);
|
|
51
|
+
});
|
|
52
|
+
|
|
36
53
|
_$_.append(__anchor, div_2);
|
|
37
54
|
_$_.pop_component();
|
|
38
55
|
}
|
|
39
56
|
|
|
57
|
+
export function SingleChild(__anchor, _, __block) {
|
|
58
|
+
_$_.push_component();
|
|
59
|
+
|
|
60
|
+
var div_3 = root_2();
|
|
61
|
+
|
|
62
|
+
_$_.append(__anchor, div_3);
|
|
63
|
+
_$_.pop_component();
|
|
64
|
+
}
|
|
65
|
+
|
|
40
66
|
export function MultiRootChild(__anchor, _, __block) {
|
|
41
67
|
_$_.push_component();
|
|
42
68
|
|
|
43
|
-
var fragment =
|
|
69
|
+
var fragment = root_3();
|
|
44
70
|
|
|
45
71
|
_$_.next();
|
|
46
72
|
_$_.append(__anchor, fragment, true);
|
|
@@ -50,10 +76,10 @@ export function MultiRootChild(__anchor, _, __block) {
|
|
|
50
76
|
export function EmptyLayout(__anchor, _, __block) {
|
|
51
77
|
_$_.push_component();
|
|
52
78
|
|
|
53
|
-
var fragment_1 =
|
|
54
|
-
var
|
|
79
|
+
var fragment_1 = root_4();
|
|
80
|
+
var node = _$_.first_child_frag(fragment_1);
|
|
55
81
|
|
|
56
|
-
Layout(
|
|
82
|
+
Layout(node, {}, _$_.active_block);
|
|
57
83
|
_$_.append(__anchor, fragment_1);
|
|
58
84
|
_$_.pop_component();
|
|
59
85
|
}
|
|
@@ -61,22 +87,22 @@ export function EmptyLayout(__anchor, _, __block) {
|
|
|
61
87
|
export function LayoutWithSingleChild(__anchor, _, __block) {
|
|
62
88
|
_$_.push_component();
|
|
63
89
|
|
|
64
|
-
var fragment_2 =
|
|
65
|
-
var
|
|
90
|
+
var fragment_2 = root_5();
|
|
91
|
+
var node_1 = _$_.first_child_frag(fragment_2);
|
|
66
92
|
|
|
67
93
|
Layout(
|
|
68
|
-
|
|
94
|
+
node_1,
|
|
69
95
|
{
|
|
70
|
-
children(__anchor, _, __block) {
|
|
96
|
+
children: _$_.ripple_element(function render_children(__anchor, _, __block) {
|
|
71
97
|
_$_.push_component();
|
|
72
98
|
|
|
73
|
-
var fragment_3 =
|
|
74
|
-
var
|
|
99
|
+
var fragment_3 = root_6();
|
|
100
|
+
var node_2 = _$_.first_child_frag(fragment_3);
|
|
75
101
|
|
|
76
|
-
SingleChild(
|
|
102
|
+
SingleChild(node_2, {}, _$_.active_block);
|
|
77
103
|
_$_.append(__anchor, fragment_3);
|
|
78
104
|
_$_.pop_component();
|
|
79
|
-
}
|
|
105
|
+
})
|
|
80
106
|
},
|
|
81
107
|
_$_.active_block
|
|
82
108
|
);
|
|
@@ -88,22 +114,22 @@ export function LayoutWithSingleChild(__anchor, _, __block) {
|
|
|
88
114
|
export function LayoutWithMultipleChildren(__anchor, _, __block) {
|
|
89
115
|
_$_.push_component();
|
|
90
116
|
|
|
91
|
-
var fragment_4 =
|
|
92
|
-
var
|
|
117
|
+
var fragment_4 = root_7();
|
|
118
|
+
var node_3 = _$_.first_child_frag(fragment_4);
|
|
93
119
|
|
|
94
120
|
Layout(
|
|
95
|
-
|
|
121
|
+
node_3,
|
|
96
122
|
{
|
|
97
|
-
children(__anchor, _, __block) {
|
|
123
|
+
children: _$_.ripple_element(function render_children(__anchor, _, __block) {
|
|
98
124
|
_$_.push_component();
|
|
99
125
|
|
|
100
|
-
var fragment_5 =
|
|
101
|
-
var
|
|
126
|
+
var fragment_5 = root_8();
|
|
127
|
+
var node_4 = _$_.first_child_frag(fragment_5);
|
|
102
128
|
|
|
103
|
-
SingleChild(
|
|
129
|
+
SingleChild(node_4, {}, _$_.active_block);
|
|
104
130
|
_$_.append(__anchor, fragment_5);
|
|
105
131
|
_$_.pop_component();
|
|
106
|
-
}
|
|
132
|
+
})
|
|
107
133
|
},
|
|
108
134
|
_$_.active_block
|
|
109
135
|
);
|
|
@@ -115,26 +141,53 @@ export function LayoutWithMultipleChildren(__anchor, _, __block) {
|
|
|
115
141
|
export function LayoutWithMultiRootChild(__anchor, _, __block) {
|
|
116
142
|
_$_.push_component();
|
|
117
143
|
|
|
118
|
-
var fragment_6 =
|
|
119
|
-
var
|
|
144
|
+
var fragment_6 = root_9();
|
|
145
|
+
var node_5 = _$_.first_child_frag(fragment_6);
|
|
120
146
|
|
|
121
147
|
Layout(
|
|
122
|
-
|
|
148
|
+
node_5,
|
|
123
149
|
{
|
|
124
|
-
children(__anchor, _, __block) {
|
|
150
|
+
children: _$_.ripple_element(function render_children(__anchor, _, __block) {
|
|
125
151
|
_$_.push_component();
|
|
126
152
|
|
|
127
|
-
var fragment_7 =
|
|
128
|
-
var
|
|
153
|
+
var fragment_7 = root_10();
|
|
154
|
+
var node_6 = _$_.first_child_frag(fragment_7);
|
|
129
155
|
|
|
130
|
-
MultiRootChild(
|
|
156
|
+
MultiRootChild(node_6, {}, _$_.active_block);
|
|
131
157
|
_$_.append(__anchor, fragment_7);
|
|
132
158
|
_$_.pop_component();
|
|
133
|
-
}
|
|
159
|
+
})
|
|
134
160
|
},
|
|
135
161
|
_$_.active_block
|
|
136
162
|
);
|
|
137
163
|
|
|
138
164
|
_$_.append(__anchor, fragment_6);
|
|
139
165
|
_$_.pop_component();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export function LayoutWithTextAroundChildren(__anchor, _, __block) {
|
|
169
|
+
_$_.push_component();
|
|
170
|
+
|
|
171
|
+
var fragment_8 = root_11();
|
|
172
|
+
var node_7 = _$_.first_child_frag(fragment_8);
|
|
173
|
+
|
|
174
|
+
TextWrappedLayout(
|
|
175
|
+
node_7,
|
|
176
|
+
{
|
|
177
|
+
children: _$_.ripple_element(function render_children(__anchor, _, __block) {
|
|
178
|
+
_$_.push_component();
|
|
179
|
+
|
|
180
|
+
var fragment_9 = root_12();
|
|
181
|
+
var node_8 = _$_.first_child_frag(fragment_9);
|
|
182
|
+
|
|
183
|
+
SingleChild(node_8, {}, _$_.active_block);
|
|
184
|
+
_$_.append(__anchor, fragment_9);
|
|
185
|
+
_$_.pop_component();
|
|
186
|
+
})
|
|
187
|
+
},
|
|
188
|
+
_$_.active_block
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
_$_.append(__anchor, fragment_8);
|
|
192
|
+
_$_.pop_component();
|
|
140
193
|
}
|
|
@@ -27,14 +27,14 @@ export function ClickCounter(__anchor, _, __block) {
|
|
|
27
27
|
var span_1 = _$_.sibling(button_1);
|
|
28
28
|
|
|
29
29
|
{
|
|
30
|
-
var
|
|
30
|
+
var expression = _$_.child(span_1, true);
|
|
31
31
|
|
|
32
32
|
_$_.pop(span_1);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
_$_.render(() => {
|
|
37
|
-
_$_.set_text(
|
|
37
|
+
_$_.set_text(expression, _$_.get(lazy));
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
_$_.append(__anchor, div_1);
|
|
@@ -57,7 +57,7 @@ export function IncrementDecrement(__anchor, _, __block) {
|
|
|
57
57
|
var span_2 = _$_.sibling(button_2);
|
|
58
58
|
|
|
59
59
|
{
|
|
60
|
-
var
|
|
60
|
+
var expression_1 = _$_.child(span_2, true);
|
|
61
61
|
|
|
62
62
|
_$_.pop(span_2);
|
|
63
63
|
}
|
|
@@ -70,7 +70,7 @@ export function IncrementDecrement(__anchor, _, __block) {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
_$_.render(() => {
|
|
73
|
-
_$_.set_text(
|
|
73
|
+
_$_.set_text(expression_1, _$_.get(lazy_1));
|
|
74
74
|
});
|
|
75
75
|
|
|
76
76
|
_$_.append(__anchor, div_2);
|
|
@@ -98,7 +98,7 @@ export function MultipleEvents(__anchor, _, __block) {
|
|
|
98
98
|
var span_3 = _$_.sibling(button_4);
|
|
99
99
|
|
|
100
100
|
{
|
|
101
|
-
var
|
|
101
|
+
var expression_2 = _$_.child(span_3, true);
|
|
102
102
|
|
|
103
103
|
_$_.pop(span_3);
|
|
104
104
|
}
|
|
@@ -106,7 +106,7 @@ export function MultipleEvents(__anchor, _, __block) {
|
|
|
106
106
|
var span_4 = _$_.sibling(span_3);
|
|
107
107
|
|
|
108
108
|
{
|
|
109
|
-
var
|
|
109
|
+
var expression_3 = _$_.child(span_4, true);
|
|
110
110
|
|
|
111
111
|
_$_.pop(span_4);
|
|
112
112
|
}
|
|
@@ -117,13 +117,13 @@ export function MultipleEvents(__anchor, _, __block) {
|
|
|
117
117
|
var __a = _$_.get(lazy_2);
|
|
118
118
|
|
|
119
119
|
if (__prev.a !== __a) {
|
|
120
|
-
_$_.set_text(
|
|
120
|
+
_$_.set_text(expression_2, __prev.a = __a);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
var __b = _$_.get(lazy_3);
|
|
124
124
|
|
|
125
125
|
if (__prev.b !== __b) {
|
|
126
|
-
_$_.set_text(
|
|
126
|
+
_$_.set_text(expression_3, __prev.b = __b);
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
{ a: ' ', b: ' ' }
|
|
@@ -154,7 +154,7 @@ export function MultiStateUpdate(__anchor, _, __block) {
|
|
|
154
154
|
var span_5 = _$_.sibling(button_5);
|
|
155
155
|
|
|
156
156
|
{
|
|
157
|
-
var
|
|
157
|
+
var expression_4 = _$_.child(span_5, true);
|
|
158
158
|
|
|
159
159
|
_$_.pop(span_5);
|
|
160
160
|
}
|
|
@@ -162,7 +162,7 @@ export function MultiStateUpdate(__anchor, _, __block) {
|
|
|
162
162
|
var span_6 = _$_.sibling(span_5);
|
|
163
163
|
|
|
164
164
|
{
|
|
165
|
-
var
|
|
165
|
+
var expression_5 = _$_.child(span_6, true);
|
|
166
166
|
|
|
167
167
|
_$_.pop(span_6);
|
|
168
168
|
}
|
|
@@ -173,13 +173,13 @@ export function MultiStateUpdate(__anchor, _, __block) {
|
|
|
173
173
|
var __a = _$_.get(lazy_4);
|
|
174
174
|
|
|
175
175
|
if (__prev.a !== __a) {
|
|
176
|
-
_$_.set_text(
|
|
176
|
+
_$_.set_text(expression_4, __prev.a = __a);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
var __b = _$_.get(lazy_5);
|
|
180
180
|
|
|
181
181
|
if (__prev.b !== __b) {
|
|
182
|
-
_$_.set_text(
|
|
182
|
+
_$_.set_text(expression_5, __prev.b = __b);
|
|
183
183
|
}
|
|
184
184
|
},
|
|
185
185
|
{ a: ' ', b: ' ' }
|
|
@@ -203,14 +203,14 @@ export function ToggleButton(__anchor, _, __block) {
|
|
|
203
203
|
};
|
|
204
204
|
|
|
205
205
|
{
|
|
206
|
-
var
|
|
206
|
+
var expression_6 = _$_.child(button_6, true);
|
|
207
207
|
|
|
208
208
|
_$_.pop(button_6);
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
_$_.render(() => {
|
|
213
|
-
_$_.set_text(
|
|
213
|
+
_$_.set_text(expression_6, _$_.get(lazy_6) ? 'ON' : 'OFF');
|
|
214
214
|
});
|
|
215
215
|
|
|
216
216
|
_$_.append(__anchor, div_5);
|
|
@@ -225,13 +225,13 @@ export function ChildButton(__anchor, props, __block) {
|
|
|
225
225
|
_$_.render_event('Click', button_7, () => props.onClick);
|
|
226
226
|
|
|
227
227
|
{
|
|
228
|
-
var
|
|
228
|
+
var expression_7 = _$_.child(button_7, true);
|
|
229
229
|
|
|
230
230
|
_$_.pop(button_7);
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
_$_.render(() => {
|
|
234
|
-
_$_.set_text(
|
|
234
|
+
_$_.set_text(expression_7, props.label);
|
|
235
235
|
});
|
|
236
236
|
|
|
237
237
|
_$_.append(__anchor, button_7);
|
|
@@ -261,7 +261,7 @@ export function ParentWithChildButton(__anchor, _, __block) {
|
|
|
261
261
|
var span_7 = _$_.sibling(node);
|
|
262
262
|
|
|
263
263
|
{
|
|
264
|
-
var
|
|
264
|
+
var expression_8 = _$_.child(span_7, true);
|
|
265
265
|
|
|
266
266
|
_$_.pop(span_7);
|
|
267
267
|
}
|
|
@@ -270,7 +270,7 @@ export function ParentWithChildButton(__anchor, _, __block) {
|
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
_$_.render(() => {
|
|
273
|
-
_$_.set_text(
|
|
273
|
+
_$_.set_text(expression_8, _$_.get(lazy_7));
|
|
274
274
|
});
|
|
275
275
|
|
|
276
276
|
_$_.append(__anchor, div_6);
|