solid-js 1.8.2 → 1.8.3

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