@solidjs/signals 2.0.0-rc.3 → 2.0.0-rc.5

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 (71) hide show
  1. package/dist/dev.js +2494 -271
  2. package/dist/node.cjs +3691 -1595
  3. package/dist/prod/affects.js +13 -12
  4. package/dist/prod/boundaries.js +43 -35
  5. package/dist/prod/core/action.js +3 -3
  6. package/dist/prod/core/async.js +137 -106
  7. package/dist/prod/core/constants.js +55 -1
  8. package/dist/prod/core/core.js +354 -247
  9. package/dist/prod/core/effect.js +47 -50
  10. package/dist/prod/core/error.js +13 -1
  11. package/dist/prod/core/external.js +4 -4
  12. package/dist/prod/core/graph.js +88 -52
  13. package/dist/prod/core/heap.js +38 -38
  14. package/dist/prod/core/lanes.js +34 -34
  15. package/dist/prod/core/optimistic.js +61 -58
  16. package/dist/prod/core/owner.js +38 -38
  17. package/dist/prod/core/scheduler.js +401 -174
  18. package/dist/prod/core/verdict.js +132 -65
  19. package/dist/prod/index.js +7 -3
  20. package/dist/prod/map.js +106 -106
  21. package/dist/prod/signals.js +253 -25
  22. package/dist/prod/store/index.js +2 -0
  23. package/dist/prod/store/next/optimistic.js +314 -121
  24. package/dist/prod/store/next/patch-hooks.js +13 -0
  25. package/dist/prod/store/next/patch.js +614 -0
  26. package/dist/prod/store/next/projection.js +23 -19
  27. package/dist/prod/store/next/reconcile.js +307 -120
  28. package/dist/prod/store/next/store.js +440 -117
  29. package/dist/prod/store/next/target.js +13 -4
  30. package/dist/prod/store/store.js +5 -5
  31. package/dist/types/core/async.d.ts +2 -0
  32. package/dist/types/core/attribution.d.ts +9 -4
  33. package/dist/types/core/constants.d.ts +54 -0
  34. package/dist/types/core/core.d.ts +34 -21
  35. package/dist/types/core/dev.d.ts +8 -0
  36. package/dist/types/core/error.d.ts +9 -0
  37. package/dist/types/core/graph.d.ts +22 -0
  38. package/dist/types/core/index.d.ts +2 -2
  39. package/dist/types/core/scheduler.d.ts +46 -0
  40. package/dist/types/core/types.d.ts +12 -0
  41. package/dist/types/index.d.ts +3 -3
  42. package/dist/types/signals.d.ts +108 -0
  43. package/dist/types/store/index.d.ts +2 -0
  44. package/dist/types/store/next/optimistic.d.ts +13 -10
  45. package/dist/types/store/next/patch-hooks.d.ts +41 -0
  46. package/dist/types/store/next/patch.d.ts +91 -0
  47. package/dist/types/store/next/projection.d.ts +1 -1
  48. package/dist/types/store/next/reconcile.d.ts +14 -0
  49. package/dist/types/store/next/store.d.ts +52 -2
  50. package/dist/types/store/next/target.d.ts +73 -8
  51. package/dist/types-cjs/core/async.d.cts +2 -0
  52. package/dist/types-cjs/core/attribution.d.cts +9 -4
  53. package/dist/types-cjs/core/constants.d.cts +54 -0
  54. package/dist/types-cjs/core/core.d.cts +34 -21
  55. package/dist/types-cjs/core/dev.d.cts +8 -0
  56. package/dist/types-cjs/core/error.d.cts +9 -0
  57. package/dist/types-cjs/core/graph.d.cts +22 -0
  58. package/dist/types-cjs/core/index.d.cts +2 -2
  59. package/dist/types-cjs/core/scheduler.d.cts +46 -0
  60. package/dist/types-cjs/core/types.d.cts +12 -0
  61. package/dist/types-cjs/index.d.cts +3 -3
  62. package/dist/types-cjs/signals.d.cts +108 -0
  63. package/dist/types-cjs/store/index.d.cts +2 -0
  64. package/dist/types-cjs/store/next/optimistic.d.cts +13 -10
  65. package/dist/types-cjs/store/next/patch-hooks.d.cts +41 -0
  66. package/dist/types-cjs/store/next/patch.d.cts +91 -0
  67. package/dist/types-cjs/store/next/projection.d.cts +1 -1
  68. package/dist/types-cjs/store/next/reconcile.d.cts +14 -0
  69. package/dist/types-cjs/store/next/store.d.cts +52 -2
  70. package/dist/types-cjs/store/next/target.d.cts +73 -8
  71. package/package.json +2 -2
@@ -56,6 +56,7 @@ import { wrapNext, storeSetterNext } from "./store.js";
56
56
  * driven from inside an enclosing authoritative-write scope (next-store
57
57
  * optimistic derives), and a hard `false` would clobber it mid-derive.
58
58
  */ function wrapDraft(e, t, r) {
59
+ const write = e => r ? r(e) : e();
59
60
  const i = {
60
61
  get(i, o) {
61
62
  let n;
@@ -84,31 +85,33 @@ import { wrapNext, storeSetterNext } from "./store.js";
84
85
  }
85
86
  return i;
86
87
  },
87
- set(i, o, n) {
88
+ set(r, i, o) {
88
89
  if (t && !t()) return true;
89
- const c = projectionWriteActive;
90
+ const n = projectionWriteActive;
90
91
  setWriteOverride(true);
91
92
  setProjectionWriteActive(true);
92
93
  try {
93
- e[o] = n;
94
- r?.();
94
+ write(() => {
95
+ e[i] = o;
96
+ });
95
97
  } finally {
96
98
  setWriteOverride(false);
97
- setProjectionWriteActive(c);
99
+ setProjectionWriteActive(n);
98
100
  }
99
101
  return true;
100
102
  },
101
- deleteProperty(i, o) {
103
+ deleteProperty(r, i) {
102
104
  if (t && !t()) return true;
103
- const n = projectionWriteActive;
105
+ const o = projectionWriteActive;
104
106
  setWriteOverride(true);
105
107
  setProjectionWriteActive(true);
106
108
  try {
107
- delete e[o];
108
- r?.();
109
+ write(() => {
110
+ delete e[i];
111
+ });
109
112
  } finally {
110
113
  setWriteOverride(false);
111
- setProjectionWriteActive(n);
114
+ setProjectionWriteActive(o);
112
115
  }
113
116
  return true;
114
117
  },
@@ -140,17 +143,18 @@ import { wrapNext, storeSetterNext } from "./store.js";
140
143
  if (i) i.configurable = true;
141
144
  return i;
142
145
  },
143
- defineProperty(i, o, n) {
146
+ defineProperty(r, i, o) {
144
147
  if (t && !t()) return true;
145
- const c = projectionWriteActive;
148
+ const n = projectionWriteActive;
146
149
  setWriteOverride(true);
147
150
  setProjectionWriteActive(true);
148
151
  try {
149
- Reflect.defineProperty(e, o, n);
150
- r?.();
152
+ write(() => {
153
+ Reflect.defineProperty(e, i, o);
154
+ });
151
155
  } finally {
152
156
  setWriteOverride(false);
153
- setProjectionWriteActive(c);
157
+ setProjectionWriteActive(n);
154
158
  }
155
159
  return true;
156
160
  }
@@ -211,8 +215,8 @@ function runProjectionComputedNext(e, t, r, i, o) {
211
215
  // for the whole first flight — the derive works a detached shadow of the
212
216
  // seed so draft writes cannot tear through to readers (#2988). Every commit
213
217
  // point reconciles the shadow through the normal commit path.
214
- const u = n.Ie ? JSON.parse(JSON.stringify(e[$TARGET][STORE_VALUE])) : null;
215
- const l = wrapDraft(e, () => !c || n.o?.Ee === s, o);
218
+ const u = n.Ne ? JSON.parse(JSON.stringify(e[$TARGET][STORE_VALUE])) : null;
219
+ const l = wrapDraft(e, () => !c || n.o?.Ie === s, o);
216
220
  storeSetterNext(l, o => {
217
221
  s = t(u ?? o);
218
222
  c = true;
@@ -223,10 +227,10 @@ function runProjectionComputedNext(e, t, r, i, o) {
223
227
  if (u && (t === undefined || t === u)) t = JSON.parse(JSON.stringify(u));
224
228
  if (t === o || t === undefined) return;
225
229
  const write = () => storeSetterNext(e, e => reconcileNextState(t, e, r, true), false);
226
- i ? i(write) : write();
230
+ i ? i(write, t) : write();
227
231
  };
228
232
  const l = handleAsync(n, s, commit);
229
- if (!n.Ie) commit(l);
233
+ if (!n.Ne) commit(l);
230
234
  }, false);
231
235
  return n;
232
236
  }