@legendapp/state 3.0.0-alpha.1 → 3.0.0-alpha.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.
- package/.DS_Store +0 -0
- package/CHANGELOG.md +1 -831
- package/LICENSE +1 -21
- package/README.md +1 -141
- package/as/arrayAsRecord.d.mts +5 -0
- package/as/arrayAsRecord.d.ts +5 -0
- package/as/arrayAsRecord.js +28 -0
- package/as/arrayAsRecord.mjs +26 -0
- package/as/arrayAsSet.d.mts +5 -0
- package/as/arrayAsSet.d.ts +5 -0
- package/as/arrayAsSet.js +13 -0
- package/as/arrayAsSet.mjs +11 -0
- package/as/arrayAsString.d.mts +5 -0
- package/as/arrayAsString.d.ts +5 -0
- package/as/arrayAsString.js +13 -0
- package/as/arrayAsString.mjs +11 -0
- package/as/numberAsString.d.mts +5 -0
- package/as/numberAsString.d.ts +5 -0
- package/as/numberAsString.js +13 -0
- package/as/numberAsString.mjs +11 -0
- package/as/recordAsArray.d.mts +5 -0
- package/as/recordAsArray.d.ts +5 -0
- package/as/recordAsArray.js +25 -0
- package/as/recordAsArray.mjs +23 -0
- package/as/recordAsString.d.mts +5 -0
- package/as/recordAsString.d.ts +5 -0
- package/as/recordAsString.js +13 -0
- package/as/recordAsString.mjs +11 -0
- package/as/setAsArray.d.mts +5 -0
- package/as/setAsArray.d.ts +5 -0
- package/as/setAsArray.js +13 -0
- package/as/setAsArray.mjs +11 -0
- package/as/setAsString.d.mts +5 -0
- package/as/setAsString.d.ts +5 -0
- package/as/setAsString.js +13 -0
- package/as/setAsString.mjs +11 -0
- package/as/stringAsArray.d.mts +5 -0
- package/as/stringAsArray.d.ts +5 -0
- package/as/stringAsArray.js +13 -0
- package/as/stringAsArray.mjs +11 -0
- package/as/stringAsNumber.d.mts +5 -0
- package/as/stringAsNumber.d.ts +5 -0
- package/as/stringAsNumber.js +16 -0
- package/as/stringAsNumber.mjs +14 -0
- package/as/stringAsRecord.d.mts +5 -0
- package/as/stringAsRecord.d.ts +5 -0
- package/as/stringAsRecord.js +15 -0
- package/as/stringAsRecord.mjs +13 -0
- package/as/stringAsSet.d.mts +5 -0
- package/as/stringAsSet.d.ts +5 -0
- package/as/stringAsSet.js +13 -0
- package/as/stringAsSet.mjs +11 -0
- package/babel.d.mts +21 -0
- package/babel.d.ts +21 -2
- package/babel.js +57 -53
- package/babel.mjs +65 -0
- package/config/enable$GetSet.js +13 -14
- package/config/enable$GetSet.mjs +13 -14
- package/config/enableReactComponents.d.mts +9 -0
- package/config/enableReactComponents.d.ts +4 -2
- package/config/enableReactComponents.js +13 -10
- package/config/enableReactComponents.mjs +13 -10
- package/config/enableReactNativeComponents.d.mts +22 -0
- package/config/enableReactNativeComponents.d.ts +6 -4
- package/config/enableReactNativeComponents.js +43 -47
- package/config/enableReactNativeComponents.mjs +43 -47
- package/config/enableReactTracking.d.mts +7 -0
- package/config/enableReactTracking.d.ts +3 -2
- package/config/enableReactTracking.js +33 -38
- package/config/enableReactTracking.mjs +33 -38
- package/config/enableReactUse.d.mts +10 -0
- package/config/enableReactUse.d.ts +4 -1
- package/config/enableReactUse.js +15 -14
- package/config/enableReactUse.mjs +15 -14
- package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
- package/config/enable_GetSet.d.ts +10 -0
- package/config/enable_PeekAssign.d.mts +10 -0
- package/config/enable_PeekAssign.d.ts +4 -2
- package/config/enable_PeekAssign.js +13 -14
- package/config/enable_PeekAssign.mjs +13 -14
- package/helpers/pageHash.d.mts +9 -0
- package/helpers/pageHash.d.ts +2 -0
- package/helpers/pageHash.js +25 -30
- package/helpers/pageHash.mjs +25 -30
- package/helpers/pageHashParams.d.mts +9 -0
- package/helpers/pageHashParams.d.ts +2 -0
- package/helpers/pageHashParams.js +34 -37
- package/helpers/pageHashParams.mjs +34 -37
- package/helpers/time.d.mts +6 -0
- package/helpers/time.d.ts +6 -3
- package/helpers/time.js +17 -17
- package/helpers/time.mjs +17 -17
- package/helpers/trackHistory.d.mts +6 -0
- package/helpers/trackHistory.d.ts +4 -2
- package/helpers/trackHistory.js +13 -16
- package/helpers/trackHistory.mjs +13 -16
- package/helpers/undoRedo.d.mts +37 -0
- package/helpers/undoRedo.d.ts +5 -3
- package/helpers/undoRedo.js +59 -94
- package/helpers/undoRedo.mjs +59 -94
- package/index.d.mts +404 -0
- package/index.d.ts +371 -28
- package/index.js +2015 -2166
- package/index.mjs +2015 -2166
- package/package.json +254 -195
- package/persist-plugins/async-storage.d.mts +18 -0
- package/persist-plugins/async-storage.d.ts +6 -3
- package/persist-plugins/async-storage.js +79 -86
- package/persist-plugins/async-storage.mjs +79 -86
- package/persist-plugins/indexeddb.d.mts +29 -0
- package/persist-plugins/indexeddb.d.ts +6 -3
- package/persist-plugins/indexeddb.js +331 -352
- package/persist-plugins/indexeddb.mjs +331 -352
- package/persist-plugins/local-storage.d.mts +23 -0
- package/persist-plugins/local-storage.d.ts +8 -5
- package/persist-plugins/local-storage.js +74 -76
- package/persist-plugins/local-storage.mjs +74 -76
- package/persist-plugins/mmkv.d.mts +18 -0
- package/persist-plugins/mmkv.d.ts +6 -3
- package/persist-plugins/mmkv.js +82 -86
- package/persist-plugins/mmkv.mjs +82 -86
- package/react-hooks/createObservableHook.d.mts +5 -0
- package/react-hooks/createObservableHook.d.ts +4 -1
- package/react-hooks/createObservableHook.js +29 -30
- package/react-hooks/createObservableHook.mjs +25 -30
- package/react-hooks/useHover.d.mts +5 -0
- package/react-hooks/useHover.d.ts +5 -3
- package/react-hooks/useHover.js +29 -29
- package/react-hooks/useHover.mjs +29 -29
- package/react-hooks/useMeasure.d.mts +9 -0
- package/react-hooks/useMeasure.d.ts +5 -2
- package/react-hooks/useMeasure.js +30 -32
- package/react-hooks/useMeasure.mjs +30 -32
- package/react-hooks/useObservableNextRouter.d.mts +35 -0
- package/react-hooks/useObservableNextRouter.d.ts +9 -7
- package/react-hooks/useObservableNextRouter.js +64 -77
- package/react-hooks/useObservableNextRouter.mjs +60 -77
- package/react.d.mts +157 -0
- package/react.d.ts +157 -21
- package/react.js +458 -749
- package/react.mjs +457 -752
- package/sync-plugins/crud.d.mts +54 -0
- package/sync-plugins/crud.d.ts +12 -10
- package/sync-plugins/crud.js +253 -270
- package/sync-plugins/crud.mjs +253 -270
- package/sync-plugins/fetch.d.mts +21 -0
- package/sync-plugins/fetch.d.ts +7 -4
- package/sync-plugins/fetch.js +50 -37
- package/sync-plugins/fetch.mjs +50 -37
- package/sync-plugins/keel.d.mts +108 -0
- package/sync-plugins/keel.d.ts +17 -15
- package/sync-plugins/keel.js +229 -462
- package/sync-plugins/keel.mjs +227 -464
- package/sync-plugins/supabase.d.mts +39 -0
- package/sync-plugins/supabase.d.ts +16 -14
- package/sync-plugins/supabase.js +128 -128
- package/sync-plugins/supabase.mjs +128 -128
- package/sync-plugins/tanstack-query.d.mts +14 -0
- package/sync-plugins/tanstack-query.d.ts +7 -4
- package/sync-plugins/tanstack-query.js +51 -57
- package/sync-plugins/tanstack-query.mjs +51 -57
- package/sync-plugins/tanstack-react-query.d.mts +8 -0
- package/sync-plugins/tanstack-react-query.d.ts +6 -1
- package/sync-plugins/tanstack-react-query.js +2 -2
- package/sync-plugins/tanstack-react-query.mjs +2 -2
- package/sync.d.mts +351 -0
- package/sync.d.ts +349 -9
- package/sync.js +910 -964
- package/sync.mjs +920 -974
- package/trace.d.mts +9 -0
- package/trace.d.ts +9 -4
- package/trace.js +72 -62
- package/trace.mjs +72 -62
- package/types/babel.d.ts +1 -12
- package/babel.js.map +0 -1
- package/config/enable$GetSet.js.map +0 -1
- package/config/enable$GetSet.mjs.map +0 -1
- package/config/enableReactComponents.js.map +0 -1
- package/config/enableReactComponents.mjs.map +0 -1
- package/config/enableReactNativeComponents.js.map +0 -1
- package/config/enableReactNativeComponents.mjs.map +0 -1
- package/config/enableReactTracking.js.map +0 -1
- package/config/enableReactTracking.mjs.map +0 -1
- package/config/enableReactUse.js.map +0 -1
- package/config/enableReactUse.mjs.map +0 -1
- package/config/enable_PeekAssign.js.map +0 -1
- package/config/enable_PeekAssign.mjs.map +0 -1
- package/helpers/pageHash.js.map +0 -1
- package/helpers/pageHash.mjs.map +0 -1
- package/helpers/pageHashParams.js.map +0 -1
- package/helpers/pageHashParams.mjs.map +0 -1
- package/helpers/time.js.map +0 -1
- package/helpers/time.mjs.map +0 -1
- package/helpers/trackHistory.js.map +0 -1
- package/helpers/trackHistory.mjs.map +0 -1
- package/helpers/undoRedo.js.map +0 -1
- package/helpers/undoRedo.mjs.map +0 -1
- package/history.d.ts +0 -1
- package/history.js +0 -24
- package/history.js.map +0 -1
- package/history.mjs +0 -22
- package/history.mjs.map +0 -1
- package/index.js.map +0 -1
- package/index.mjs.map +0 -1
- package/persist-plugins/async-storage.js.map +0 -1
- package/persist-plugins/async-storage.mjs.map +0 -1
- package/persist-plugins/indexeddb.js.map +0 -1
- package/persist-plugins/indexeddb.mjs.map +0 -1
- package/persist-plugins/local-storage.js.map +0 -1
- package/persist-plugins/local-storage.mjs.map +0 -1
- package/persist-plugins/mmkv.js.map +0 -1
- package/persist-plugins/mmkv.mjs.map +0 -1
- package/react-hooks/createObservableHook.js.map +0 -1
- package/react-hooks/createObservableHook.mjs.map +0 -1
- package/react-hooks/useHover.js.map +0 -1
- package/react-hooks/useHover.mjs.map +0 -1
- package/react-hooks/useMeasure.js.map +0 -1
- package/react-hooks/useMeasure.mjs.map +0 -1
- package/react-hooks/useObservableNextRouter.js.map +0 -1
- package/react-hooks/useObservableNextRouter.mjs.map +0 -1
- package/react.js.map +0 -1
- package/react.mjs.map +0 -1
- package/src/ObservableObject.ts +0 -1350
- package/src/ObservablePrimitive.ts +0 -62
- package/src/babel/index.ts +0 -83
- package/src/batching.ts +0 -357
- package/src/computed.ts +0 -18
- package/src/config/enable$GetSet.ts +0 -30
- package/src/config/enableReactComponents.ts +0 -26
- package/src/config/enableReactNativeComponents.ts +0 -102
- package/src/config/enableReactTracking.ts +0 -62
- package/src/config/enableReactUse.ts +0 -32
- package/src/config/enable_PeekAssign.ts +0 -31
- package/src/config.ts +0 -47
- package/src/createObservable.ts +0 -47
- package/src/event.ts +0 -26
- package/src/globals.ts +0 -235
- package/src/helpers/pageHash.ts +0 -41
- package/src/helpers/pageHashParams.ts +0 -55
- package/src/helpers/time.ts +0 -30
- package/src/helpers/trackHistory.ts +0 -29
- package/src/helpers/undoRedo.ts +0 -111
- package/src/helpers.ts +0 -231
- package/src/is.ts +0 -63
- package/src/linked.ts +0 -17
- package/src/observable.ts +0 -32
- package/src/observableInterfaces.ts +0 -151
- package/src/observableTypes.ts +0 -232
- package/src/observe.ts +0 -89
- package/src/old-plugins/firebase.ts +0 -1053
- package/src/onChange.ts +0 -146
- package/src/persist/configureObservablePersistence.ts +0 -7
- package/src/persist/fieldTransformer.ts +0 -149
- package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
- package/src/persist/persistObservable.ts +0 -1034
- package/src/persist-plugins/async-storage.ts +0 -99
- package/src/persist-plugins/indexeddb.ts +0 -439
- package/src/persist-plugins/local-storage.ts +0 -86
- package/src/persist-plugins/mmkv.ts +0 -91
- package/src/proxy.ts +0 -28
- package/src/react/Computed.tsx +0 -8
- package/src/react/For.tsx +0 -116
- package/src/react/Memo.tsx +0 -4
- package/src/react/Reactive.tsx +0 -53
- package/src/react/Show.tsx +0 -33
- package/src/react/Switch.tsx +0 -43
- package/src/react/react-globals.ts +0 -3
- package/src/react/reactInterfaces.ts +0 -32
- package/src/react/reactive-observer.tsx +0 -210
- package/src/react/useComputed.ts +0 -36
- package/src/react/useEffectOnce.ts +0 -41
- package/src/react/useIsMounted.ts +0 -16
- package/src/react/useMount.ts +0 -15
- package/src/react/useObservable.ts +0 -24
- package/src/react/useObservableReducer.ts +0 -52
- package/src/react/useObservableState.ts +0 -30
- package/src/react/useObserve.ts +0 -54
- package/src/react/useObserveEffect.ts +0 -40
- package/src/react/usePauseProvider.tsx +0 -16
- package/src/react/useSelector.ts +0 -167
- package/src/react/useUnmount.ts +0 -8
- package/src/react/useWhen.ts +0 -9
- package/src/react-hooks/createObservableHook.ts +0 -53
- package/src/react-hooks/useHover.ts +0 -40
- package/src/react-hooks/useMeasure.ts +0 -48
- package/src/react-hooks/useObservableNextRouter.ts +0 -137
- package/src/retry.ts +0 -71
- package/src/setupTracking.ts +0 -26
- package/src/sync/activateSyncedNode.ts +0 -128
- package/src/sync/configureObservableSync.ts +0 -7
- package/src/sync/persistTypes.ts +0 -216
- package/src/sync/syncHelpers.ts +0 -180
- package/src/sync/syncObservable.ts +0 -1056
- package/src/sync/syncObservableAdapter.ts +0 -31
- package/src/sync/syncTypes.ts +0 -189
- package/src/sync/synced.ts +0 -21
- package/src/sync-plugins/crud.ts +0 -412
- package/src/sync-plugins/fetch.ts +0 -80
- package/src/sync-plugins/keel.ts +0 -495
- package/src/sync-plugins/supabase.ts +0 -249
- package/src/sync-plugins/tanstack-query.ts +0 -113
- package/src/sync-plugins/tanstack-react-query.ts +0 -12
- package/src/trace/traceHelpers.ts +0 -11
- package/src/trace/useTraceListeners.ts +0 -34
- package/src/trace/useTraceUpdates.ts +0 -24
- package/src/trace/useVerifyNotTracking.ts +0 -33
- package/src/trace/useVerifyOneRender.ts +0 -10
- package/src/trackSelector.ts +0 -52
- package/src/tracking.ts +0 -43
- package/src/types/babel.d.ts +0 -12
- package/src/when.ts +0 -75
- package/sync-plugins/crud.js.map +0 -1
- package/sync-plugins/crud.mjs.map +0 -1
- package/sync-plugins/fetch.js.map +0 -1
- package/sync-plugins/fetch.mjs.map +0 -1
- package/sync-plugins/keel.js.map +0 -1
- package/sync-plugins/keel.mjs.map +0 -1
- package/sync-plugins/supabase.js.map +0 -1
- package/sync-plugins/supabase.mjs.map +0 -1
- package/sync-plugins/tanstack-query.js.map +0 -1
- package/sync-plugins/tanstack-query.mjs.map +0 -1
- package/sync-plugins/tanstack-react-query.js.map +0 -1
- package/sync-plugins/tanstack-react-query.mjs.map +0 -1
- package/sync.js.map +0 -1
- package/sync.mjs.map +0 -1
- package/trace.js.map +0 -1
- package/trace.mjs.map +0 -1
package/sync.d.ts
CHANGED
|
@@ -1,11 +1,351 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { MMKVConfiguration } from 'react-native-mmkv';
|
|
2
|
+
import { AsyncStorageStatic } from '@react-native-async-storage/async-storage';
|
|
3
|
+
import { ClassConstructor, GetMode, SetParams, NodeValue, UpdateFn, ObservableParam, LinkedOptions, RetryOptions, Change, Observable, ObservableSyncState, UpdateFnParams, Selector, TypeAtPath, ObservableState, RecordValue, ArrayValue } from '@legendapp/state';
|
|
4
|
+
import { SyncedOptionsGlobal as SyncedOptionsGlobal$1 } from '@legendapp/state/sync';
|
|
5
|
+
import { DatabaseReference, Query } from 'firebase/database';
|
|
6
|
+
|
|
7
|
+
interface PersistOptions<T = any> {
|
|
8
|
+
name: string;
|
|
9
|
+
plugin?: ClassConstructor<ObservablePersistPlugin, T[]>;
|
|
10
|
+
retrySync?: boolean;
|
|
11
|
+
transform?: SyncTransform<T>;
|
|
12
|
+
readonly?: boolean;
|
|
13
|
+
mmkv?: MMKVConfiguration;
|
|
14
|
+
indexedDB?: {
|
|
15
|
+
prefixID?: string;
|
|
16
|
+
itemID?: string;
|
|
17
|
+
};
|
|
18
|
+
options?: any;
|
|
19
|
+
}
|
|
20
|
+
interface SyncedGetParams {
|
|
21
|
+
value: any;
|
|
22
|
+
lastSync: number | undefined;
|
|
23
|
+
updateLastSync: (lastSync: number) => void;
|
|
24
|
+
mode: GetMode;
|
|
25
|
+
refresh: () => void;
|
|
26
|
+
}
|
|
27
|
+
interface SyncedSetParams<T> extends SetParams<T> {
|
|
28
|
+
node: NodeValue;
|
|
29
|
+
valuePrevious: T;
|
|
30
|
+
update: UpdateFn;
|
|
31
|
+
refresh: () => void;
|
|
32
|
+
cancelRetry: () => void;
|
|
33
|
+
retryNum: number;
|
|
34
|
+
fromSubscribe: boolean | undefined;
|
|
35
|
+
}
|
|
36
|
+
interface SyncedSubscribeParams<T = any> {
|
|
37
|
+
node: NodeValue;
|
|
38
|
+
value$: ObservableParam<T>;
|
|
39
|
+
update: UpdateFn;
|
|
40
|
+
refresh: () => void;
|
|
41
|
+
}
|
|
42
|
+
interface SyncedOptions<TRemote = any, TLocal = TRemote> extends Omit<LinkedOptions<TRemote>, 'get' | 'set'> {
|
|
43
|
+
get?: (params: SyncedGetParams) => Promise<TRemote> | TRemote;
|
|
44
|
+
set?: (params: SyncedSetParams<TRemote>) => void | Promise<any>;
|
|
45
|
+
subscribe?: (params: SyncedSubscribeParams<TRemote>) => (() => void) | void;
|
|
46
|
+
retry?: RetryOptions;
|
|
47
|
+
persist?: PersistOptions<any>;
|
|
48
|
+
debounceSet?: number;
|
|
49
|
+
syncMode?: 'auto' | 'manual';
|
|
50
|
+
mode?: GetMode;
|
|
51
|
+
transform?: SyncTransform<TLocal, TRemote>;
|
|
52
|
+
enableSync?: boolean;
|
|
53
|
+
onGetError?: (error: Error) => void;
|
|
54
|
+
onSetError?: (error: Error) => void;
|
|
55
|
+
log?: (message?: any, ...optionalParams: any[]) => void;
|
|
56
|
+
onBeforeSet?: () => void;
|
|
57
|
+
onAfterSet?: () => void;
|
|
58
|
+
allowSetIfGetError?: boolean;
|
|
59
|
+
}
|
|
60
|
+
interface SyncedOptionsGlobal<T = any> extends Omit<SyncedOptions<T>, 'get' | 'set' | 'persist' | 'initial' | 'waitForSet' | 'waitFor' | 'transform' | 'subscribe'> {
|
|
61
|
+
persist?: ObservablePersistPluginOptions & Omit<PersistOptions, 'name' | 'transform' | 'options'>;
|
|
62
|
+
}
|
|
63
|
+
interface ObservablePersistPluginOptions {
|
|
64
|
+
onGetError?: (error: Error) => void;
|
|
65
|
+
onSetError?: (error: Error) => void;
|
|
66
|
+
indexedDB?: {
|
|
67
|
+
databaseName: string;
|
|
68
|
+
version: number;
|
|
69
|
+
tableNames: string[];
|
|
70
|
+
};
|
|
71
|
+
asyncStorage?: {
|
|
72
|
+
AsyncStorage: AsyncStorageStatic;
|
|
73
|
+
preload?: boolean | string[];
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
interface ObservablePersistPlugin {
|
|
77
|
+
initialize?(config: ObservablePersistPluginOptions): void | Promise<void>;
|
|
78
|
+
loadTable?(table: string, config: PersistOptions): Promise<any> | void;
|
|
79
|
+
getTable<T = any>(table: string, init: object, config: PersistOptions): T;
|
|
80
|
+
set(table: string, changes: Change[], config: PersistOptions): Promise<any> | void;
|
|
81
|
+
deleteTable(table: string, config: PersistOptions): Promise<any> | void;
|
|
82
|
+
getMetadata(table: string, config: PersistOptions): PersistMetadata;
|
|
83
|
+
setMetadata(table: string, metadata: PersistMetadata, config: PersistOptions): Promise<any> | void;
|
|
84
|
+
deleteMetadata(table: string, config: PersistOptions): Promise<any> | void;
|
|
85
|
+
}
|
|
86
|
+
interface PersistMetadata {
|
|
87
|
+
id?: '__legend_metadata';
|
|
88
|
+
lastSync?: number;
|
|
89
|
+
pending?: any;
|
|
90
|
+
}
|
|
91
|
+
type SyncTransformMethod = 'get' | 'set';
|
|
92
|
+
interface SyncTransform<TLocal = any, TSaved = TLocal> {
|
|
93
|
+
load?: (value: TSaved, method: SyncTransformMethod) => TLocal | Promise<TLocal>;
|
|
94
|
+
save?: (value: TLocal) => TSaved | Promise<TSaved>;
|
|
95
|
+
}
|
|
96
|
+
interface ObservableSyncSetParams<T> {
|
|
97
|
+
syncState: Observable<ObservableSyncState>;
|
|
98
|
+
value$: ObservableParam<T>;
|
|
99
|
+
options: SyncedOptions<T>;
|
|
100
|
+
changes: Change[];
|
|
101
|
+
value: T;
|
|
102
|
+
valuePrevious: T;
|
|
103
|
+
}
|
|
104
|
+
interface ObservableSyncGetParams<T> {
|
|
105
|
+
state: Observable<ObservableSyncState>;
|
|
106
|
+
value$: ObservableParam<T>;
|
|
107
|
+
options: SyncedOptions<T>;
|
|
108
|
+
dateModified?: number;
|
|
109
|
+
lastSync?: number;
|
|
110
|
+
mode?: GetMode;
|
|
111
|
+
onGet: () => void;
|
|
112
|
+
onError: (error: Error) => void;
|
|
113
|
+
onChange: (params: UpdateFnParams) => void | Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
type ObservableSyncRemoteGetFnParams<T> = Omit<ObservableSyncGetParams<T>, 'onGet'>;
|
|
116
|
+
interface ObservableSyncClass {
|
|
117
|
+
get?<T>(params: ObservableSyncGetParams<T>): void;
|
|
118
|
+
set?<T>(params: ObservableSyncSetParams<T>): void | Promise<void | {
|
|
119
|
+
changes?: object;
|
|
120
|
+
dateModified?: number;
|
|
121
|
+
lastSync?: number;
|
|
122
|
+
pathStrs?: string[];
|
|
123
|
+
}>;
|
|
124
|
+
}
|
|
125
|
+
interface ObservableSyncFunctions<T = any> {
|
|
126
|
+
get?(params: ObservableSyncRemoteGetFnParams<T>): T | Promise<T>;
|
|
127
|
+
set?(params: ObservableSyncSetParams<T>): void | Promise<void | {
|
|
128
|
+
changes?: object | undefined;
|
|
129
|
+
dateModified?: number;
|
|
130
|
+
lastSync?: number;
|
|
131
|
+
}>;
|
|
132
|
+
}
|
|
133
|
+
interface SubscribeOptions {
|
|
134
|
+
node: NodeValue;
|
|
135
|
+
update: UpdateFn;
|
|
136
|
+
refresh: () => void;
|
|
137
|
+
}
|
|
138
|
+
type Synced<T> = T;
|
|
139
|
+
|
|
140
|
+
declare function configureObservableSync(options?: SyncedOptionsGlobal$1): void;
|
|
141
|
+
|
|
142
|
+
interface PersistTransform<TOrig = any, TSaved = TOrig> {
|
|
143
|
+
load?: (value: TSaved) => TOrig | Promise<TOrig>;
|
|
144
|
+
save?: (value: TOrig) => TSaved | Promise<TSaved>;
|
|
145
|
+
}
|
|
146
|
+
interface LegacyPersistOptionsLocal<T = any> {
|
|
147
|
+
name: string;
|
|
148
|
+
transform?: PersistTransform<T>;
|
|
149
|
+
fieldTransforms?: FieldTransforms<T>;
|
|
150
|
+
readonly?: boolean;
|
|
151
|
+
mmkv?: MMKVConfiguration;
|
|
152
|
+
indexedDB?: {
|
|
153
|
+
prefixID?: string;
|
|
154
|
+
itemID?: string;
|
|
155
|
+
};
|
|
156
|
+
options?: any;
|
|
157
|
+
}
|
|
158
|
+
type LegacyPersistOptionsRemote<T = any> = ObservablePersistenceConfigRemoteGlobalOptions & {
|
|
159
|
+
readonly?: boolean;
|
|
160
|
+
waitForGet?: Selector<any>;
|
|
161
|
+
waitForSet?: LinkedOptions['waitForSet'];
|
|
162
|
+
manual?: boolean;
|
|
163
|
+
fieldTransforms?: FieldTransforms<T>;
|
|
164
|
+
allowSetIfError?: boolean;
|
|
165
|
+
transform?: PersistTransform<T>;
|
|
166
|
+
firebase?: {
|
|
167
|
+
refPath: (uid: string | undefined) => string;
|
|
168
|
+
query?: (ref: DatabaseReference) => DatabaseReference | Query;
|
|
169
|
+
queryByModified?: QueryByModified<T>;
|
|
170
|
+
ignoreKeys?: string[];
|
|
171
|
+
requireAuth?: boolean;
|
|
172
|
+
mode?: 'once' | 'realtime';
|
|
173
|
+
};
|
|
174
|
+
offlineBehavior?: false | 'retry';
|
|
175
|
+
changeTimeout?: number;
|
|
176
|
+
metadataTimeout?: number;
|
|
177
|
+
retry?: RetryOptions;
|
|
178
|
+
onGetError?: (error: Error) => void;
|
|
179
|
+
onSetError?: (error: Error) => void;
|
|
180
|
+
log?: (message?: any, ...optionalParams: any[]) => void;
|
|
181
|
+
onBeforeSet?: () => void;
|
|
182
|
+
onSet?: () => void;
|
|
183
|
+
};
|
|
184
|
+
interface ObservablePersistenceConfigLocalGlobalOptions {
|
|
185
|
+
onGetError?: (error: Error) => void;
|
|
186
|
+
onSetError?: (error: Error) => void;
|
|
187
|
+
indexedDB?: {
|
|
188
|
+
databaseName: string;
|
|
189
|
+
version: number;
|
|
190
|
+
tableNames: string[];
|
|
191
|
+
};
|
|
192
|
+
asyncStorage?: {
|
|
193
|
+
AsyncStorage: AsyncStorageStatic;
|
|
194
|
+
preload?: boolean | string[];
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
interface ObservablePersistenceConfigRemoteGlobalOptions {
|
|
198
|
+
debounceSet?: number;
|
|
199
|
+
dateModifiedKey?: string;
|
|
200
|
+
offlineBehavior?: false | 'retry';
|
|
201
|
+
retry?: RetryOptions;
|
|
202
|
+
onGetError?: (error: Error) => void;
|
|
203
|
+
onSetError?: (error: Error) => void;
|
|
204
|
+
log?: (logLevel: 'verbose' | 'warning' | 'error', message: any, ...optionalParams: any[]) => void;
|
|
205
|
+
onBeforeSet?: () => void;
|
|
206
|
+
onAfterSet?: () => void;
|
|
207
|
+
}
|
|
208
|
+
interface ObservablePersistenceConfig {
|
|
209
|
+
pluginLocal?: ClassConstructor<ObservablePersistPlugin>;
|
|
210
|
+
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions;
|
|
211
|
+
localOptions?: ObservablePersistenceConfigLocalGlobalOptions;
|
|
212
|
+
remoteOptions?: ObservablePersistenceConfigRemoteGlobalOptions;
|
|
213
|
+
}
|
|
214
|
+
interface LegacyPersistOptions<T = any> {
|
|
215
|
+
local?: string | LegacyPersistOptionsLocal<T>;
|
|
216
|
+
remote?: LegacyPersistOptionsRemote<T>;
|
|
217
|
+
pluginLocal?: ClassConstructor<ObservablePersistPlugin>;
|
|
218
|
+
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions<T>;
|
|
219
|
+
}
|
|
220
|
+
interface ObservableOnChangeParams {
|
|
221
|
+
value: unknown;
|
|
222
|
+
path?: string[];
|
|
223
|
+
pathTypes?: TypeAtPath[];
|
|
224
|
+
mode?: GetMode;
|
|
225
|
+
dateModified?: number | undefined;
|
|
226
|
+
lastSync?: number | undefined;
|
|
227
|
+
}
|
|
228
|
+
interface ObservablePersistRemoteSetParams<T> {
|
|
229
|
+
syncState: Observable<ObservablePersistState>;
|
|
230
|
+
obs: ObservableParam<T>;
|
|
231
|
+
options: LegacyPersistOptions<T>;
|
|
232
|
+
changes: Change[];
|
|
233
|
+
value: T;
|
|
234
|
+
}
|
|
235
|
+
interface ObservablePersistRemoteGetParams<T> {
|
|
236
|
+
state: Observable<ObservablePersistState>;
|
|
237
|
+
obs: ObservableParam<T>;
|
|
238
|
+
options: LegacyPersistOptions<T>;
|
|
239
|
+
dateModified?: number;
|
|
240
|
+
lastSync?: number;
|
|
241
|
+
mode?: GetMode;
|
|
242
|
+
onGet: () => void;
|
|
243
|
+
onError: (error: Error) => void;
|
|
244
|
+
onChange: (params: ObservableOnChangeParams) => void | Promise<void>;
|
|
245
|
+
}
|
|
246
|
+
type ObservablePersistRemoteGetFnParams<T> = Omit<ObservablePersistRemoteGetParams<T>, 'onGet'>;
|
|
247
|
+
interface ObservablePersistRemoteClass {
|
|
248
|
+
get?<T>(params: ObservablePersistRemoteGetParams<T>): void;
|
|
249
|
+
set?<T>(params: ObservablePersistRemoteSetParams<T>): void | Promise<void | {
|
|
250
|
+
changes?: object;
|
|
251
|
+
dateModified?: number;
|
|
252
|
+
lastSync?: number;
|
|
253
|
+
pathStrs?: string[];
|
|
254
|
+
}>;
|
|
255
|
+
}
|
|
256
|
+
interface ObservablePersistRemoteFunctions<T = any> {
|
|
257
|
+
get?(params: ObservablePersistRemoteGetFnParams<T>): T | Promise<T>;
|
|
258
|
+
set?(params: ObservablePersistRemoteSetParams<T>): void | Promise<void | {
|
|
259
|
+
changes?: object | undefined;
|
|
260
|
+
dateModified?: number;
|
|
261
|
+
lastSync?: number;
|
|
262
|
+
}>;
|
|
263
|
+
}
|
|
264
|
+
interface ObservablePersistStateBase {
|
|
265
|
+
isLoadedLocal: boolean;
|
|
266
|
+
isEnabledLocal: boolean;
|
|
267
|
+
isEnabledRemote: boolean;
|
|
268
|
+
dateModified?: number;
|
|
269
|
+
lastSync?: number;
|
|
270
|
+
syncCount?: number;
|
|
271
|
+
clearLocal: () => Promise<void>;
|
|
272
|
+
sync: () => Promise<void>;
|
|
273
|
+
getPendingChanges: () => Record<string, {
|
|
274
|
+
p: any;
|
|
275
|
+
v?: any;
|
|
276
|
+
}> | undefined;
|
|
277
|
+
}
|
|
278
|
+
type ObservablePersistState = ObservableState & ObservablePersistStateBase;
|
|
279
|
+
declare type ObjectKeys<T> = Pick<T, {
|
|
280
|
+
[K in keyof T]-?: K extends string ? T[K] extends Record<string, any> ? T[K] extends any[] ? never : K : never : never;
|
|
281
|
+
}[keyof T]>;
|
|
282
|
+
declare type DictKeys<T> = Pick<T, {
|
|
283
|
+
[K in keyof T]-?: K extends string ? (T[K] extends Record<string, Record<string, any>> ? K : never) : never;
|
|
284
|
+
}[keyof T]>;
|
|
285
|
+
declare type ArrayKeys<T> = Pick<T, {
|
|
286
|
+
[K in keyof T]-?: K extends string | number ? (T[K] extends any[] ? K : never) : never;
|
|
287
|
+
}[keyof T]>;
|
|
288
|
+
declare type FieldTransforms<T> = (T extends Record<string, Record<string, any>> ? {
|
|
289
|
+
_dict: FieldTransformsInner<RecordValue<T>>;
|
|
290
|
+
} : never) | FieldTransformsInner<T>;
|
|
291
|
+
declare type FieldTransformsInner<T> = {
|
|
292
|
+
[K in keyof T]: string;
|
|
293
|
+
} & ({
|
|
294
|
+
[K in keyof ObjectKeys<T> as `${K}_obj`]?: FieldTransforms<T[K]>;
|
|
295
|
+
} | {
|
|
296
|
+
[K in keyof DictKeys<T> as `${K}_dict`]?: FieldTransforms<RecordValue<T[K]>>;
|
|
297
|
+
}) & {
|
|
298
|
+
[K in keyof ArrayKeys<T> as `${K}_arr`]?: FieldTransforms<ArrayValue<T[K]>>;
|
|
299
|
+
} & {
|
|
300
|
+
[K in keyof ArrayKeys<T> as `${K}_val`]?: FieldTransforms<ArrayValue<T[K]>>;
|
|
301
|
+
};
|
|
302
|
+
type QueryByModified<T> = boolean | {
|
|
303
|
+
[K in keyof T]?: QueryByModified<T[K]>;
|
|
304
|
+
} | {
|
|
305
|
+
'*'?: boolean;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
declare function removeNullUndefined<T extends Record<string, any>>(a: T, recursive?: boolean): T;
|
|
309
|
+
declare function diffObjects<T extends Record<string, any>>(obj1: T, obj2: T, deep?: boolean): Partial<T>;
|
|
310
|
+
declare function deepEqual<T extends Record<string, any> = any>(a: T, b: T, ignoreFields?: string[], nullVsUndefined?: boolean): boolean;
|
|
311
|
+
declare function combineTransforms<T, T2>(...transforms: Partial<SyncTransform<T2, T>>[]): SyncTransform<T2, T>;
|
|
312
|
+
interface TransformStringifyOptions {
|
|
313
|
+
stringifyIf?: {
|
|
314
|
+
number?: boolean;
|
|
315
|
+
object?: boolean;
|
|
316
|
+
array?: boolean;
|
|
317
|
+
date?: boolean;
|
|
318
|
+
};
|
|
319
|
+
filterArrays?: boolean;
|
|
320
|
+
}
|
|
321
|
+
type TransformStringifyKeys<TRemote, TLocal> = (keyof TRemote | {
|
|
322
|
+
from: keyof TRemote;
|
|
323
|
+
to: keyof TLocal;
|
|
324
|
+
})[];
|
|
325
|
+
type StringToDate<T extends Record<string, any>> = {
|
|
326
|
+
[K in keyof T]: T[K] extends string ? string | Date : T[K];
|
|
327
|
+
};
|
|
328
|
+
declare function transformStringifyKeys<TRemote extends Record<string, any>, TLocal extends Record<string, any>>(...keys: TransformStringifyKeys<TRemote, TLocal>): SyncTransform<TLocal, TRemote>;
|
|
329
|
+
type TransformStringsToDates<T extends {}, Keys extends keyof T> = {
|
|
330
|
+
[K in Keys]: Date | Exclude<T[K], string>;
|
|
331
|
+
} & Omit<T, Keys>;
|
|
332
|
+
declare function transformStringifyDates<TRemote extends Record<string, any>, TLocal extends Record<string, any> = TRemote>(): SyncTransform<TLocal, TRemote>;
|
|
333
|
+
declare function transformStringifyDates<TRemote extends Record<string, any>, Keys extends keyof TRemote = keyof TRemote>(...args: Keys[]): SyncTransform<TransformStringsToDates<TRemote, Keys>, TRemote>;
|
|
334
|
+
declare function transformStringifyDates<TRemote extends Record<string, any>, TLocal extends Record<string, any> = TRemote>(...args: (keyof TRemote)[]): SyncTransform<TRemote, TLocal>;
|
|
335
|
+
|
|
336
|
+
declare const mapSyncPlugins: WeakMap<ClassConstructor<ObservablePersistPlugin | ObservableSyncClass>, {
|
|
337
|
+
plugin: ObservablePersistPlugin | ObservableSyncClass;
|
|
338
|
+
initialized: Observable<boolean>;
|
|
339
|
+
}>;
|
|
340
|
+
declare function onChangeRemote(cb: () => void): void;
|
|
341
|
+
declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: SyncedOptions<T>): Observable<ObservableSyncState>;
|
|
342
|
+
declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: Synced<T>): Observable<ObservableSyncState>;
|
|
343
|
+
|
|
344
|
+
declare function synced<TRemote, TLocal = TRemote>(params: SyncedOptions<TRemote, TLocal> | (() => TRemote)): Synced<TLocal>;
|
|
345
|
+
|
|
346
|
+
declare function isInRemoteChange(): boolean;
|
|
347
|
+
declare const internal: {
|
|
10
348
|
observableSyncConfiguration: SyncedOptionsGlobal;
|
|
11
349
|
};
|
|
350
|
+
|
|
351
|
+
export { type FieldTransforms, type FieldTransformsInner, type LegacyPersistOptions, type LegacyPersistOptionsLocal, type LegacyPersistOptionsRemote, type ObservableOnChangeParams, type ObservablePersistPlugin, type ObservablePersistPluginOptions, type ObservablePersistRemoteClass, type ObservablePersistRemoteFunctions, type ObservablePersistRemoteGetFnParams, type ObservablePersistRemoteGetParams, type ObservablePersistRemoteSetParams, type ObservablePersistState, type ObservablePersistStateBase, type ObservablePersistenceConfig, type ObservablePersistenceConfigLocalGlobalOptions, type ObservablePersistenceConfigRemoteGlobalOptions, type ObservableSyncClass, type ObservableSyncFunctions, type ObservableSyncGetParams, type ObservableSyncRemoteGetFnParams, type ObservableSyncSetParams, type PersistMetadata, type PersistOptions, type PersistTransform, type QueryByModified, type StringToDate, type SubscribeOptions, type SyncTransform, type SyncTransformMethod, type Synced, type SyncedGetParams, type SyncedOptions, type SyncedOptionsGlobal, type SyncedSetParams, type SyncedSubscribeParams, type TransformStringifyKeys, type TransformStringifyOptions, type TransformStringsToDates, combineTransforms, configureObservableSync, deepEqual, diffObjects, internal, isInRemoteChange, mapSyncPlugins, onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
|