Commit 9d7907e
authored
fix: rework bindable types strategy (#2361)
Instead of using types that declare whether or not a type is bindable directly as part of the property, we're introducing a new for-types-only field to `SvelteComponent`: `$$bindings`, which is typed as the keys of the properties that are bindable (string by default, i.e. everything's bindable; for backwards compat). language-tools can then produce code that assigns to this property which results in an error we can display if the binding is invalid.
This means we can revert a lot of the changes we made to make the previous version of bindable types work1 parent 6cfb0d2 commit 9d7907e
File tree
40 files changed
+457
-751
lines changed- packages
- language-server
- src/plugins/typescript/features
- test/plugins
- svelte
- features
- typescript
- features
- diagnostics/fixtures
- $$props-usage
- $store-bind
- bind-this
- bindings
- checkjs-nostrict
- component-props-js
- component-props-ts
- checkjs
- component-props-js
- component-props-ts
- component-invalid
- sveltekit-autotypings
- testfiles/rename
- svelte2tsx
- src
- htmlxtojsx_v2/nodes
- svelte2tsx
- nodes
- test
- emitDts/samples/typescript-runes.v5/expected
- htmlx2jsx/samples
- binding-bare
- binding
- editing-binding
- svelte2tsx/samples
- runes-best-effort-types
- runes-bindable
- runes-looking-like-stores
- runes-with-slots
- runes
- sveltekit-autotypes-$props-rune-no-changes
- sveltekit-autotypes-$props-rune
- ts-runes-best-effort-types
- ts-runes-bindable
- ts-runes-generics
- ts-runes-with-slot
- ts-runes
- ts-sveltekit-autotypes-$props-rune-unchanged
- ts-sveltekit-autotypes-$props-rune
40 files changed
+457
-751
lines changedLines changed: 64 additions & 46 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
152 | 156 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
162 | 175 | | |
163 | 176 | | |
164 | 177 | | |
165 | 178 | | |
166 | 179 | | |
167 | 180 | | |
168 | 181 | | |
169 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
170 | 219 | | |
171 | 220 | | |
172 | 221 | | |
| |||
194 | 243 | | |
195 | 244 | | |
196 | 245 | | |
197 | | - | |
| 246 | + | |
198 | 247 | | |
199 | 248 | | |
200 | 249 | | |
| |||
327 | 376 | | |
328 | 377 | | |
329 | 378 | | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | 379 | | |
362 | 380 | | |
363 | 381 | | |
| |||
Lines changed: 60 additions & 96 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
41 | | - | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
| 105 | + | |
105 | 106 | | |
106 | 107 | | |
107 | 108 | | |
| |||
160 | 161 | | |
161 | 162 | | |
162 | 163 | | |
163 | | - | |
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | 173 | | |
182 | 174 | | |
183 | 175 | | |
| |||
211 | 203 | | |
212 | 204 | | |
213 | 205 | | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | 206 | | |
220 | 207 | | |
221 | 208 | | |
| |||
366 | 353 | | |
367 | 354 | | |
368 | 355 | | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
407 | | - | |
408 | | - | |
409 | | - | |
410 | | - | |
| 356 | + | |
| 357 | + | |
411 | 358 | | |
412 | 359 | | |
413 | 360 | | |
| |||
595 | 542 | | |
596 | 543 | | |
597 | 544 | | |
598 | | - | |
| 545 | + | |
| 546 | + | |
599 | 547 | | |
600 | 548 | | |
601 | 549 | | |
| |||
616 | 564 | | |
617 | 565 | | |
618 | 566 | | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
619 | 577 | | |
620 | 578 | | |
621 | 579 | | |
| |||
638 | 596 | | |
639 | 597 | | |
640 | 598 | | |
641 | | - | |
642 | | - | |
643 | | - | |
644 | | - | |
645 | | - | |
646 | | - | |
647 | | - | |
648 | | - | |
649 | | - | |
650 | | - | |
651 | | - | |
652 | | - | |
653 | | - | |
654 | | - | |
655 | | - | |
656 | | - | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
664 | | - | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
669 | | - | |
670 | | - | |
671 | | - | |
672 | | - | |
673 | 599 | | |
674 | 600 | | |
675 | 601 | | |
| |||
714 | 640 | | |
715 | 641 | | |
716 | 642 | | |
717 | | - | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
718 | 678 | | |
719 | 679 | | |
720 | 680 | | |
721 | | - | |
| 681 | + | |
722 | 682 | | |
723 | | - | |
| 683 | + | |
| 684 | + | |
724 | 685 | | |
725 | 686 | | |
726 | | - | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
727 | 691 | | |
728 | 692 | | |
729 | 693 | | |
0 commit comments