solid-js 1.3.12 → 1.3.13

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 CHANGED
@@ -645,16 +645,16 @@ function readSignal() {
645
645
  return this.value;
646
646
  }
647
647
  function writeSignal(node, value, isComp) {
648
- if (node.comparator) {
649
- if (Transition && Transition.running && Transition.sources.has(node)) {
650
- if (node.comparator(node.tValue, value)) return value;
651
- } else if (node.comparator(node.value, value)) return value;
652
- }
653
648
  if (Pending) {
654
649
  if (node.pending === NOTPENDING) Pending.push(node);
655
650
  node.pending = value;
656
651
  return value;
657
652
  }
653
+ if (node.comparator) {
654
+ if (Transition && Transition.running && Transition.sources.has(node)) {
655
+ if (node.comparator(node.tValue, value)) return value;
656
+ } else if (node.comparator(node.value, value)) return value;
657
+ }
658
658
  let TransitionRunning = false;
659
659
  if (Transition) {
660
660
  TransitionRunning = Transition.running;
package/dist/dev.js CHANGED
@@ -641,16 +641,16 @@ function readSignal() {
641
641
  return this.value;
642
642
  }
643
643
  function writeSignal(node, value, isComp) {
644
- if (node.comparator) {
645
- if (Transition && Transition.running && Transition.sources.has(node)) {
646
- if (node.comparator(node.tValue, value)) return value;
647
- } else if (node.comparator(node.value, value)) return value;
648
- }
649
644
  if (Pending) {
650
645
  if (node.pending === NOTPENDING) Pending.push(node);
651
646
  node.pending = value;
652
647
  return value;
653
648
  }
649
+ if (node.comparator) {
650
+ if (Transition && Transition.running && Transition.sources.has(node)) {
651
+ if (node.comparator(node.tValue, value)) return value;
652
+ } else if (node.comparator(node.value, value)) return value;
653
+ }
654
654
  let TransitionRunning = false;
655
655
  if (Transition) {
656
656
  TransitionRunning = Transition.running;
package/dist/solid.cjs CHANGED
@@ -589,16 +589,16 @@ function readSignal() {
589
589
  return this.value;
590
590
  }
591
591
  function writeSignal(node, value, isComp) {
592
- if (node.comparator) {
593
- if (Transition && Transition.running && Transition.sources.has(node)) {
594
- if (node.comparator(node.tValue, value)) return value;
595
- } else if (node.comparator(node.value, value)) return value;
596
- }
597
592
  if (Pending) {
598
593
  if (node.pending === NOTPENDING) Pending.push(node);
599
594
  node.pending = value;
600
595
  return value;
601
596
  }
597
+ if (node.comparator) {
598
+ if (Transition && Transition.running && Transition.sources.has(node)) {
599
+ if (node.comparator(node.tValue, value)) return value;
600
+ } else if (node.comparator(node.value, value)) return value;
601
+ }
602
602
  let TransitionRunning = false;
603
603
  if (Transition) {
604
604
  TransitionRunning = Transition.running;
package/dist/solid.js CHANGED
@@ -585,16 +585,16 @@ function readSignal() {
585
585
  return this.value;
586
586
  }
587
587
  function writeSignal(node, value, isComp) {
588
- if (node.comparator) {
589
- if (Transition && Transition.running && Transition.sources.has(node)) {
590
- if (node.comparator(node.tValue, value)) return value;
591
- } else if (node.comparator(node.value, value)) return value;
592
- }
593
588
  if (Pending) {
594
589
  if (node.pending === NOTPENDING) Pending.push(node);
595
590
  node.pending = value;
596
591
  return value;
597
592
  }
593
+ if (node.comparator) {
594
+ if (Transition && Transition.running && Transition.sources.has(node)) {
595
+ if (node.comparator(node.tValue, value)) return value;
596
+ } else if (node.comparator(node.value, value)) return value;
597
+ }
598
598
  let TransitionRunning = false;
599
599
  if (Transition) {
600
600
  TransitionRunning = Transition.running;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-js",
3
3
  "description": "A declarative JavaScript library for building user interfaces.",
4
- "version": "1.3.12",
4
+ "version": "1.3.13",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "homepage": "https://solidjs.com",
@@ -144,5 +144,5 @@
144
144
  "compiler",
145
145
  "performance"
146
146
  ],
147
- "gitHead": "e7671349791bd239fbe20c54c266ae085a7f09f2"
147
+ "gitHead": "dfacd34d443f9cdf1958445756e7317bd8e3632c"
148
148
  }
@@ -1,4 +1,4 @@
1
1
  export { createStore, unwrap, $RAW } from "./store";
2
- export type { Store, SetStoreFunction, NotWrappable, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, Part, DeepReadonly, DeepMutable } from "./store";
2
+ export type { Store, SetStoreFunction, NotWrappable, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, Part, DeepReadonly, DeepMutable } from "./store";
3
3
  export * from "./mutable";
4
4
  export * from "./modifiers";
@@ -1,7 +1,7 @@
1
- import { DeepMutable, NotWrappable } from "./store";
1
+ import { DeepMutable } from "./store";
2
2
  export declare type ReconcileOptions = {
3
3
  key?: string | null;
4
4
  merge?: boolean;
5
5
  };
6
6
  export declare function reconcile<T extends U, U>(value: T, options?: ReconcileOptions): (state: U) => T;
7
- export declare function produce<T>(fn: (state: DeepMutable<Exclude<T, NotWrappable>>) => void): (state: T) => T;
7
+ export declare function produce<T>(fn: (state: DeepMutable<T>) => void): (state: T) => T;
@@ -1,7 +1,11 @@
1
1
  import { Accessor } from "../..";
2
2
  export declare const $RAW: unique symbol, $NODE: unique symbol, $NAME: unique symbol;
3
3
  export declare type StoreNode = Record<PropertyKey, any>;
4
- export declare type NotWrappable = string | number | bigint | symbol | boolean | Function | null | undefined;
4
+ export declare namespace SolidStore {
5
+ interface Unwrappable {
6
+ }
7
+ }
8
+ export declare type NotWrappable = string | number | bigint | symbol | boolean | Function | null | undefined | SolidStore.Unwrappable[keyof SolidStore.Unwrappable];
5
9
  export declare type Store<T> = DeepReadonly<T>;
6
10
  export declare function isWrappable(obj: any): any;
7
11
  export declare function unwrap<T extends StoreNode>(item: any, set?: Set<unknown>): T;
@@ -13,11 +17,11 @@ export declare function createDataNode(): Accessor<void> & {
13
17
  };
14
18
  export declare function setProperty(state: StoreNode, property: PropertyKey, value: any): void;
15
19
  export declare function updatePath(current: StoreNode, path: any[], traversed?: PropertyKey[]): void;
16
- export declare type DeepReadonly<T> = 0 extends 1 & T ? T : {
17
- readonly [K in keyof T]: T[K] extends NotWrappable ? T[K] : DeepReadonly<T[K]>;
20
+ export declare type DeepReadonly<T> = 0 extends 1 & T ? T : T extends NotWrappable ? T : {
21
+ readonly [K in keyof T]: T[K];
18
22
  };
19
- export declare type DeepMutable<T> = 0 extends 1 & T ? T : {
20
- -readonly [K in keyof T]: T[K] extends NotWrappable ? T[K] : DeepMutable<T[K]>;
23
+ export declare type DeepMutable<T> = 0 extends 1 & T ? T : T extends NotWrappable ? T : {
24
+ -readonly [K in keyof T]: T[K];
21
25
  };
22
26
  export declare type StorePathRange = {
23
27
  from?: number;
@@ -25,10 +29,10 @@ export declare type StorePathRange = {
25
29
  by?: number;
26
30
  };
27
31
  export declare type ArrayFilterFn<T> = (item: DeepReadonly<T>, index: number) => boolean;
28
- export declare type StoreSetter<T, U extends PropertyKey[] = []> = ((prevState: DeepReadonly<T>, traversed: U) => DeepReadonly<T> | Partial<DeepReadonly<T>> | void) | DeepReadonly<T> | Partial<DeepReadonly<T>>;
29
- export declare type Part<T, K extends KeyOf<T> = KeyOf<T>> = [K] extends [never] ? never : K | readonly K[] | (number extends K ? ArrayFilterFn<T[number]> | StorePathRange : never);
32
+ export declare type StoreSetter<T, U extends PropertyKey[] = []> = ((prevState: DeepReadonly<T>, traversed: U) => T | Partial<T> | DeepReadonly<T> | Partial<DeepReadonly<T>> | void) | T | Partial<T> | DeepReadonly<T> | Partial<DeepReadonly<T>>;
33
+ export declare type Part<T, K extends KeyOf<T> = KeyOf<T>> = [K] extends [never] ? never : K | readonly K[] | ([T] extends [readonly unknown[]] ? ArrayFilterFn<T[number]> | StorePathRange : never);
30
34
  declare type W<T> = Exclude<T, NotWrappable>;
31
- declare type KeyOf<T> = number extends keyof T ? 0 extends 1 & T ? keyof T : [T] extends [never] ? never : number : keyof T;
35
+ declare type KeyOf<T> = number extends keyof T ? 0 extends 1 & T ? keyof T : [T] extends [readonly unknown[]] ? number : [T] extends [never] ? never : keyof T : keyof T;
32
36
  declare type Rest<T, U extends PropertyKey[]> = [StoreSetter<T, U>] | (0 extends 1 & T ? [...Part<any>[], StoreSetter<any, PropertyKey[]>] : DistributeRest<W<T>, KeyOf<W<T>>, U>);
33
37
  declare type DistributeRest<T, K, U extends PropertyKey[]> = [T] extends [never] ? never : K extends KeyOf<T> ? [Part<T, K>, ...Rest<T[K], [K, ...U]>] : never;
34
38
  export interface SetStoreFunction<T> {
@@ -70,7 +70,7 @@ export declare type RootFunction<T> = (dispose: () => void) => T;
70
70
  */
71
71
  export declare function createRoot<T>(fn: RootFunction<T>, detachedOwner?: Owner): T;
72
72
  export declare type Accessor<T> = () => T;
73
- export declare type Setter<T> = undefined extends T ? <U extends T>(value?: (U extends Function ? never : U) | ((prev?: T) => U)) => U : <U extends T>(value: (U extends Function ? never : U) | ((prev: T) => U)) => U;
73
+ export declare type Setter<T> = (undefined extends T ? (value?: undefined) => undefined : {}) & (<U extends T>(value: Exclude<U, Function> | ((prev: T) => U)) => U);
74
74
  export declare type Signal<T> = [get: Accessor<T>, set: Setter<T>];
75
75
  export interface SignalOptions<T> extends MemoOptions<T> {
76
76
  internal?: boolean;
@@ -604,7 +604,19 @@ function injectScripts(html, scripts, nonce) {
604
604
  return html + tag;
605
605
  }
606
606
  function serializeError(error) {
607
- return error.message ? `new Error(${devalue(error.message)})` : devalue(error);
607
+ if (error.message) {
608
+ const fields = {};
609
+ const keys = Object.getOwnPropertyNames(error);
610
+ for (let i = 0; i < keys.length; i++) {
611
+ const key = keys[i];
612
+ const value = error[key];
613
+ if (!value || key !== "message" && typeof value !== "function") {
614
+ fields[key] = value;
615
+ }
616
+ }
617
+ return `Object.assign(new Error(${devalue(error.message)}), ${devalue(fields)})`;
618
+ }
619
+ return devalue(error);
608
620
  }
609
621
  function waitForFragments(registry, key) {
610
622
  for (const k of [...registry.keys()].reverse()) {
@@ -601,7 +601,19 @@ function injectScripts(html, scripts, nonce) {
601
601
  return html + tag;
602
602
  }
603
603
  function serializeError(error) {
604
- return error.message ? `new Error(${devalue(error.message)})` : devalue(error);
604
+ if (error.message) {
605
+ const fields = {};
606
+ const keys = Object.getOwnPropertyNames(error);
607
+ for (let i = 0; i < keys.length; i++) {
608
+ const key = keys[i];
609
+ const value = error[key];
610
+ if (!value || key !== "message" && typeof value !== "function") {
611
+ fields[key] = value;
612
+ }
613
+ }
614
+ return `Object.assign(new Error(${devalue(error.message)}), ${devalue(fields)})`;
615
+ }
616
+ return devalue(error);
605
617
  }
606
618
  function waitForFragments(registry, key) {
607
619
  for (const k of [...registry.keys()].reverse()) {