Commit a78d8b1
authored
chore: form state rework (#14771)
We now use `$state` instead of `$state.raw` for the internal representation of `value()/set(...)`. This has several advantages:
- we can get rid of the version code which became quite a bit
- you can put a `$state` object yourself into `set(...)` and then just push to it, making array operations very easy (closes #14662)
- fine-grained without any additional footwork
The reason I made this `$state.raw` originally is so that `fields.x.value()` would fire even if something within `x` would update, but honestly that's a bad reason looking back. You _can_ get that behavior by running JSON.stringify on the result, or you just access the properties you care about and it will all take care of it automatically.
The one drawback is that prototype pollution prevention became a tiny but trickier, we now have to check for a set of keys. We should consider changing `$state` in Svelte itself to also proxify `Object.create(null)`1 parent 4aca945 commit a78d8b1
File tree
5 files changed
+67
-107
lines changed- .changeset
- packages/kit/src/runtime
- app/server/remote
- client/remote-functions
5 files changed
+67
-107
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
219 | 218 | | |
220 | 219 | | |
221 | 220 | | |
| |||
318 | 317 | | |
319 | 318 | | |
320 | 319 | | |
321 | | - | |
| 320 | + | |
322 | 321 | | |
323 | 322 | | |
324 | 323 | | |
| |||
Lines changed: 7 additions & 60 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
21 | 20 | | |
22 | 21 | | |
23 | | - | |
| 22 | + | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
60 | 59 | | |
61 | 60 | | |
62 | 61 | | |
63 | | - | |
64 | | - | |
65 | 62 | | |
66 | 63 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
| 64 | + | |
81 | 65 | | |
82 | 66 | | |
83 | 67 | | |
| |||
101 | 85 | | |
102 | 86 | | |
103 | 87 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | 88 | | |
115 | 89 | | |
116 | 90 | | |
| |||
235 | 209 | | |
236 | 210 | | |
237 | 211 | | |
238 | | - | |
239 | | - | |
240 | 212 | | |
241 | 213 | | |
242 | 214 | | |
| |||
386 | 358 | | |
387 | 359 | | |
388 | 360 | | |
389 | | - | |
| 361 | + | |
390 | 362 | | |
391 | 363 | | |
392 | 364 | | |
| |||
397 | 369 | | |
398 | 370 | | |
399 | 371 | | |
400 | | - | |
| 372 | + | |
401 | 373 | | |
402 | 374 | | |
403 | 375 | | |
| |||
409 | 381 | | |
410 | 382 | | |
411 | 383 | | |
412 | | - | |
| 384 | + | |
413 | 385 | | |
414 | 386 | | |
415 | 387 | | |
| |||
418 | 390 | | |
419 | 391 | | |
420 | 392 | | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
428 | | - | |
429 | | - | |
430 | | - | |
431 | | - | |
| 393 | + | |
432 | 394 | | |
433 | 395 | | |
434 | 396 | | |
| |||
437 | 399 | | |
438 | 400 | | |
439 | 401 | | |
440 | | - | |
441 | 402 | | |
442 | 403 | | |
443 | 404 | | |
| |||
530 | 491 | | |
531 | 492 | | |
532 | 493 | | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | 494 | | |
538 | 495 | | |
539 | 496 | | |
540 | | - | |
541 | 497 | | |
542 | | - | |
| 498 | + | |
543 | 499 | | |
544 | 500 | | |
545 | | - | |
546 | | - | |
547 | 501 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | 502 | | |
556 | 503 | | |
557 | 504 | | |
| |||
Lines changed: 36 additions & 43 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | 6 | | |
10 | 7 | | |
11 | | - | |
| 8 | + | |
12 | 9 | | |
13 | 10 | | |
14 | 11 | | |
| |||
22 | 19 | | |
23 | 20 | | |
24 | 21 | | |
25 | | - | |
| 22 | + | |
26 | 23 | | |
27 | 24 | | |
28 | 25 | | |
| |||
31 | 28 | | |
32 | 29 | | |
33 | 30 | | |
34 | | - | |
| 31 | + | |
35 | 32 | | |
36 | 33 | | |
37 | 34 | | |
| |||
61 | 58 | | |
62 | 59 | | |
63 | 60 | | |
64 | | - | |
| 61 | + | |
65 | 62 | | |
66 | 63 | | |
67 | 64 | | |
| |||
81 | 78 | | |
82 | 79 | | |
83 | 80 | | |
84 | | - | |
85 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
86 | 95 | | |
87 | 96 | | |
88 | 97 | | |
89 | 98 | | |
90 | 99 | | |
91 | | - | |
92 | | - | |
| 100 | + | |
93 | 101 | | |
94 | 102 | | |
95 | 103 | | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
96 | 107 | | |
97 | 108 | | |
98 | 109 | | |
| |||
101 | 112 | | |
102 | 113 | | |
103 | 114 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
110 | 118 | | |
111 | 119 | | |
112 | 120 | | |
113 | 121 | | |
114 | | - | |
115 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
116 | 125 | | |
117 | 126 | | |
118 | 127 | | |
| |||
196 | 205 | | |
197 | 206 | | |
198 | 207 | | |
199 | | - | |
200 | 208 | | |
201 | 209 | | |
202 | 210 | | |
203 | 211 | | |
204 | 212 | | |
205 | | - | |
206 | | - | |
207 | | - | |
| 213 | + | |
208 | 214 | | |
209 | | - | |
210 | | - | |
| 215 | + | |
211 | 216 | | |
212 | 217 | | |
213 | 218 | | |
| |||
216 | 221 | | |
217 | 222 | | |
218 | 223 | | |
219 | | - | |
| 224 | + | |
220 | 225 | | |
221 | 226 | | |
222 | 227 | | |
| |||
229 | 234 | | |
230 | 235 | | |
231 | 236 | | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
| 237 | + | |
236 | 238 | | |
237 | 239 | | |
238 | 240 | | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
| 241 | + | |
243 | 242 | | |
244 | 243 | | |
245 | 244 | | |
| |||
259 | 258 | | |
260 | 259 | | |
261 | 260 | | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
| 261 | + | |
266 | 262 | | |
267 | 263 | | |
268 | 264 | | |
| |||
411 | 407 | | |
412 | 408 | | |
413 | 409 | | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
| 410 | + | |
418 | 411 | | |
419 | 412 | | |
420 | 413 | | |
421 | | - | |
| 414 | + | |
422 | 415 | | |
423 | 416 | | |
424 | 417 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
76 | 92 | | |
0 commit comments