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/store.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { $PROXY, $TRACK, getListener, batch, createSignal } from
|
|
1
|
+
import { $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
|
function wrap$1(value) {
|
|
7
8
|
let p = value[$PROXY];
|
|
8
9
|
if (!p) {
|
|
9
10
|
Object.defineProperty(value, $PROXY, {
|
|
10
|
-
value:
|
|
11
|
+
value: p = new Proxy(value, proxyTraps$1)
|
|
11
12
|
});
|
|
12
13
|
if (!Array.isArray(value)) {
|
|
13
14
|
const keys = Object.keys(value),
|
|
@@ -27,29 +28,20 @@ function wrap$1(value) {
|
|
|
27
28
|
}
|
|
28
29
|
function isWrappable(obj) {
|
|
29
30
|
let proto;
|
|
30
|
-
return (
|
|
31
|
-
obj != null &&
|
|
32
|
-
typeof obj === "object" &&
|
|
33
|
-
(obj[$PROXY] ||
|
|
34
|
-
!(proto = Object.getPrototypeOf(obj)) ||
|
|
35
|
-
proto === Object.prototype ||
|
|
36
|
-
Array.isArray(obj))
|
|
37
|
-
);
|
|
31
|
+
return obj != null && typeof obj === "object" && (obj[$PROXY] || !(proto = Object.getPrototypeOf(obj)) || proto === Object.prototype || Array.isArray(obj));
|
|
38
32
|
}
|
|
39
33
|
function unwrap(item, set = new Set()) {
|
|
40
34
|
let result, unwrapped, v, prop;
|
|
41
|
-
if (
|
|
35
|
+
if (result = item != null && item[$RAW]) return result;
|
|
42
36
|
if (!isWrappable(item) || set.has(item)) return item;
|
|
43
37
|
if (Array.isArray(item)) {
|
|
44
|
-
if (Object.isFrozen(item)) item = item.slice(0);
|
|
45
|
-
else set.add(item);
|
|
38
|
+
if (Object.isFrozen(item)) item = item.slice(0);else set.add(item);
|
|
46
39
|
for (let i = 0, l = item.length; i < l; i++) {
|
|
47
40
|
v = item[i];
|
|
48
41
|
if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped;
|
|
49
42
|
}
|
|
50
43
|
} else {
|
|
51
|
-
if (Object.isFrozen(item)) item = Object.assign({}, item);
|
|
52
|
-
else set.add(item);
|
|
44
|
+
if (Object.isFrozen(item)) item = Object.assign({}, item);else set.add(item);
|
|
53
45
|
const keys = Object.keys(item),
|
|
54
46
|
desc = Object.getOwnPropertyDescriptors(item);
|
|
55
47
|
for (let i = 0, l = keys.length; i < l; i++) {
|
|
@@ -63,10 +55,9 @@ function unwrap(item, set = new Set()) {
|
|
|
63
55
|
}
|
|
64
56
|
function getNodes(target, symbol) {
|
|
65
57
|
let nodes = target[symbol];
|
|
66
|
-
if (!nodes)
|
|
67
|
-
Object.
|
|
68
|
-
|
|
69
|
-
});
|
|
58
|
+
if (!nodes) Object.defineProperty(target, symbol, {
|
|
59
|
+
value: nodes = Object.create(null)
|
|
60
|
+
});
|
|
70
61
|
return nodes;
|
|
71
62
|
}
|
|
72
63
|
function getNode(nodes, property, value) {
|
|
@@ -76,19 +67,18 @@ function getNode(nodes, property, value) {
|
|
|
76
67
|
internal: true
|
|
77
68
|
});
|
|
78
69
|
s.$ = set;
|
|
79
|
-
return
|
|
70
|
+
return nodes[property] = s;
|
|
80
71
|
}
|
|
81
72
|
function proxyDescriptor$1(target, property) {
|
|
82
73
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
83
|
-
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE)
|
|
84
|
-
return desc;
|
|
74
|
+
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE) return desc;
|
|
85
75
|
delete desc.value;
|
|
86
76
|
delete desc.writable;
|
|
87
77
|
desc.get = () => target[$PROXY][property];
|
|
88
78
|
return desc;
|
|
89
79
|
}
|
|
90
80
|
function trackSelf(target) {
|
|
91
|
-
getListener() && getNode(getNodes(target, $NODE),
|
|
81
|
+
getListener() && getNode(getNodes(target, $NODE), $SELF)();
|
|
92
82
|
}
|
|
93
83
|
function ownKeys(target) {
|
|
94
84
|
trackSelf(target);
|
|
@@ -108,25 +98,12 @@ const proxyTraps$1 = {
|
|
|
108
98
|
if (property === $NODE || property === $HAS || property === "__proto__") return value;
|
|
109
99
|
if (!tracked) {
|
|
110
100
|
const desc = Object.getOwnPropertyDescriptor(target, property);
|
|
111
|
-
if (
|
|
112
|
-
getListener() &&
|
|
113
|
-
(typeof value !== "function" || target.hasOwnProperty(property)) &&
|
|
114
|
-
!(desc && desc.get)
|
|
115
|
-
)
|
|
116
|
-
value = getNode(nodes, property, value)();
|
|
101
|
+
if (getListener() && (typeof value !== "function" || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();
|
|
117
102
|
}
|
|
118
103
|
return isWrappable(value) ? wrap$1(value) : value;
|
|
119
104
|
},
|
|
120
105
|
has(target, property) {
|
|
121
|
-
if (
|
|
122
|
-
property === $RAW ||
|
|
123
|
-
property === $PROXY ||
|
|
124
|
-
property === $TRACK ||
|
|
125
|
-
property === $NODE ||
|
|
126
|
-
property === $HAS ||
|
|
127
|
-
property === "__proto__"
|
|
128
|
-
)
|
|
129
|
-
return true;
|
|
106
|
+
if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
|
|
130
107
|
getListener() && getNode(getNodes(target, $HAS), property)();
|
|
131
108
|
return property in target;
|
|
132
109
|
},
|
|
@@ -152,12 +129,12 @@ function setProperty(state, property, value, deleting = false) {
|
|
|
152
129
|
}
|
|
153
130
|
let nodes = getNodes(state, $NODE),
|
|
154
131
|
node;
|
|
155
|
-
if (
|
|
132
|
+
if (node = getNode(nodes, property, prev)) node.$(() => value);
|
|
156
133
|
if (Array.isArray(state) && state.length !== len) {
|
|
157
134
|
for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
|
|
158
135
|
(node = getNode(nodes, "length", len)) && node.$(state.length);
|
|
159
136
|
}
|
|
160
|
-
(node = nodes
|
|
137
|
+
(node = nodes[$SELF]) && node.$();
|
|
161
138
|
}
|
|
162
139
|
function mergeStoreNode(state, value) {
|
|
163
140
|
const keys = Object.keys(value);
|
|
@@ -198,7 +175,11 @@ function updatePath(current, path, traversed = []) {
|
|
|
198
175
|
}
|
|
199
176
|
return;
|
|
200
177
|
} else if (isArray && partType === "object") {
|
|
201
|
-
const {
|
|
178
|
+
const {
|
|
179
|
+
from = 0,
|
|
180
|
+
to = current.length - 1,
|
|
181
|
+
by = 1
|
|
182
|
+
} = part;
|
|
202
183
|
for (let i = from; i <= to; i += by) {
|
|
203
184
|
updatePath(current, [i].concat(path), traversed);
|
|
204
185
|
}
|
|
@@ -217,7 +198,7 @@ function updatePath(current, path, traversed = []) {
|
|
|
217
198
|
}
|
|
218
199
|
if (part === undefined && value == undefined) return;
|
|
219
200
|
value = unwrap(value);
|
|
220
|
-
if (part === undefined ||
|
|
201
|
+
if (part === undefined || isWrappable(prev) && isWrappable(value) && !Array.isArray(value)) {
|
|
221
202
|
mergeStoreNode(prev, value);
|
|
222
203
|
} else setProperty(current, part, value);
|
|
223
204
|
}
|
|
@@ -227,9 +208,7 @@ function createStore(...[store, options]) {
|
|
|
227
208
|
const wrappedStore = wrap$1(unwrappedStore);
|
|
228
209
|
function setStore(...args) {
|
|
229
210
|
batch(() => {
|
|
230
|
-
isArray && args.length === 1
|
|
231
|
-
? updateArray(unwrappedStore, args[0])
|
|
232
|
-
: updatePath(unwrappedStore, args);
|
|
211
|
+
isArray && args.length === 1 ? updateArray(unwrappedStore, args[0]) : updatePath(unwrappedStore, args);
|
|
233
212
|
});
|
|
234
213
|
}
|
|
235
214
|
return [wrappedStore, setStore];
|
|
@@ -237,19 +216,11 @@ function createStore(...[store, options]) {
|
|
|
237
216
|
|
|
238
217
|
function proxyDescriptor(target, property) {
|
|
239
218
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
240
|
-
if (
|
|
241
|
-
!desc ||
|
|
242
|
-
desc.get ||
|
|
243
|
-
desc.set ||
|
|
244
|
-
!desc.configurable ||
|
|
245
|
-
property === $PROXY ||
|
|
246
|
-
property === $NODE
|
|
247
|
-
)
|
|
248
|
-
return desc;
|
|
219
|
+
if (!desc || desc.get || desc.set || !desc.configurable || property === $PROXY || property === $NODE) return desc;
|
|
249
220
|
delete desc.value;
|
|
250
221
|
delete desc.writable;
|
|
251
222
|
desc.get = () => target[$PROXY][property];
|
|
252
|
-
desc.set = v =>
|
|
223
|
+
desc.set = v => target[$PROXY][property] = v;
|
|
253
224
|
return desc;
|
|
254
225
|
}
|
|
255
226
|
const proxyTraps = {
|
|
@@ -267,24 +238,14 @@ const proxyTraps = {
|
|
|
267
238
|
if (!tracked) {
|
|
268
239
|
const desc = Object.getOwnPropertyDescriptor(target, property);
|
|
269
240
|
const isFunction = typeof value === "function";
|
|
270
|
-
if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get))
|
|
271
|
-
value = getNode(nodes, property, value)();
|
|
272
|
-
else if (value != null && isFunction && value === Array.prototype[property]) {
|
|
241
|
+
if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();else if (value != null && isFunction && value === Array.prototype[property]) {
|
|
273
242
|
return (...args) => batch(() => Array.prototype[property].apply(receiver, args));
|
|
274
243
|
}
|
|
275
244
|
}
|
|
276
245
|
return isWrappable(value) ? wrap(value) : value;
|
|
277
246
|
},
|
|
278
247
|
has(target, property) {
|
|
279
|
-
if (
|
|
280
|
-
property === $RAW ||
|
|
281
|
-
property === $PROXY ||
|
|
282
|
-
property === $TRACK ||
|
|
283
|
-
property === $NODE ||
|
|
284
|
-
property === $HAS ||
|
|
285
|
-
property === "__proto__"
|
|
286
|
-
)
|
|
287
|
-
return true;
|
|
248
|
+
if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
|
|
288
249
|
getListener() && getNode(getNodes(target, $HAS), property)();
|
|
289
250
|
return property in target;
|
|
290
251
|
},
|
|
@@ -303,7 +264,7 @@ function wrap(value) {
|
|
|
303
264
|
let p = value[$PROXY];
|
|
304
265
|
if (!p) {
|
|
305
266
|
Object.defineProperty(value, $PROXY, {
|
|
306
|
-
value:
|
|
267
|
+
value: p = new Proxy(value, proxyTraps)
|
|
307
268
|
});
|
|
308
269
|
const keys = Object.keys(value),
|
|
309
270
|
desc = Object.getOwnPropertyDescriptors(value);
|
|
@@ -339,39 +300,19 @@ const $ROOT = Symbol("store-root");
|
|
|
339
300
|
function applyState(target, parent, property, merge, key) {
|
|
340
301
|
const previous = parent[property];
|
|
341
302
|
if (target === previous) return;
|
|
342
|
-
if (
|
|
343
|
-
property !== $ROOT &&
|
|
344
|
-
(!isWrappable(target) || !isWrappable(previous) || (key && target[key] !== previous[key]))
|
|
345
|
-
) {
|
|
303
|
+
if (property !== $ROOT && (!isWrappable(target) || !isWrappable(previous) || key && target[key] !== previous[key])) {
|
|
346
304
|
setProperty(parent, property, target);
|
|
347
305
|
return;
|
|
348
306
|
}
|
|
349
307
|
if (Array.isArray(target)) {
|
|
350
|
-
if (
|
|
351
|
-
target.length &&
|
|
352
|
-
previous.length &&
|
|
353
|
-
(!merge || (key && target[0] && target[0][key] != null))
|
|
354
|
-
) {
|
|
308
|
+
if (target.length && previous.length && (!merge || key && target[0] && target[0][key] != null)) {
|
|
355
309
|
let i, j, start, end, newEnd, item, newIndicesNext, keyVal;
|
|
356
|
-
for (
|
|
357
|
-
start = 0, end = Math.min(previous.length, target.length);
|
|
358
|
-
start < end &&
|
|
359
|
-
(previous[start] === target[start] ||
|
|
360
|
-
(key && previous[start] && target[start] && previous[start][key] === target[start][key]));
|
|
361
|
-
start++
|
|
362
|
-
) {
|
|
310
|
+
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++) {
|
|
363
311
|
applyState(target[start], previous, start, merge, key);
|
|
364
312
|
}
|
|
365
313
|
const temp = new Array(target.length),
|
|
366
314
|
newIndices = new Map();
|
|
367
|
-
for (
|
|
368
|
-
end = previous.length - 1, newEnd = target.length - 1;
|
|
369
|
-
end >= start &&
|
|
370
|
-
newEnd >= start &&
|
|
371
|
-
(previous[end] === target[newEnd] ||
|
|
372
|
-
(key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]));
|
|
373
|
-
end--, newEnd--
|
|
374
|
-
) {
|
|
315
|
+
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--) {
|
|
375
316
|
temp[newEnd] = previous[end];
|
|
376
317
|
}
|
|
377
318
|
if (start > newEnd || start > end) {
|
|
@@ -425,19 +366,16 @@ function applyState(target, parent, property, merge, key) {
|
|
|
425
366
|
}
|
|
426
367
|
}
|
|
427
368
|
function reconcile(value, options = {}) {
|
|
428
|
-
const {
|
|
369
|
+
const {
|
|
370
|
+
merge,
|
|
371
|
+
key = "id"
|
|
372
|
+
} = options,
|
|
429
373
|
v = unwrap(value);
|
|
430
374
|
return state => {
|
|
431
375
|
if (!isWrappable(state) || !isWrappable(v)) return v;
|
|
432
|
-
const res = applyState(
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
[$ROOT]: state
|
|
436
|
-
},
|
|
437
|
-
$ROOT,
|
|
438
|
-
merge,
|
|
439
|
-
key
|
|
440
|
-
);
|
|
376
|
+
const res = applyState(v, {
|
|
377
|
+
[$ROOT]: state
|
|
378
|
+
}, $ROOT, merge, key);
|
|
441
379
|
return res === undefined ? state : res;
|
|
442
380
|
};
|
|
443
381
|
}
|
|
@@ -447,10 +385,7 @@ const setterTraps = {
|
|
|
447
385
|
if (property === $RAW) return target;
|
|
448
386
|
const value = target[property];
|
|
449
387
|
let proxy;
|
|
450
|
-
return isWrappable(value)
|
|
451
|
-
? producers.get(value) ||
|
|
452
|
-
(producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy)
|
|
453
|
-
: value;
|
|
388
|
+
return isWrappable(value) ? producers.get(value) || (producers.set(value, proxy = new Proxy(value, setterTraps)), proxy) : value;
|
|
454
389
|
},
|
|
455
390
|
set(target, property, value) {
|
|
456
391
|
setProperty(target, property, unwrap(value));
|
|
@@ -466,7 +401,7 @@ function produce(fn) {
|
|
|
466
401
|
if (isWrappable(state)) {
|
|
467
402
|
let proxy;
|
|
468
403
|
if (!(proxy = producers.get(state))) {
|
|
469
|
-
producers.set(state,
|
|
404
|
+
producers.set(state, proxy = new Proxy(state, setterTraps));
|
|
470
405
|
}
|
|
471
406
|
fn(proxy);
|
|
472
407
|
}
|
package/store/types/index.d.ts
CHANGED
|
@@ -1,26 +1,12 @@
|
|
|
1
1
|
export { $RAW, createStore, unwrap } from "./store.js";
|
|
2
|
-
export type {
|
|
3
|
-
ArrayFilterFn,
|
|
4
|
-
DeepMutable,
|
|
5
|
-
DeepReadonly,
|
|
6
|
-
NotWrappable,
|
|
7
|
-
Part,
|
|
8
|
-
SetStoreFunction,
|
|
9
|
-
SolidStore,
|
|
10
|
-
Store,
|
|
11
|
-
StoreNode,
|
|
12
|
-
StorePathRange,
|
|
13
|
-
StoreSetter
|
|
14
|
-
} from "./store.js";
|
|
2
|
+
export type { ArrayFilterFn, DeepMutable, DeepReadonly, NotWrappable, Part, SetStoreFunction, SolidStore, Store, StoreNode, StorePathRange, StoreSetter } from "./store.js";
|
|
15
3
|
export * from "./mutable.js";
|
|
16
4
|
export * from "./modifiers.js";
|
|
17
5
|
import { $NODE, isWrappable } from "./store.js";
|
|
18
|
-
export declare const DEV:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
readonly hooks: {
|
|
6
|
+
export declare const DEV: {
|
|
7
|
+
readonly $NODE: typeof $NODE;
|
|
8
|
+
readonly isWrappable: typeof isWrappable;
|
|
9
|
+
readonly hooks: {
|
|
23
10
|
onStoreNodeUpdate: import("./store.js").OnStoreNodeUpdate | null;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| undefined;
|
|
11
|
+
};
|
|
12
|
+
} | undefined;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export type ReconcileOptions = {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
key?: string | null;
|
|
3
|
+
merge?: boolean;
|
|
4
4
|
};
|
|
5
|
-
export declare function reconcile<T extends U, U>(
|
|
6
|
-
value: T,
|
|
7
|
-
options?: ReconcileOptions
|
|
8
|
-
): (state: U) => T;
|
|
5
|
+
export declare function reconcile<T extends U, U>(value: T, options?: ReconcileOptions): (state: U) => T;
|
|
9
6
|
export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
|
package/store/types/mutable.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { StoreNode } from "./store.js";
|
|
2
|
-
export declare function createMutable<T extends StoreNode>(
|
|
3
|
-
state: T,
|
|
4
|
-
options?: {
|
|
2
|
+
export declare function createMutable<T extends StoreNode>(state: T, options?: {
|
|
5
3
|
name?: string;
|
|
6
|
-
|
|
7
|
-
): T;
|
|
4
|
+
}): T;
|
|
8
5
|
export declare function modifyMutable<T>(state: T, modifier: (state: T) => T): void;
|
package/store/types/server.d.ts
CHANGED
|
@@ -2,23 +2,15 @@ import type { SetStoreFunction, Store } from "./store.js";
|
|
|
2
2
|
export declare const $RAW: unique symbol;
|
|
3
3
|
export declare function isWrappable(obj: any): boolean;
|
|
4
4
|
export declare function unwrap<T>(item: T): T;
|
|
5
|
-
export declare function setProperty(
|
|
6
|
-
state: any,
|
|
7
|
-
property: PropertyKey,
|
|
8
|
-
value: any,
|
|
9
|
-
force?: boolean
|
|
10
|
-
): void;
|
|
5
|
+
export declare function setProperty(state: any, property: PropertyKey, value: any, force?: boolean): void;
|
|
11
6
|
export declare function updatePath(current: any, path: any[], traversed?: PropertyKey[]): void;
|
|
12
7
|
export declare function createStore<T>(state: T | Store<T>): [Store<T>, SetStoreFunction<T>];
|
|
13
8
|
export declare function createMutable<T>(state: T | Store<T>): T;
|
|
14
9
|
type ReconcileOptions = {
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
key?: string | null;
|
|
11
|
+
merge?: boolean;
|
|
17
12
|
};
|
|
18
|
-
export declare function reconcile<T extends U, U extends object>(
|
|
19
|
-
value: T,
|
|
20
|
-
options?: ReconcileOptions
|
|
21
|
-
): (state: U) => T;
|
|
13
|
+
export declare function reconcile<T extends U, U extends object>(value: T, options?: ReconcileOptions): (state: U) => T;
|
|
22
14
|
export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
|
|
23
15
|
export declare const DEV: undefined;
|
|
24
16
|
export {};
|