@legendapp/state 2.0.0 → 2.0.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.
- package/CHANGELOG.md +32 -0
- package/config/enableDirectAccess.js +6 -3
- package/config/enableDirectAccess.js.map +1 -1
- package/config/enableDirectAccess.mjs +7 -4
- package/config/enableDirectAccess.mjs.map +1 -1
- package/config/enableReactDirectRender.d.ts +2 -0
- package/config/enableReactDirectRender.js +78 -0
- package/config/enableReactDirectRender.js.map +1 -0
- package/config/enableReactDirectRender.mjs +75 -0
- package/config/enableReactDirectRender.mjs.map +1 -0
- package/config/enableReactTracking.d.ts +15 -0
- package/config/enableReactTracking.js +47 -0
- package/config/enableReactTracking.js.map +1 -0
- package/config/enableReactTracking.mjs +45 -0
- package/config/enableReactTracking.mjs.map +1 -0
- package/history.js +1 -1
- package/history.js.map +1 -1
- package/history.mjs +1 -1
- package/history.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +66 -33
- package/index.js.map +1 -1
- package/index.mjs +65 -34
- package/index.mjs.map +1 -1
- package/package.json +11 -1
- package/persist-plugins/firebase.js +8 -8
- package/persist-plugins/firebase.js.map +1 -1
- package/persist-plugins/firebase.mjs +8 -8
- package/persist-plugins/firebase.mjs.map +1 -1
- package/persist-plugins/query.d.ts +1 -3
- package/persist-plugins/query.js +7 -17
- package/persist-plugins/query.js.map +1 -1
- package/persist-plugins/query.mjs +7 -17
- package/persist-plugins/query.mjs.map +1 -1
- package/persist.js +21 -19
- package/persist.js.map +1 -1
- package/persist.mjs +22 -20
- package/persist.mjs.map +1 -1
- package/react-hooks/useObservableNextRouter.js +6 -6
- package/react-hooks/useObservableNextRouter.js.map +1 -1
- package/react-hooks/useObservableNextRouter.mjs +6 -6
- package/react-hooks/useObservableNextRouter.mjs.map +1 -1
- package/react-hooks/usePersistedObservable.d.ts +2 -2
- package/react.js +57 -22
- package/react.js.map +1 -1
- package/react.mjs +58 -23
- package/react.mjs.map +1 -1
- package/src/ObservableObject.d.ts +3 -3
- package/src/config/enableReactDirectRender.d.ts +2 -0
- package/src/config/enableReactTracking.d.ts +15 -0
- package/src/createObservable.d.ts +2 -0
- package/src/globals.d.ts +2 -0
- package/src/helpers.d.ts +3 -3
- package/src/observable.d.ts +3 -3
- package/src/observableInterfaces.d.ts +27 -18
- package/src/observe.d.ts +0 -1
- package/src/persist/observablePersistRemoteFunctionsAdapter.d.ts +1 -1
- package/src/persist/persistObservable.d.ts +3 -3
- package/src/persist-plugins/query.d.ts +1 -3
- package/src/react/For.d.ts +7 -5
- package/src/react/useMount.d.ts +1 -2
- package/src/react-hooks/usePersistedObservable.d.ts +2 -2
|
@@ -42,9 +42,12 @@ export interface MapGet<T extends Map<any, any> | WeakMap<any, any>> {
|
|
|
42
42
|
get(): T;
|
|
43
43
|
size: ObservableChild<number>;
|
|
44
44
|
}
|
|
45
|
+
export interface GetOptions {
|
|
46
|
+
shallow: boolean;
|
|
47
|
+
}
|
|
45
48
|
export interface ObservableBaseFns<T> {
|
|
46
49
|
peek(): T;
|
|
47
|
-
get(
|
|
50
|
+
get(options?: TrackingType | GetOptions): T;
|
|
48
51
|
onChange(cb: ListenerFn<T>, options?: {
|
|
49
52
|
trackingType?: TrackingType;
|
|
50
53
|
initial?: boolean;
|
|
@@ -93,7 +96,7 @@ type PrimitiveKeys<T> = Pick<T, {
|
|
|
93
96
|
type NonPrimitiveKeys<T> = Pick<T, {
|
|
94
97
|
[K in keyof T]-?: T[K] extends Primitive ? never : K;
|
|
95
98
|
}[keyof T]>;
|
|
96
|
-
type Recurse<T, K extends keyof T, TRecurse> = T[K] extends ObservableReadable ? T[K] : T[K] extends Promise<infer t> ? Observable<t &
|
|
99
|
+
type Recurse<T, K extends keyof T, TRecurse> = T[K] extends ObservableReadable ? T[K] : T[K] extends Promise<infer t> ? Observable<t & WithState> : 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> ? ObservableSet<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];
|
|
97
100
|
type ObservableFnsRecursiveUnsafe<T> = {
|
|
98
101
|
[K in keyof T]-?: Recurse<T, K, ObservableObject<NonNullable<T[K]>>>;
|
|
99
102
|
};
|
|
@@ -190,11 +193,11 @@ export interface ObservablePersistenceConfig {
|
|
|
190
193
|
localOptions?: ObservablePersistenceConfigLocalGlobalOptions;
|
|
191
194
|
remoteOptions?: ObservablePersistenceConfigRemoteGlobalOptions;
|
|
192
195
|
}
|
|
193
|
-
export interface PersistOptions<T = any
|
|
196
|
+
export interface PersistOptions<T = any> {
|
|
194
197
|
local?: string | PersistOptionsLocal<T>;
|
|
195
198
|
remote?: PersistOptionsRemote<T>;
|
|
196
199
|
pluginLocal?: ClassConstructor<ObservablePersistLocal>;
|
|
197
|
-
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions<T
|
|
200
|
+
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions<T>;
|
|
198
201
|
}
|
|
199
202
|
export interface PersistMetadata {
|
|
200
203
|
id?: '__legend_metadata';
|
|
@@ -218,10 +221,10 @@ export interface ObservablePersistRemoteSetParams<T> {
|
|
|
218
221
|
changes: Change[];
|
|
219
222
|
value: T;
|
|
220
223
|
}
|
|
221
|
-
export interface ObservablePersistRemoteGetParams<T
|
|
222
|
-
state: Observable<ObservablePersistState
|
|
224
|
+
export interface ObservablePersistRemoteGetParams<T> {
|
|
225
|
+
state: Observable<ObservablePersistState>;
|
|
223
226
|
obs: ObservableReadable<T>;
|
|
224
|
-
options: PersistOptions<T
|
|
227
|
+
options: PersistOptions<T>;
|
|
225
228
|
dateModified?: number;
|
|
226
229
|
onGet: () => void;
|
|
227
230
|
onChange: (params: {
|
|
@@ -232,27 +235,32 @@ export interface ObservablePersistRemoteGetParams<T, TState = {}> {
|
|
|
232
235
|
dateModified?: number | undefined;
|
|
233
236
|
}) => void | Promise<void>;
|
|
234
237
|
}
|
|
235
|
-
export interface ObservablePersistRemoteClass
|
|
236
|
-
get<T>(params: ObservablePersistRemoteGetParams<T
|
|
238
|
+
export interface ObservablePersistRemoteClass {
|
|
239
|
+
get<T>(params: ObservablePersistRemoteGetParams<T>): void;
|
|
237
240
|
set?<T>(params: ObservablePersistRemoteSetParams<T>): Promise<void | {
|
|
238
241
|
changes?: object;
|
|
239
242
|
dateModified?: number;
|
|
240
243
|
pathStrs?: string[];
|
|
241
244
|
}>;
|
|
242
245
|
}
|
|
243
|
-
export interface ObservablePersistRemoteFunctions<T = any
|
|
244
|
-
get(params: ObservablePersistRemoteGetParams<T
|
|
246
|
+
export interface ObservablePersistRemoteFunctions<T = any> {
|
|
247
|
+
get(params: ObservablePersistRemoteGetParams<T>): T | Promise<T>;
|
|
245
248
|
set?(params: ObservablePersistRemoteSetParams<T>): Promise<void | {
|
|
246
249
|
changes?: object | undefined;
|
|
247
250
|
dateModified?: number;
|
|
248
251
|
}>;
|
|
249
252
|
}
|
|
250
|
-
export interface
|
|
253
|
+
export interface ObservableState {
|
|
254
|
+
isLoaded: boolean;
|
|
255
|
+
error?: Error;
|
|
256
|
+
}
|
|
257
|
+
export interface WithState {
|
|
258
|
+
state?: ObservableState;
|
|
259
|
+
}
|
|
260
|
+
export interface ObservablePersistState extends ObservableState {
|
|
251
261
|
isLoadedLocal: boolean;
|
|
252
|
-
isLoadedRemote: boolean;
|
|
253
262
|
isEnabledLocal: boolean;
|
|
254
263
|
isEnabledRemote: boolean;
|
|
255
|
-
remoteError?: Error;
|
|
256
264
|
dateModified?: number;
|
|
257
265
|
clearLocal: () => Promise<void>;
|
|
258
266
|
sync: () => Promise<void>;
|
|
@@ -261,6 +269,9 @@ export interface ObservablePersistState {
|
|
|
261
269
|
v?: any;
|
|
262
270
|
}> | undefined;
|
|
263
271
|
}
|
|
272
|
+
export interface WithPersistState {
|
|
273
|
+
state?: ObservablePersistState;
|
|
274
|
+
}
|
|
264
275
|
export type RecordValue<T> = T extends Record<string, infer t> ? t : never;
|
|
265
276
|
export type ArrayValue<T> = T extends Array<infer t> ? t : never;
|
|
266
277
|
export type ObservableValue<T> = T extends Observable<infer t> ? t : never;
|
|
@@ -326,6 +337,7 @@ export interface NodeValueListener {
|
|
|
326
337
|
interface BaseNodeValue {
|
|
327
338
|
children?: Map<string, ChildNodeValue>;
|
|
328
339
|
proxy?: object;
|
|
340
|
+
isActivatedPrimitive?: boolean;
|
|
329
341
|
root: ObservableRoot;
|
|
330
342
|
listeners?: Set<NodeValueListener>;
|
|
331
343
|
listenersImmediate?: Set<NodeValueListener>;
|
|
@@ -339,6 +351,7 @@ interface BaseNodeValue {
|
|
|
339
351
|
parentOther?: NodeValue;
|
|
340
352
|
functions?: Map<string, Function | ObservableComputed<any>>;
|
|
341
353
|
lazy?: boolean;
|
|
354
|
+
state?: Observable<ObservableState>;
|
|
342
355
|
}
|
|
343
356
|
export interface RootNodeValue extends BaseNodeValue {
|
|
344
357
|
parent?: undefined;
|
|
@@ -378,8 +391,4 @@ export type ObservableProxyTwoWay<T extends Record<string, any>, T2> = {
|
|
|
378
391
|
} & ObservableBaseFns<T> & {
|
|
379
392
|
[symbolGetNode]: NodeValue;
|
|
380
393
|
};
|
|
381
|
-
export type PromiseInfo = {
|
|
382
|
-
error?: any;
|
|
383
|
-
status?: 'pending' | 'rejected';
|
|
384
|
-
};
|
|
385
394
|
export {};
|
package/src/observe.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ObserveEvent, ObserveEventCallback, Selector } from './observableInterfaces';
|
|
2
2
|
export interface ObserveOptions {
|
|
3
3
|
immediate?: boolean;
|
|
4
|
-
retainObservable?: boolean;
|
|
5
4
|
}
|
|
6
5
|
export declare function observe<T>(run: (e: ObserveEvent<T>) => T | void, options?: ObserveOptions): () => void;
|
|
7
6
|
export declare function observe<T>(selector: Selector<T> | ((e: ObserveEvent<T>) => any), reaction?: (e: ObserveEventCallback<T>) => any, options?: ObserveOptions): () => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ObservablePersistRemoteClass, ObservablePersistRemoteFunctions } from '@legendapp/state';
|
|
2
|
-
export declare function observablePersistRemoteFunctionsAdapter<T = {}
|
|
2
|
+
export declare function observablePersistRemoteFunctionsAdapter<T = {}>({ get, set, }: ObservablePersistRemoteFunctions<T>): ObservablePersistRemoteClass;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClassConstructor, FieldTransforms, Observable, ObservableObject, ObservablePersistLocal, ObservablePersistRemoteClass,
|
|
1
|
+
import type { ClassConstructor, FieldTransforms, Observable, ObservableObject, ObservablePersistLocal, ObservablePersistRemoteClass, ObservableWriteable, PersistOptions, PersistTransform, TypeAtPath, WithPersistState } from '@legendapp/state';
|
|
2
2
|
export declare const mapPersistences: WeakMap<ClassConstructor<ObservablePersistLocal | ObservablePersistRemoteClass>, {
|
|
3
3
|
persist: ObservablePersistLocal | ObservablePersistRemoteClass;
|
|
4
4
|
initialized?: Observable<boolean>;
|
|
@@ -21,5 +21,5 @@ export declare function transformLoadData(value: any, { transform, fieldTransfor
|
|
|
21
21
|
transform?: PersistTransform;
|
|
22
22
|
}, doUserTransform: boolean): Promise<any> | any;
|
|
23
23
|
export declare function onChangeRemote(cb: () => void): void;
|
|
24
|
-
export declare function persistObservable<T
|
|
25
|
-
export declare function persistObservable<T
|
|
24
|
+
export declare function persistObservable<T>(observable: ObservableWriteable<T>, persistOptions: PersistOptions<T>): Observable<WithPersistState & T>;
|
|
25
|
+
export declare function persistObservable<T>(initial: T | (() => T) | (() => Promise<T>), persistOptions: PersistOptions<T>): Observable<WithPersistState & T>;
|
|
@@ -14,7 +14,5 @@ type Params<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>
|
|
|
14
14
|
queryClient?: QueryClient;
|
|
15
15
|
useContext?: true;
|
|
16
16
|
});
|
|
17
|
-
export declare function persistPluginQuery<TObs, TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>({ query: options, mutation: mutationOptions, type, queryClient, useContext, }: Params<TQueryFnData, TError, TData, TQueryData, TQueryKey>): ObservablePersistRemoteFunctions<TObs
|
|
18
|
-
query: UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
19
|
-
}>;
|
|
17
|
+
export declare function persistPluginQuery<TObs, TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>({ query: options, mutation: mutationOptions, type, queryClient, useContext, }: Params<TQueryFnData, TError, TData, TQueryData, TQueryKey>): ObservablePersistRemoteFunctions<TObs>;
|
|
20
18
|
export {};
|
package/src/react/For.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Observable, ObservableReadable } from '@legendapp/state';
|
|
2
2
|
import { FC, ReactElement } from 'react';
|
|
3
|
+
type ForItemProps<T, TProps = {}> = {
|
|
4
|
+
item$: Observable<T>;
|
|
5
|
+
id?: string;
|
|
6
|
+
} & TProps;
|
|
3
7
|
export declare function For<T, TProps>({ each, optimized: isOptimized, item, itemProps, sortValues, children, }: {
|
|
4
8
|
each?: ObservableReadable<T[] | Record<any, T> | Map<any, T>>;
|
|
5
9
|
optimized?: boolean;
|
|
6
|
-
item?: FC<
|
|
7
|
-
item: Observable<T>;
|
|
8
|
-
id?: string;
|
|
9
|
-
} & TProps>;
|
|
10
|
+
item?: FC<ForItemProps<T, TProps>>;
|
|
10
11
|
itemProps?: TProps;
|
|
11
12
|
sortValues?: (A: T, B: T, AKey: string, BKey: string) => number;
|
|
12
|
-
children?: (value: Observable<T
|
|
13
|
+
children?: (value: Observable<T>, id: string | undefined) => ReactElement;
|
|
13
14
|
}): ReactElement | null;
|
|
15
|
+
export {};
|
package/src/react/useMount.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function useMount(fn: EffectCallback): void;
|
|
1
|
+
export declare function useMount(fn: () => (void | (() => void)) | Promise<void>): void;
|
|
3
2
|
export declare const useMountOnce: (effect: () => void | (() => void)) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Observable,
|
|
1
|
+
import { Observable, PersistOptions, WithPersistState } from '@legendapp/state';
|
|
2
2
|
/**
|
|
3
3
|
* A React hook that creates a new observable and can optionally listen or persist its state.
|
|
4
4
|
*
|
|
@@ -7,4 +7,4 @@ import { Observable, ObservableObject, ObservablePersistState, PersistOptions }
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://www.legendapp.com/dev/state/react/#useObservable
|
|
9
9
|
*/
|
|
10
|
-
export declare function usePersistedObservable<T>(initialValue: T | (() => T) | (() => Promise<T>), options: PersistOptions<T>):
|
|
10
|
+
export declare function usePersistedObservable<T>(initialValue: T | (() => T) | (() => Promise<T>), options: PersistOptions<T>): Observable<WithPersistState & T>;
|