@legendapp/state 1.9.0 → 2.0.0-next.1

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.
@@ -1,3 +1,8 @@
1
- import type { Observable, ObservablePrimitive } from './observableInterfaces';
2
- export declare function observable<T>(value?: T | Promise<T>): Observable<T>;
3
- export declare function observablePrimitive<T>(value?: T | Promise<T>): ObservablePrimitive<T>;
1
+ import type { Observable, ObservablePrimitive, PromiseInfo } from './observableInterfaces';
2
+ import { NodeValue } from './observableInterfaces';
3
+ export declare const __devExtractFunctionsAndComputedsNodes: Set<unknown> | undefined;
4
+ export declare function extractFunctionsAndComputeds(node: NodeValue, obj: Record<string, any>): false | undefined;
5
+ export declare function observable<T>(value?: Promise<T>): Observable<T & PromiseInfo>;
6
+ export declare function observable<T>(value?: T): Observable<T>;
7
+ export declare function observablePrimitive<T>(value?: Promise<T>): ObservablePrimitive<T & PromiseInfo>;
8
+ export declare function observablePrimitive<T>(value?: T): ObservablePrimitive<T>;
@@ -90,7 +90,7 @@ type PrimitiveKeys<T> = Pick<T, {
90
90
  type NonPrimitiveKeys<T> = Pick<T, {
91
91
  [K in keyof T]-?: T[K] extends Primitive ? never : K;
92
92
  }[keyof T]>;
93
- type Recurse<T, K extends keyof T, TRecurse> = T[K] extends ObservableReadable ? T[K] : T[K] extends Function | Promise<any> ? T[K] : T[K] extends ObservableProxy<infer t> ? ObservableProxy<t> : T[K] extends Map<any, any> | WeakMap<any, any> ? ObservableMap<T[K]> : T[K] extends Set<any> | WeakSet<any> ? T[K] & ObservablePrimitiveBaseFns<T[K]> : T[K] extends OpaqueObject<T[K]> ? T[K] & ObservablePrimitiveChildFns<T[K]> : T[K] extends Primitive ? ObservablePrimitiveChild<T[K]> : T[K] extends Array<any> ? ObservableObjectFns<T[K]> & ObservableArrayOverride<T[K][number]> : T extends object ? TRecurse : T[K];
93
+ type Recurse<T, K extends keyof T, TRecurse> = T[K] extends ObservableReadable ? T[K] : T[K] extends Promise<infer t> ? Observable<t & PromiseInfo> : T[K] extends Function ? T[K] : T[K] extends ObservableProxyTwoWay<infer t, infer t2> ? ObservableProxyTwoWay<t, t2> : T[K] extends ObservableProxy<infer t> ? ObservableProxy<t> : T[K] extends ObservableProxyLink<infer t> ? ObservableProxyLink<t> : T[K] extends Map<any, any> | WeakMap<any, any> ? ObservableMap<T[K]> : T[K] extends Set<any> | WeakSet<any> ? T[K] & ObservablePrimitiveBaseFns<T[K]> : T[K] extends OpaqueObject<T[K]> ? T[K] & ObservablePrimitiveChildFns<T[K]> : T[K] extends Primitive ? ObservablePrimitiveChild<T[K]> : T[K] extends Array<any> ? ObservableObjectFns<T[K]> & ObservableArrayOverride<T[K][number]> : T extends object ? TRecurse : T[K];
94
94
  type ObservableFnsRecursiveUnsafe<T> = {
95
95
  [K in keyof T]-?: Recurse<T, K, ObservableObject<NonNullable<T[K]>>>;
96
96
  };
@@ -339,8 +339,22 @@ export interface ObservablePersistenceConfig {
339
339
  dateModifiedKey?: string;
340
340
  }
341
341
  export type ObservableProxy<T extends Record<string, any>> = {
342
+ [K in keyof T]: ObservableComputed<T[K]>;
343
+ } & ObservableBaseFns<T> & {
344
+ [symbolGetNode]: NodeValue;
345
+ };
346
+ export type ObservableProxyLink<T extends Record<string, any>> = {
342
347
  [K in keyof T]: Observable<T[K]>;
343
- } & {
348
+ } & ObservableBaseFns<T> & {
344
349
  [symbolGetNode]: NodeValue;
345
350
  };
351
+ export type ObservableProxyTwoWay<T extends Record<string, any>, T2> = {
352
+ [K in keyof T]: ObservableComputedTwoWay<T[K], T2>;
353
+ } & ObservableBaseFns<T> & {
354
+ [symbolGetNode]: NodeValue;
355
+ };
356
+ export type PromiseInfo = {
357
+ error?: any;
358
+ status?: 'pending' | 'rejected';
359
+ };
346
360
  export {};
package/src/proxy.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- import { ObservableProxy, Observable as ObservableWriteable } from './observableInterfaces';
2
- export declare function proxy<T extends Record<string, any>>(get: <K extends keyof T>(key: K) => ObservableWriteable<T[K]>): ObservableProxy<T>;
3
- export declare function proxy<T>(get: (key: string) => ObservableWriteable<T>): ObservableProxy<Record<string, T>>;
1
+ import { ObservableProxy, ObservableProxyLink, ObservableProxyTwoWay, Observable as ObservableWriteable } from './observableInterfaces';
2
+ export declare function proxy<T, T2 = T>(get: (key: string) => T, set: (key: string, value: T2) => void): ObservableProxyTwoWay<Record<string, T>, T2>;
3
+ export declare function proxy<T extends Record<string, any>>(get: <K extends keyof T>(key: K) => ObservableWriteable<T[K]>): ObservableProxyLink<T>;
4
+ export declare function proxy<T>(get: (key: string) => ObservableWriteable<T>): ObservableProxyLink<Record<string, T>>;
5
+ export declare function proxy<T>(get: (key: string) => T): ObservableProxy<Record<string, T>>;
@@ -17,5 +17,5 @@ export type FCReactive<P, P2> = P & FC<ShapeWithNew$<P2> & {
17
17
  ref?: LegacyRef<P> | undefined;
18
18
  }>;
19
19
  export interface UseSelectorOptions {
20
- suspend?: boolean;
20
+ suspense?: boolean;
21
21
  }
package/src/tracking.d.ts CHANGED
@@ -6,7 +6,6 @@ interface TrackingState {
6
6
  }
7
7
  export declare const tracking: {
8
8
  current: TrackingState | undefined;
9
- inRemoteChange: boolean;
10
9
  inRender: boolean | undefined;
11
10
  };
12
11
  export declare function beginTracking(inRender?: boolean): void;