@solidjs/signals 2.0.0-rc.4 → 2.0.0-rc.6
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/dist/dev.js +1618 -232
- package/dist/node.cjs +2262 -1199
- package/dist/prod/boundaries.js +4 -1
- package/dist/prod/core/async.js +152 -101
- package/dist/prod/core/constants.js +55 -1
- package/dist/prod/core/core.js +305 -234
- package/dist/prod/core/effect.js +28 -28
- package/dist/prod/core/error.js +13 -1
- package/dist/prod/core/external.js +2 -2
- package/dist/prod/core/graph.js +27 -27
- package/dist/prod/core/heap.js +30 -30
- package/dist/prod/core/lanes.js +32 -32
- package/dist/prod/core/optimistic.js +57 -57
- package/dist/prod/core/owner.js +34 -34
- package/dist/prod/core/scheduler.js +346 -152
- package/dist/prod/core/verdict.js +122 -65
- package/dist/prod/index.js +3 -3
- package/dist/prod/map.js +106 -106
- package/dist/prod/signals.js +321 -26
- package/dist/prod/store/next/optimistic.js +363 -151
- package/dist/prod/store/next/patch.js +6 -6
- package/dist/prod/store/next/projection.js +25 -21
- package/dist/prod/store/next/store.js +223 -113
- package/dist/prod/store/store.js +2 -2
- package/dist/types/core/async.d.ts +2 -0
- package/dist/types/core/attribution-hooks.d.ts +11 -0
- package/dist/types/core/attribution.d.ts +57 -4
- package/dist/types/core/constants.d.ts +54 -0
- package/dist/types/core/core.d.ts +19 -20
- package/dist/types/core/dev.d.ts +8 -2
- package/dist/types/core/error.d.ts +9 -0
- package/dist/types/core/index.d.ts +2 -2
- package/dist/types/core/scheduler.d.ts +39 -0
- package/dist/types/core/types.d.ts +12 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/signals.d.ts +108 -11
- package/dist/types/store/next/optimistic.d.ts +13 -10
- package/dist/types/store/next/projection.d.ts +1 -1
- package/dist/types/store/next/store.d.ts +22 -0
- package/dist/types/store/next/target.d.ts +25 -0
- package/dist/types-cjs/core/async.d.cts +2 -0
- package/dist/types-cjs/core/attribution-hooks.d.cts +11 -0
- package/dist/types-cjs/core/attribution.d.cts +57 -4
- package/dist/types-cjs/core/constants.d.cts +54 -0
- package/dist/types-cjs/core/core.d.cts +19 -20
- package/dist/types-cjs/core/dev.d.cts +8 -2
- package/dist/types-cjs/core/error.d.cts +9 -0
- package/dist/types-cjs/core/index.d.cts +2 -2
- package/dist/types-cjs/core/scheduler.d.cts +39 -0
- package/dist/types-cjs/core/types.d.cts +12 -0
- package/dist/types-cjs/index.d.cts +3 -3
- package/dist/types-cjs/signals.d.cts +108 -11
- package/dist/types-cjs/store/next/optimistic.d.cts +13 -10
- package/dist/types-cjs/store/next/projection.d.cts +1 -1
- package/dist/types-cjs/store/next/store.d.cts +22 -0
- package/dist/types-cjs/store/next/target.d.cts +25 -0
- package/package.json +1 -1
|
@@ -127,9 +127,9 @@ const UNSET = Symbol();
|
|
|
127
127
|
let commitHookInstalled = false;
|
|
128
128
|
|
|
129
129
|
function releaseBatch(e) {
|
|
130
|
-
const t = e.
|
|
130
|
+
const t = e.wt;
|
|
131
131
|
if (t === undefined) return;
|
|
132
|
-
e.
|
|
132
|
+
e.wt = undefined;
|
|
133
133
|
for (let e = 0; e < t.length; e++) pushLive(t[e]);
|
|
134
134
|
}
|
|
135
135
|
|
|
@@ -145,8 +145,8 @@ function pushLive(e) {
|
|
|
145
145
|
function push(e) {
|
|
146
146
|
const t = activeTransition;
|
|
147
147
|
if (t !== null) {
|
|
148
|
-
let n = t.
|
|
149
|
-
if (n === undefined) t.
|
|
148
|
+
let n = t.wt;
|
|
149
|
+
if (n === undefined) t.wt = n = [];
|
|
150
150
|
n.push(e);
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
@@ -165,8 +165,8 @@ function push(e) {
|
|
|
165
165
|
const n = activeTransition;
|
|
166
166
|
let l;
|
|
167
167
|
if (n !== null) {
|
|
168
|
-
let e = n.
|
|
169
|
-
if (e === undefined) n.
|
|
168
|
+
let e = n.wt;
|
|
169
|
+
if (e === undefined) n.wt = e = [];
|
|
170
170
|
l = e;
|
|
171
171
|
} else {
|
|
172
172
|
if (queue === null) queue = [];
|
|
@@ -12,11 +12,11 @@ import "../../core/effect.js";
|
|
|
12
12
|
|
|
13
13
|
import { CONFIG_AUTO_DISPOSE } from "../../core/constants.js";
|
|
14
14
|
|
|
15
|
-
import { $TARGET,
|
|
15
|
+
import { $TARGET, STORE_VALUE, markRawIngest, setWriteOverride } from "../store.js";
|
|
16
16
|
|
|
17
17
|
import { reconcileNextState } from "./reconcile.js";
|
|
18
18
|
|
|
19
|
-
import {
|
|
19
|
+
import { storeSetterNext, wrapNext } from "./store.js";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Store rewrite — projections (§7/§7b): a projection is a computed store.
|
|
@@ -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
|
|
88
|
+
set(r, i, o) {
|
|
88
89
|
if (t && !t()) return true;
|
|
89
|
-
const
|
|
90
|
+
const n = projectionWriteActive;
|
|
90
91
|
setWriteOverride(true);
|
|
91
92
|
setProjectionWriteActive(true);
|
|
92
93
|
try {
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
write(() => {
|
|
95
|
+
e[i] = o;
|
|
96
|
+
});
|
|
95
97
|
} finally {
|
|
96
98
|
setWriteOverride(false);
|
|
97
|
-
setProjectionWriteActive(
|
|
99
|
+
setProjectionWriteActive(n);
|
|
98
100
|
}
|
|
99
101
|
return true;
|
|
100
102
|
},
|
|
101
|
-
deleteProperty(
|
|
103
|
+
deleteProperty(r, i) {
|
|
102
104
|
if (t && !t()) return true;
|
|
103
|
-
const
|
|
105
|
+
const o = projectionWriteActive;
|
|
104
106
|
setWriteOverride(true);
|
|
105
107
|
setProjectionWriteActive(true);
|
|
106
108
|
try {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
write(() => {
|
|
110
|
+
delete e[i];
|
|
111
|
+
});
|
|
109
112
|
} finally {
|
|
110
113
|
setWriteOverride(false);
|
|
111
|
-
setProjectionWriteActive(
|
|
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
|
|
146
|
+
defineProperty(r, i, o) {
|
|
144
147
|
if (t && !t()) return true;
|
|
145
|
-
const
|
|
148
|
+
const n = projectionWriteActive;
|
|
146
149
|
setWriteOverride(true);
|
|
147
150
|
setProjectionWriteActive(true);
|
|
148
151
|
try {
|
|
149
|
-
|
|
150
|
-
|
|
152
|
+
write(() => {
|
|
153
|
+
Reflect.defineProperty(e, i, o);
|
|
154
|
+
});
|
|
151
155
|
} finally {
|
|
152
156
|
setWriteOverride(false);
|
|
153
|
-
setProjectionWriteActive(
|
|
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.
|
|
215
|
-
const l = wrapDraft(e, () => !c || n.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.
|
|
233
|
+
if (!n.Ne) commit(l);
|
|
230
234
|
}, false);
|
|
231
235
|
return n;
|
|
232
236
|
}
|