solid-js 1.7.9 → 1.7.11
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.cjs +36 -20
- package/dist/dev.js +326 -548
- package/dist/server.cjs +38 -23
- package/dist/server.js +108 -192
- package/dist/solid.cjs +36 -20
- package/dist/solid.js +284 -475
- package/h/dist/h.js +8 -34
- package/h/jsx-runtime/dist/jsx.js +1 -1
- package/h/jsx-runtime/types/index.d.ts +8 -11
- package/h/types/hyperscript.d.ts +11 -11
- package/html/dist/html.js +94 -216
- package/html/types/lit.d.ts +31 -45
- package/package.json +1 -1
- package/store/dist/dev.cjs +4 -3
- package/store/dist/dev.js +46 -117
- package/store/dist/server.js +8 -19
- package/store/dist/store.cjs +4 -3
- package/store/dist/store.js +43 -108
- package/store/types/index.d.ts +7 -21
- package/store/types/modifiers.d.ts +3 -6
- package/store/types/mutable.d.ts +2 -5
- package/store/types/server.d.ts +4 -12
- package/store/types/store.d.ts +61 -215
- package/types/index.d.ts +9 -69
- package/types/reactive/array.d.ts +4 -12
- package/types/reactive/observable.d.ts +17 -25
- package/types/reactive/scheduler.d.ts +6 -9
- package/types/reactive/signal.d.ts +150 -236
- package/types/render/Suspense.d.ts +5 -5
- package/types/render/component.d.ts +31 -62
- package/types/render/flow.d.ts +31 -43
- package/types/render/hydration.d.ts +12 -12
- package/types/server/index.d.ts +2 -55
- package/types/server/reactive.d.ts +44 -72
- package/types/server/rendering.d.ts +95 -171
- package/universal/dist/dev.js +12 -28
- package/universal/dist/universal.js +12 -28
- package/universal/types/index.d.ts +1 -3
- package/universal/types/universal.d.ts +1 -0
- package/web/dist/dev.js +79 -610
- package/web/dist/server.cjs +5 -1
- package/web/dist/server.js +82 -177
- package/web/dist/web.js +79 -610
- package/web/types/client.d.ts +2 -2
- package/web/types/core.d.ts +1 -10
- package/web/types/index.d.ts +10 -27
- package/web/types/server-mock.d.ts +32 -47
- package/web/types/server.d.ts +1 -1
package/store/dist/dev.cjs
CHANGED
|
@@ -4,7 +4,8 @@ var solidJs = require('solid-js');
|
|
|
4
4
|
|
|
5
5
|
const $RAW = Symbol("store-raw"),
|
|
6
6
|
$NODE = Symbol("store-node"),
|
|
7
|
-
$HAS = Symbol("store-has")
|
|
7
|
+
$HAS = Symbol("store-has"),
|
|
8
|
+
$SELF = Symbol("store-self");
|
|
8
9
|
const DevHooks = {
|
|
9
10
|
onStoreNodeUpdate: null
|
|
10
11
|
};
|
|
@@ -82,7 +83,7 @@ function proxyDescriptor$1(target, property) {
|
|
|
82
83
|
return desc;
|
|
83
84
|
}
|
|
84
85
|
function trackSelf(target) {
|
|
85
|
-
solidJs.getListener() && getNode(getNodes(target, $NODE),
|
|
86
|
+
solidJs.getListener() && getNode(getNodes(target, $NODE), $SELF)();
|
|
86
87
|
}
|
|
87
88
|
function ownKeys(target) {
|
|
88
89
|
trackSelf(target);
|
|
@@ -141,7 +142,7 @@ function setProperty(state, property, value, deleting = false) {
|
|
|
141
142
|
for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
|
|
142
143
|
(node = getNode(nodes, "length", len)) && node.$(state.length);
|
|
143
144
|
}
|
|
144
|
-
(node = nodes
|
|
145
|
+
(node = nodes[$SELF]) && node.$();
|
|
145
146
|
}
|
|
146
147
|
function mergeStoreNode(state, value) {
|
|
147
148
|
const keys = Object.keys(value);
|
package/store/dist/dev.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DEV as DEV$1, $PROXY, $TRACK, getListener, batch, createSignal } from
|
|
1
|
+
import { DEV as DEV$1, $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';
|
|
2
2
|
|
|
3
3
|
const $RAW = Symbol("store-raw"),
|
|
4
4
|
$NODE = Symbol("store-node"),
|
|
5
|
-
$HAS = Symbol("store-has")
|
|
5
|
+
$HAS = Symbol("store-has"),
|
|
6
|
+
$SELF = Symbol("store-self");
|
|
6
7
|
const DevHooks = {
|
|
7
8
|
onStoreNodeUpdate: null
|
|
8
9
|
};
|
|
@@ -10,7 +11,7 @@ function wrap$1(value) {
|
|
|
10
11
|
let p = value[$PROXY];
|
|
11
12
|
if (!p) {
|
|
12
13
|
Object.defineProperty(value, $PROXY, {
|
|
13
|
-
value:
|
|
14
|
+
value: p = new Proxy(value, proxyTraps$1)
|
|
14
15
|
});
|
|
15
16
|
if (!Array.isArray(value)) {
|
|
16
17
|
const keys = Object.keys(value),
|
|
@@ -30,29 +31,20 @@ function wrap$1(value) {
|
|
|
30
31
|
}
|
|
31
32
|
function isWrappable(obj) {
|
|
32
33
|
let proto;
|
|
33
|
-
return (
|
|
34
|
-
obj != null &&
|
|
35
|
-
typeof obj === "object" &&
|
|
36
|
-
(obj[$PROXY] ||
|
|
37
|
-
!(proto = Object.getPrototypeOf(obj)) ||
|
|
38
|
-
proto === Object.prototype ||
|
|
39
|
-
Array.isArray(obj))
|
|
40
|
-
);
|
|
34
|
+
return obj != null && typeof obj === "object" && (obj[$PROXY] || !(proto = Object.getPrototypeOf(obj)) || proto === Object.prototype || Array.isArray(obj));
|
|
41
35
|
}
|
|
42
36
|
function unwrap(item, set = new Set()) {
|
|
43
37
|
let result, unwrapped, v, prop;
|
|
44
|
-
if (
|
|
38
|
+
if (result = item != null && item[$RAW]) return result;
|
|
45
39
|
if (!isWrappable(item) || set.has(item)) return item;
|
|
46
40
|
if (Array.isArray(item)) {
|
|
47
|
-
if (Object.isFrozen(item)) item = item.slice(0);
|
|
48
|
-
else set.add(item);
|
|
41
|
+
if (Object.isFrozen(item)) item = item.slice(0);else set.add(item);
|
|
49
42
|
for (let i = 0, l = item.length; i < l; i++) {
|
|
50
43
|
v = item[i];
|
|
51
44
|
if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped;
|
|
52
45
|
}
|
|
53
46
|
} else {
|
|
54
|
-
if (Object.isFrozen(item)) item = Object.assign({}, item);
|
|
55
|
-
else set.add(item);
|
|
47
|
+
if (Object.isFrozen(item)) item = Object.assign({}, item);else set.add(item);
|
|
56
48
|
const keys = Object.keys(item),
|
|
57
49
|
desc = Object.getOwnPropertyDescriptors(item);
|
|
58
50
|
for (let i = 0, l = keys.length; i < l; i++) {
|
|
@@ -66,10 +58,9 @@ function unwrap(item, set = new Set()) {
|
|
|
66
58
|
}
|
|
67
59
|
function getNodes(target, symbol) {
|
|
68
60
|
let nodes = target[symbol];
|
|
69
|
-
if (!nodes)
|
|
70
|
-
Object.
|
|
71
|
-
|
|
72
|
-
});
|
|
61
|
+
if (!nodes) Object.defineProperty(target, symbol, {
|
|
62
|
+
value: nodes = Object.create(null)
|
|
63
|
+
});
|
|
73
64
|
return nodes;
|
|
74
65
|
}
|
|
75
66
|
function getNode(nodes, property, value) {
|
|
@@ -79,19 +70,18 @@ function getNode(nodes, property, value) {
|
|
|
79
70
|
internal: true
|
|
80
71
|
});
|
|
81
72
|
s.$ = set;
|
|
82
|
-
return
|
|
73
|
+
return nodes[property] = s;
|
|
83
74
|
}
|
|
84
75
|
function proxyDescriptor$1(target, property) {
|
|
85
76
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
86
|
-
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE)
|
|
87
|
-
return desc;
|
|
77
|
+
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE) return desc;
|
|
88
78
|
delete desc.value;
|
|
89
79
|
delete desc.writable;
|
|
90
80
|
desc.get = () => target[$PROXY][property];
|
|
91
81
|
return desc;
|
|
92
82
|
}
|
|
93
83
|
function trackSelf(target) {
|
|
94
|
-
getListener() && getNode(getNodes(target, $NODE),
|
|
84
|
+
getListener() && getNode(getNodes(target, $NODE), $SELF)();
|
|
95
85
|
}
|
|
96
86
|
function ownKeys(target) {
|
|
97
87
|
trackSelf(target);
|
|
@@ -111,25 +101,12 @@ const proxyTraps$1 = {
|
|
|
111
101
|
if (property === $NODE || property === $HAS || property === "__proto__") return value;
|
|
112
102
|
if (!tracked) {
|
|
113
103
|
const desc = Object.getOwnPropertyDescriptor(target, property);
|
|
114
|
-
if (
|
|
115
|
-
getListener() &&
|
|
116
|
-
(typeof value !== "function" || target.hasOwnProperty(property)) &&
|
|
117
|
-
!(desc && desc.get)
|
|
118
|
-
)
|
|
119
|
-
value = getNode(nodes, property, value)();
|
|
104
|
+
if (getListener() && (typeof value !== "function" || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();
|
|
120
105
|
}
|
|
121
106
|
return isWrappable(value) ? wrap$1(value) : value;
|
|
122
107
|
},
|
|
123
108
|
has(target, property) {
|
|
124
|
-
if (
|
|
125
|
-
property === $RAW ||
|
|
126
|
-
property === $PROXY ||
|
|
127
|
-
property === $TRACK ||
|
|
128
|
-
property === $NODE ||
|
|
129
|
-
property === $HAS ||
|
|
130
|
-
property === "__proto__"
|
|
131
|
-
)
|
|
132
|
-
return true;
|
|
109
|
+
if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
|
|
133
110
|
getListener() && getNode(getNodes(target, $HAS), property)();
|
|
134
111
|
return property in target;
|
|
135
112
|
},
|
|
@@ -158,12 +135,12 @@ function setProperty(state, property, value, deleting = false) {
|
|
|
158
135
|
}
|
|
159
136
|
let nodes = getNodes(state, $NODE),
|
|
160
137
|
node;
|
|
161
|
-
if (
|
|
138
|
+
if (node = getNode(nodes, property, prev)) node.$(() => value);
|
|
162
139
|
if (Array.isArray(state) && state.length !== len) {
|
|
163
140
|
for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
|
|
164
141
|
(node = getNode(nodes, "length", len)) && node.$(state.length);
|
|
165
142
|
}
|
|
166
|
-
(node = nodes
|
|
143
|
+
(node = nodes[$SELF]) && node.$();
|
|
167
144
|
}
|
|
168
145
|
function mergeStoreNode(state, value) {
|
|
169
146
|
const keys = Object.keys(value);
|
|
@@ -204,7 +181,11 @@ function updatePath(current, path, traversed = []) {
|
|
|
204
181
|
}
|
|
205
182
|
return;
|
|
206
183
|
} else if (isArray && partType === "object") {
|
|
207
|
-
const {
|
|
184
|
+
const {
|
|
185
|
+
from = 0,
|
|
186
|
+
to = current.length - 1,
|
|
187
|
+
by = 1
|
|
188
|
+
} = part;
|
|
208
189
|
for (let i = from; i <= to; i += by) {
|
|
209
190
|
updatePath(current, [i].concat(path), traversed);
|
|
210
191
|
}
|
|
@@ -223,17 +204,14 @@ function updatePath(current, path, traversed = []) {
|
|
|
223
204
|
}
|
|
224
205
|
if (part === undefined && value == undefined) return;
|
|
225
206
|
value = unwrap(value);
|
|
226
|
-
if (part === undefined ||
|
|
207
|
+
if (part === undefined || isWrappable(prev) && isWrappable(value) && !Array.isArray(value)) {
|
|
227
208
|
mergeStoreNode(prev, value);
|
|
228
209
|
} else setProperty(current, part, value);
|
|
229
210
|
}
|
|
230
211
|
function createStore(...[store, options]) {
|
|
231
212
|
const unwrappedStore = unwrap(store || {});
|
|
232
213
|
const isArray = Array.isArray(unwrappedStore);
|
|
233
|
-
if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function")
|
|
234
|
-
throw new Error(
|
|
235
|
-
`Unexpected type ${typeof unwrappedStore} received when initializing 'createStore'. Expected an object.`
|
|
236
|
-
);
|
|
214
|
+
if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createStore'. Expected an object.`);
|
|
237
215
|
const wrappedStore = wrap$1(unwrappedStore);
|
|
238
216
|
DEV$1.registerGraph({
|
|
239
217
|
value: unwrappedStore,
|
|
@@ -241,9 +219,7 @@ function createStore(...[store, options]) {
|
|
|
241
219
|
});
|
|
242
220
|
function setStore(...args) {
|
|
243
221
|
batch(() => {
|
|
244
|
-
isArray && args.length === 1
|
|
245
|
-
? updateArray(unwrappedStore, args[0])
|
|
246
|
-
: updatePath(unwrappedStore, args);
|
|
222
|
+
isArray && args.length === 1 ? updateArray(unwrappedStore, args[0]) : updatePath(unwrappedStore, args);
|
|
247
223
|
});
|
|
248
224
|
}
|
|
249
225
|
return [wrappedStore, setStore];
|
|
@@ -251,19 +227,11 @@ function createStore(...[store, options]) {
|
|
|
251
227
|
|
|
252
228
|
function proxyDescriptor(target, property) {
|
|
253
229
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
254
|
-
if (
|
|
255
|
-
!desc ||
|
|
256
|
-
desc.get ||
|
|
257
|
-
desc.set ||
|
|
258
|
-
!desc.configurable ||
|
|
259
|
-
property === $PROXY ||
|
|
260
|
-
property === $NODE
|
|
261
|
-
)
|
|
262
|
-
return desc;
|
|
230
|
+
if (!desc || desc.get || desc.set || !desc.configurable || property === $PROXY || property === $NODE) return desc;
|
|
263
231
|
delete desc.value;
|
|
264
232
|
delete desc.writable;
|
|
265
233
|
desc.get = () => target[$PROXY][property];
|
|
266
|
-
desc.set = v =>
|
|
234
|
+
desc.set = v => target[$PROXY][property] = v;
|
|
267
235
|
return desc;
|
|
268
236
|
}
|
|
269
237
|
const proxyTraps = {
|
|
@@ -281,24 +249,14 @@ const proxyTraps = {
|
|
|
281
249
|
if (!tracked) {
|
|
282
250
|
const desc = Object.getOwnPropertyDescriptor(target, property);
|
|
283
251
|
const isFunction = typeof value === "function";
|
|
284
|
-
if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get))
|
|
285
|
-
value = getNode(nodes, property, value)();
|
|
286
|
-
else if (value != null && isFunction && value === Array.prototype[property]) {
|
|
252
|
+
if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();else if (value != null && isFunction && value === Array.prototype[property]) {
|
|
287
253
|
return (...args) => batch(() => Array.prototype[property].apply(receiver, args));
|
|
288
254
|
}
|
|
289
255
|
}
|
|
290
256
|
return isWrappable(value) ? wrap(value) : value;
|
|
291
257
|
},
|
|
292
258
|
has(target, property) {
|
|
293
|
-
if (
|
|
294
|
-
property === $RAW ||
|
|
295
|
-
property === $PROXY ||
|
|
296
|
-
property === $TRACK ||
|
|
297
|
-
property === $NODE ||
|
|
298
|
-
property === $HAS ||
|
|
299
|
-
property === "__proto__"
|
|
300
|
-
)
|
|
301
|
-
return true;
|
|
259
|
+
if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
|
|
302
260
|
getListener() && getNode(getNodes(target, $HAS), property)();
|
|
303
261
|
return property in target;
|
|
304
262
|
},
|
|
@@ -317,7 +275,7 @@ function wrap(value) {
|
|
|
317
275
|
let p = value[$PROXY];
|
|
318
276
|
if (!p) {
|
|
319
277
|
Object.defineProperty(value, $PROXY, {
|
|
320
|
-
value:
|
|
278
|
+
value: p = new Proxy(value, proxyTraps)
|
|
321
279
|
});
|
|
322
280
|
const keys = Object.keys(value),
|
|
323
281
|
desc = Object.getOwnPropertyDescriptors(value);
|
|
@@ -342,10 +300,7 @@ function wrap(value) {
|
|
|
342
300
|
}
|
|
343
301
|
function createMutable(state, options) {
|
|
344
302
|
const unwrappedStore = unwrap(state || {});
|
|
345
|
-
if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function")
|
|
346
|
-
throw new Error(
|
|
347
|
-
`Unexpected type ${typeof unwrappedStore} received when initializing 'createMutable'. Expected an object.`
|
|
348
|
-
);
|
|
303
|
+
if (typeof unwrappedStore !== "object" && typeof unwrappedStore !== "function") throw new Error(`Unexpected type ${typeof unwrappedStore} received when initializing 'createMutable'. Expected an object.`);
|
|
349
304
|
const wrappedStore = wrap(unwrappedStore);
|
|
350
305
|
DEV$1.registerGraph({
|
|
351
306
|
value: unwrappedStore,
|
|
@@ -361,39 +316,19 @@ const $ROOT = Symbol("store-root");
|
|
|
361
316
|
function applyState(target, parent, property, merge, key) {
|
|
362
317
|
const previous = parent[property];
|
|
363
318
|
if (target === previous) return;
|
|
364
|
-
if (
|
|
365
|
-
property !== $ROOT &&
|
|
366
|
-
(!isWrappable(target) || !isWrappable(previous) || (key && target[key] !== previous[key]))
|
|
367
|
-
) {
|
|
319
|
+
if (property !== $ROOT && (!isWrappable(target) || !isWrappable(previous) || key && target[key] !== previous[key])) {
|
|
368
320
|
setProperty(parent, property, target);
|
|
369
321
|
return;
|
|
370
322
|
}
|
|
371
323
|
if (Array.isArray(target)) {
|
|
372
|
-
if (
|
|
373
|
-
target.length &&
|
|
374
|
-
previous.length &&
|
|
375
|
-
(!merge || (key && target[0] && target[0][key] != null))
|
|
376
|
-
) {
|
|
324
|
+
if (target.length && previous.length && (!merge || key && target[0] && target[0][key] != null)) {
|
|
377
325
|
let i, j, start, end, newEnd, item, newIndicesNext, keyVal;
|
|
378
|
-
for (
|
|
379
|
-
start = 0, end = Math.min(previous.length, target.length);
|
|
380
|
-
start < end &&
|
|
381
|
-
(previous[start] === target[start] ||
|
|
382
|
-
(key && previous[start] && target[start] && previous[start][key] === target[start][key]));
|
|
383
|
-
start++
|
|
384
|
-
) {
|
|
326
|
+
for (start = 0, end = Math.min(previous.length, target.length); start < end && (previous[start] === target[start] || key && previous[start] && target[start] && previous[start][key] === target[start][key]); start++) {
|
|
385
327
|
applyState(target[start], previous, start, merge, key);
|
|
386
328
|
}
|
|
387
329
|
const temp = new Array(target.length),
|
|
388
330
|
newIndices = new Map();
|
|
389
|
-
for (
|
|
390
|
-
end = previous.length - 1, newEnd = target.length - 1;
|
|
391
|
-
end >= start &&
|
|
392
|
-
newEnd >= start &&
|
|
393
|
-
(previous[end] === target[newEnd] ||
|
|
394
|
-
(key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]));
|
|
395
|
-
end--, newEnd--
|
|
396
|
-
) {
|
|
331
|
+
for (end = previous.length - 1, newEnd = target.length - 1; end >= start && newEnd >= start && (previous[end] === target[newEnd] || key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]); end--, newEnd--) {
|
|
397
332
|
temp[newEnd] = previous[end];
|
|
398
333
|
}
|
|
399
334
|
if (start > newEnd || start > end) {
|
|
@@ -447,19 +382,16 @@ function applyState(target, parent, property, merge, key) {
|
|
|
447
382
|
}
|
|
448
383
|
}
|
|
449
384
|
function reconcile(value, options = {}) {
|
|
450
|
-
const {
|
|
385
|
+
const {
|
|
386
|
+
merge,
|
|
387
|
+
key = "id"
|
|
388
|
+
} = options,
|
|
451
389
|
v = unwrap(value);
|
|
452
390
|
return state => {
|
|
453
391
|
if (!isWrappable(state) || !isWrappable(v)) return v;
|
|
454
|
-
const res = applyState(
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
[$ROOT]: state
|
|
458
|
-
},
|
|
459
|
-
$ROOT,
|
|
460
|
-
merge,
|
|
461
|
-
key
|
|
462
|
-
);
|
|
392
|
+
const res = applyState(v, {
|
|
393
|
+
[$ROOT]: state
|
|
394
|
+
}, $ROOT, merge, key);
|
|
463
395
|
return res === undefined ? state : res;
|
|
464
396
|
};
|
|
465
397
|
}
|
|
@@ -469,10 +401,7 @@ const setterTraps = {
|
|
|
469
401
|
if (property === $RAW) return target;
|
|
470
402
|
const value = target[property];
|
|
471
403
|
let proxy;
|
|
472
|
-
return isWrappable(value)
|
|
473
|
-
? producers.get(value) ||
|
|
474
|
-
(producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy)
|
|
475
|
-
: value;
|
|
404
|
+
return isWrappable(value) ? producers.get(value) || (producers.set(value, proxy = new Proxy(value, setterTraps)), proxy) : value;
|
|
476
405
|
},
|
|
477
406
|
set(target, property, value) {
|
|
478
407
|
setProperty(target, property, unwrap(value));
|
|
@@ -488,7 +417,7 @@ function produce(fn) {
|
|
|
488
417
|
if (isWrappable(state)) {
|
|
489
418
|
let proxy;
|
|
490
419
|
if (!(proxy = producers.get(state))) {
|
|
491
|
-
producers.set(state,
|
|
420
|
+
producers.set(state, proxy = new Proxy(state, setterTraps));
|
|
492
421
|
}
|
|
493
422
|
fn(proxy);
|
|
494
423
|
}
|
|
@@ -500,6 +429,6 @@ const DEV = {
|
|
|
500
429
|
$NODE,
|
|
501
430
|
isWrappable,
|
|
502
431
|
hooks: DevHooks
|
|
503
|
-
};
|
|
432
|
+
} ;
|
|
504
433
|
|
|
505
434
|
export { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };
|
package/store/dist/server.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
const $RAW = Symbol("state-raw");
|
|
2
2
|
function isWrappable(obj) {
|
|
3
|
-
return (
|
|
4
|
-
obj != null &&
|
|
5
|
-
typeof obj === "object" &&
|
|
6
|
-
(Object.getPrototypeOf(obj) === Object.prototype || Array.isArray(obj))
|
|
7
|
-
);
|
|
3
|
+
return obj != null && typeof obj === "object" && (Object.getPrototypeOf(obj) === Object.prototype || Array.isArray(obj));
|
|
8
4
|
}
|
|
9
5
|
function unwrap(item) {
|
|
10
6
|
return item;
|
|
@@ -53,7 +49,11 @@ function updatePath(current, path, traversed = []) {
|
|
|
53
49
|
}
|
|
54
50
|
return;
|
|
55
51
|
} else if (isArray && partType === "object") {
|
|
56
|
-
const {
|
|
52
|
+
const {
|
|
53
|
+
from = 0,
|
|
54
|
+
to = current.length - 1,
|
|
55
|
+
by = 1
|
|
56
|
+
} = part;
|
|
57
57
|
for (let i = from; i <= to; i += by) {
|
|
58
58
|
updatePath(current, [i].concat(path), traversed);
|
|
59
59
|
}
|
|
@@ -71,7 +71,7 @@ function updatePath(current, path, traversed = []) {
|
|
|
71
71
|
if (value === next) return;
|
|
72
72
|
}
|
|
73
73
|
if (part === undefined && value == undefined) return;
|
|
74
|
-
if (part === undefined ||
|
|
74
|
+
if (part === undefined || isWrappable(next) && isWrappable(value) && !Array.isArray(value)) {
|
|
75
75
|
mergeStoreNode(next, value);
|
|
76
76
|
} else setProperty(current, part, value);
|
|
77
77
|
}
|
|
@@ -108,15 +108,4 @@ function produce(fn) {
|
|
|
108
108
|
}
|
|
109
109
|
const DEV = undefined;
|
|
110
110
|
|
|
111
|
-
export {
|
|
112
|
-
$RAW,
|
|
113
|
-
DEV,
|
|
114
|
-
createMutable,
|
|
115
|
-
createStore,
|
|
116
|
-
isWrappable,
|
|
117
|
-
produce,
|
|
118
|
-
reconcile,
|
|
119
|
-
setProperty,
|
|
120
|
-
unwrap,
|
|
121
|
-
updatePath
|
|
122
|
-
};
|
|
111
|
+
export { $RAW, DEV, createMutable, createStore, isWrappable, produce, reconcile, setProperty, unwrap, updatePath };
|
package/store/dist/store.cjs
CHANGED
|
@@ -4,7 +4,8 @@ var solidJs = require('solid-js');
|
|
|
4
4
|
|
|
5
5
|
const $RAW = Symbol("store-raw"),
|
|
6
6
|
$NODE = Symbol("store-node"),
|
|
7
|
-
$HAS = Symbol("store-has")
|
|
7
|
+
$HAS = Symbol("store-has"),
|
|
8
|
+
$SELF = Symbol("store-self");
|
|
8
9
|
function wrap$1(value) {
|
|
9
10
|
let p = value[solidJs.$PROXY];
|
|
10
11
|
if (!p) {
|
|
@@ -79,7 +80,7 @@ function proxyDescriptor$1(target, property) {
|
|
|
79
80
|
return desc;
|
|
80
81
|
}
|
|
81
82
|
function trackSelf(target) {
|
|
82
|
-
solidJs.getListener() && getNode(getNodes(target, $NODE),
|
|
83
|
+
solidJs.getListener() && getNode(getNodes(target, $NODE), $SELF)();
|
|
83
84
|
}
|
|
84
85
|
function ownKeys(target) {
|
|
85
86
|
trackSelf(target);
|
|
@@ -135,7 +136,7 @@ function setProperty(state, property, value, deleting = false) {
|
|
|
135
136
|
for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
|
|
136
137
|
(node = getNode(nodes, "length", len)) && node.$(state.length);
|
|
137
138
|
}
|
|
138
|
-
(node = nodes
|
|
139
|
+
(node = nodes[$SELF]) && node.$();
|
|
139
140
|
}
|
|
140
141
|
function mergeStoreNode(state, value) {
|
|
141
142
|
const keys = Object.keys(value);
|