solid-js 1.9.1 → 1.9.2

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/dev.cjs +1 -1
  3. package/dist/dev.js +318 -559
  4. package/dist/server.js +74 -168
  5. package/dist/solid.cjs +1 -1
  6. package/dist/solid.js +276 -486
  7. package/h/dist/h.js +9 -40
  8. package/h/jsx-runtime/dist/jsx.js +1 -1
  9. package/h/jsx-runtime/types/index.d.ts +8 -11
  10. package/h/jsx-runtime/types/jsx.d.ts +196 -59
  11. package/h/types/hyperscript.d.ts +11 -11
  12. package/html/dist/html.cjs +1 -1
  13. package/html/dist/html.js +94 -219
  14. package/html/types/lit.d.ts +33 -52
  15. package/package.json +1 -1
  16. package/store/dist/dev.js +43 -123
  17. package/store/dist/server.js +8 -20
  18. package/store/dist/store.js +40 -114
  19. package/store/types/index.d.ts +7 -21
  20. package/store/types/modifiers.d.ts +3 -6
  21. package/store/types/mutable.d.ts +2 -5
  22. package/store/types/server.d.ts +5 -25
  23. package/store/types/store.d.ts +61 -218
  24. package/types/index.d.ts +10 -75
  25. package/types/jsx.d.ts +195 -47
  26. package/types/reactive/array.d.ts +4 -12
  27. package/types/reactive/observable.d.ts +17 -25
  28. package/types/reactive/scheduler.d.ts +6 -9
  29. package/types/reactive/signal.d.ts +142 -233
  30. package/types/render/Suspense.d.ts +5 -5
  31. package/types/render/component.d.ts +35 -71
  32. package/types/render/flow.d.ts +31 -43
  33. package/types/render/hydration.d.ts +15 -15
  34. package/types/server/index.d.ts +2 -57
  35. package/types/server/reactive.d.ts +42 -73
  36. package/types/server/rendering.d.ts +98 -169
  37. package/universal/dist/dev.js +12 -28
  38. package/universal/dist/universal.js +12 -28
  39. package/universal/types/index.d.ts +1 -3
  40. package/universal/types/universal.d.ts +1 -0
  41. package/web/dist/dev.cjs +14 -14
  42. package/web/dist/dev.js +89 -639
  43. package/web/dist/server.cjs +14 -14
  44. package/web/dist/server.js +108 -635
  45. package/web/dist/web.cjs +14 -14
  46. package/web/dist/web.js +87 -627
  47. package/web/storage/dist/storage.js +3 -3
  48. package/web/types/core.d.ts +1 -10
  49. package/web/types/index.d.ts +10 -27
  50. package/web/types/server-mock.d.ts +32 -47
@@ -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,29 +28,20 @@ function wrap$1(value) {
28
28
  }
29
29
  function isWrappable(obj) {
30
30
  let proto;
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
- );
31
+ return obj != null && typeof obj === "object" && (obj[$PROXY] || !(proto = Object.getPrototypeOf(obj)) || proto === Object.prototype || Array.isArray(obj));
39
32
  }
40
33
  function unwrap(item, set = new Set()) {
41
34
  let result, unwrapped, v, prop;
42
- if ((result = item != null && item[$RAW])) return result;
35
+ if (result = item != null && item[$RAW]) return result;
43
36
  if (!isWrappable(item) || set.has(item)) return item;
44
37
  if (Array.isArray(item)) {
45
- if (Object.isFrozen(item)) item = item.slice(0);
46
- else set.add(item);
38
+ if (Object.isFrozen(item)) item = item.slice(0);else set.add(item);
47
39
  for (let i = 0, l = item.length; i < l; i++) {
48
40
  v = item[i];
49
41
  if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped;
50
42
  }
51
43
  } else {
52
- if (Object.isFrozen(item)) item = Object.assign({}, item);
53
- else set.add(item);
44
+ if (Object.isFrozen(item)) item = Object.assign({}, item);else set.add(item);
54
45
  const keys = Object.keys(item),
55
46
  desc = Object.getOwnPropertyDescriptors(item);
56
47
  for (let i = 0, l = keys.length; i < l; i++) {
@@ -64,10 +55,9 @@ function unwrap(item, set = new Set()) {
64
55
  }
65
56
  function getNodes(target, symbol) {
66
57
  let nodes = target[symbol];
67
- if (!nodes)
68
- Object.defineProperty(target, symbol, {
69
- value: (nodes = Object.create(null))
70
- });
58
+ if (!nodes) Object.defineProperty(target, symbol, {
59
+ value: nodes = Object.create(null)
60
+ });
71
61
  return nodes;
72
62
  }
73
63
  function getNode(nodes, property, value) {
@@ -77,12 +67,11 @@ function getNode(nodes, property, value) {
77
67
  internal: true
78
68
  });
79
69
  s.$ = set;
80
- return (nodes[property] = s);
70
+ return nodes[property] = s;
81
71
  }
82
72
  function proxyDescriptor$1(target, property) {
83
73
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
84
- if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE)
85
- return desc;
74
+ if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE) return desc;
86
75
  delete desc.value;
87
76
  delete desc.writable;
88
77
  desc.get = () => target[$PROXY][property];
@@ -109,25 +98,12 @@ const proxyTraps$1 = {
109
98
  if (property === $NODE || property === $HAS || property === "__proto__") return value;
110
99
  if (!tracked) {
111
100
  const desc = Object.getOwnPropertyDescriptor(target, property);
112
- if (
113
- getListener() &&
114
- (typeof value !== "function" || target.hasOwnProperty(property)) &&
115
- !(desc && desc.get)
116
- )
117
- value = getNode(nodes, property, value)();
101
+ if (getListener() && (typeof value !== "function" || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();
118
102
  }
119
103
  return isWrappable(value) ? wrap$1(value) : value;
120
104
  },
121
105
  has(target, property) {
122
- if (
123
- property === $RAW ||
124
- property === $PROXY ||
125
- property === $TRACK ||
126
- property === $NODE ||
127
- property === $HAS ||
128
- property === "__proto__"
129
- )
130
- return true;
106
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
131
107
  getListener() && getNode(getNodes(target, $HAS), property)();
132
108
  return property in target;
133
109
  },
@@ -153,7 +129,7 @@ function setProperty(state, property, value, deleting = false) {
153
129
  }
154
130
  let nodes = getNodes(state, $NODE),
155
131
  node;
156
- if ((node = getNode(nodes, property, prev))) node.$(() => value);
132
+ if (node = getNode(nodes, property, prev)) node.$(() => value);
157
133
  if (Array.isArray(state) && state.length !== len) {
158
134
  for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();
159
135
  (node = getNode(nodes, "length", len)) && node.$(state.length);
@@ -199,7 +175,11 @@ function updatePath(current, path, traversed = []) {
199
175
  }
200
176
  return;
201
177
  } else if (isArray && partType === "object") {
202
- const { from = 0, to = current.length - 1, by = 1 } = part;
178
+ const {
179
+ from = 0,
180
+ to = current.length - 1,
181
+ by = 1
182
+ } = part;
203
183
  for (let i = from; i <= to; i += by) {
204
184
  updatePath(current, [i].concat(path), traversed);
205
185
  }
@@ -218,7 +198,7 @@ function updatePath(current, path, traversed = []) {
218
198
  }
219
199
  if (part === undefined && value == undefined) return;
220
200
  value = unwrap(value);
221
- if (part === undefined || (isWrappable(prev) && isWrappable(value) && !Array.isArray(value))) {
201
+ if (part === undefined || isWrappable(prev) && isWrappable(value) && !Array.isArray(value)) {
222
202
  mergeStoreNode(prev, value);
223
203
  } else setProperty(current, part, value);
224
204
  }
@@ -228,9 +208,7 @@ function createStore(...[store, options]) {
228
208
  const wrappedStore = wrap$1(unwrappedStore);
229
209
  function setStore(...args) {
230
210
  batch(() => {
231
- isArray && args.length === 1
232
- ? updateArray(unwrappedStore, args[0])
233
- : updatePath(unwrappedStore, args);
211
+ isArray && args.length === 1 ? updateArray(unwrappedStore, args[0]) : updatePath(unwrappedStore, args);
234
212
  });
235
213
  }
236
214
  return [wrappedStore, setStore];
@@ -238,19 +216,11 @@ function createStore(...[store, options]) {
238
216
 
239
217
  function proxyDescriptor(target, property) {
240
218
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
241
- if (
242
- !desc ||
243
- desc.get ||
244
- desc.set ||
245
- !desc.configurable ||
246
- property === $PROXY ||
247
- property === $NODE
248
- )
249
- return desc;
219
+ if (!desc || desc.get || desc.set || !desc.configurable || property === $PROXY || property === $NODE) return desc;
250
220
  delete desc.value;
251
221
  delete desc.writable;
252
222
  desc.get = () => target[$PROXY][property];
253
- desc.set = v => (target[$PROXY][property] = v);
223
+ desc.set = v => target[$PROXY][property] = v;
254
224
  return desc;
255
225
  }
256
226
  const proxyTraps = {
@@ -268,24 +238,14 @@ const proxyTraps = {
268
238
  if (!tracked) {
269
239
  const desc = Object.getOwnPropertyDescriptor(target, property);
270
240
  const isFunction = typeof value === "function";
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]) {
241
+ if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();else if (value != null && isFunction && value === Array.prototype[property]) {
274
242
  return (...args) => batch(() => Array.prototype[property].apply(receiver, args));
275
243
  }
276
244
  }
277
245
  return isWrappable(value) ? wrap(value) : value;
278
246
  },
279
247
  has(target, property) {
280
- if (
281
- property === $RAW ||
282
- property === $PROXY ||
283
- property === $TRACK ||
284
- property === $NODE ||
285
- property === $HAS ||
286
- property === "__proto__"
287
- )
288
- return true;
248
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === "__proto__") return true;
289
249
  getListener() && getNode(getNodes(target, $HAS), property)();
290
250
  return property in target;
291
251
  },
@@ -304,17 +264,12 @@ function wrap(value) {
304
264
  let p = value[$PROXY];
305
265
  if (!p) {
306
266
  Object.defineProperty(value, $PROXY, {
307
- value: (p = new Proxy(value, proxyTraps))
267
+ value: p = new Proxy(value, proxyTraps)
308
268
  });
309
269
  const keys = Object.keys(value),
310
270
  desc = Object.getOwnPropertyDescriptors(value);
311
271
  const proto = Object.getPrototypeOf(value);
312
- const isClass =
313
- proto !== null &&
314
- value !== null &&
315
- typeof value === "object" &&
316
- !Array.isArray(value) &&
317
- proto !== Object.prototype;
272
+ const isClass = proto !== null && value !== null && typeof value === "object" && !Array.isArray(value) && proto !== Object.prototype;
318
273
  if (isClass) {
319
274
  const descriptors = Object.getOwnPropertyDescriptors(proto);
320
275
  keys.push(...Object.keys(descriptors));
@@ -356,42 +311,19 @@ function applyState(target, parent, property, merge, key) {
356
311
  const previous = parent[property];
357
312
  if (target === previous) return;
358
313
  const isArray = Array.isArray(target);
359
- if (
360
- property !== $ROOT &&
361
- (!isWrappable(target) ||
362
- !isWrappable(previous) ||
363
- isArray !== Array.isArray(previous) ||
364
- (key && target[key] !== previous[key]))
365
- ) {
314
+ if (property !== $ROOT && (!isWrappable(target) || !isWrappable(previous) || isArray !== Array.isArray(previous) || key && target[key] !== previous[key])) {
366
315
  setProperty(parent, property, target);
367
316
  return;
368
317
  }
369
318
  if (isArray) {
370
- if (
371
- target.length &&
372
- previous.length &&
373
- (!merge || (key && target[0] && target[0][key] != null))
374
- ) {
319
+ if (target.length && previous.length && (!merge || key && target[0] && target[0][key] != null)) {
375
320
  let i, j, start, end, newEnd, item, newIndicesNext, keyVal;
376
- for (
377
- start = 0, end = Math.min(previous.length, target.length);
378
- start < end &&
379
- (previous[start] === target[start] ||
380
- (key && previous[start] && target[start] && previous[start][key] === target[start][key]));
381
- start++
382
- ) {
321
+ 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++) {
383
322
  applyState(target[start], previous, start, merge, key);
384
323
  }
385
324
  const temp = new Array(target.length),
386
325
  newIndices = new Map();
387
- for (
388
- end = previous.length - 1, newEnd = target.length - 1;
389
- end >= start &&
390
- newEnd >= start &&
391
- (previous[end] === target[newEnd] ||
392
- (key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]));
393
- end--, newEnd--
394
- ) {
326
+ 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--) {
395
327
  temp[newEnd] = previous[end];
396
328
  }
397
329
  if (start > newEnd || start > end) {
@@ -445,19 +377,16 @@ function applyState(target, parent, property, merge, key) {
445
377
  }
446
378
  }
447
379
  function reconcile(value, options = {}) {
448
- const { merge, key = "id" } = options,
380
+ const {
381
+ merge,
382
+ key = "id"
383
+ } = options,
449
384
  v = unwrap(value);
450
385
  return state => {
451
386
  if (!isWrappable(state) || !isWrappable(v)) return v;
452
- const res = applyState(
453
- v,
454
- {
455
- [$ROOT]: state
456
- },
457
- $ROOT,
458
- merge,
459
- key
460
- );
387
+ const res = applyState(v, {
388
+ [$ROOT]: state
389
+ }, $ROOT, merge, key);
461
390
  return res === undefined ? state : res;
462
391
  };
463
392
  }
@@ -467,10 +396,7 @@ const setterTraps = {
467
396
  if (property === $RAW) return target;
468
397
  const value = target[property];
469
398
  let proxy;
470
- return isWrappable(value)
471
- ? producers.get(value) ||
472
- (producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy)
473
- : value;
399
+ return isWrappable(value) ? producers.get(value) || (producers.set(value, proxy = new Proxy(value, setterTraps)), proxy) : value;
474
400
  },
475
401
  set(target, property, value) {
476
402
  setProperty(target, property, unwrap(value));
@@ -486,7 +412,7 @@ function produce(fn) {
486
412
  if (isWrappable(state)) {
487
413
  let proxy;
488
414
  if (!(proxy = producers.get(state))) {
489
- producers.set(state, (proxy = new Proxy(state, setterTraps)));
415
+ producers.set(state, proxy = new Proxy(state, setterTraps));
490
416
  }
491
417
  fn(proxy);
492
418
  }
@@ -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
- readonly $NODE: typeof $NODE;
21
- readonly isWrappable: typeof isWrappable;
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
- key?: string | null;
3
- merge?: boolean;
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;
@@ -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;
@@ -1,37 +1,17 @@
1
1
  import type { SetStoreFunction, Store } 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 declare const $RAW: unique symbol;
16
4
  export declare function isWrappable(obj: any): boolean;
17
5
  export declare function unwrap<T>(item: T): T;
18
- export declare function setProperty(
19
- state: any,
20
- property: PropertyKey,
21
- value: any,
22
- force?: boolean
23
- ): void;
6
+ export declare function setProperty(state: any, property: PropertyKey, value: any, force?: boolean): void;
24
7
  export declare function updatePath(current: any, path: any[], traversed?: PropertyKey[]): void;
25
8
  export declare function createStore<T>(state: T | Store<T>): [Store<T>, SetStoreFunction<T>];
26
9
  export declare function createMutable<T>(state: T | Store<T>): T;
27
10
  export declare function modifyMutable<T>(state: T, modifier: (state: T) => T): void;
28
11
  type ReconcileOptions = {
29
- key?: string | null;
30
- merge?: boolean;
12
+ key?: string | null;
13
+ merge?: boolean;
31
14
  };
32
- export declare function reconcile<T extends U, U extends object>(
33
- value: T,
34
- options?: ReconcileOptions
35
- ): (state: U) => T;
15
+ export declare function reconcile<T extends U, U extends object>(value: T, options?: ReconcileOptions): (state: U) => T;
36
16
  export declare function produce<T>(fn: (state: T) => void): (state: T) => T;
37
17
  export declare const DEV: undefined;