@legendapp/state 1.11.1 → 2.0.0-beta.0
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 +0 -4
- package/index.d.ts +2 -3
- package/index.js +220 -226
- package/index.js.map +1 -1
- package/index.mjs +220 -224
- package/index.mjs.map +1 -1
- package/package.json +21 -24
- package/persist-plugins/async-storage.d.ts +14 -0
- package/persist-plugins/async-storage.js +100 -0
- package/persist-plugins/async-storage.js.map +1 -0
- package/persist-plugins/async-storage.mjs +98 -0
- package/persist-plugins/async-storage.mjs.map +1 -0
- package/persist-plugins/fetch.d.ts +10 -0
- package/persist-plugins/fetch.js +22 -0
- package/persist-plugins/fetch.js.map +1 -0
- package/persist-plugins/fetch.mjs +20 -0
- package/persist-plugins/fetch.mjs.map +1 -0
- package/persist-plugins/firebase.d.ts +51 -0
- package/persist-plugins/firebase.js +692 -0
- package/persist-plugins/firebase.js.map +1 -0
- package/persist-plugins/firebase.mjs +690 -0
- package/persist-plugins/firebase.mjs.map +1 -0
- package/persist-plugins/indexeddb.d.ts +2 -3
- package/persist-plugins/indexeddb.js +1 -16
- package/persist-plugins/indexeddb.js.map +1 -1
- package/persist-plugins/indexeddb.mjs +1 -16
- package/persist-plugins/indexeddb.mjs.map +1 -1
- package/persist-plugins/local-storage.d.ts +1 -2
- package/persist-plugins/local-storage.js +1 -5
- package/persist-plugins/local-storage.js.map +1 -1
- package/persist-plugins/local-storage.mjs +1 -5
- package/persist-plugins/local-storage.mjs.map +1 -1
- package/persist-plugins/mmkv.d.ts +4 -4
- package/persist-plugins/mmkv.js +6 -4
- package/persist-plugins/mmkv.js.map +1 -1
- package/persist-plugins/mmkv.mjs +6 -4
- package/persist-plugins/mmkv.mjs.map +1 -1
- package/persist-plugins/query.d.ts +20 -0
- package/persist-plugins/query.js +89 -0
- package/persist-plugins/query.js.map +1 -0
- package/persist-plugins/query.mjs +87 -0
- package/persist-plugins/query.mjs.map +1 -0
- package/persist.js +170 -143
- package/persist.js.map +1 -1
- package/persist.mjs +171 -144
- package/persist.mjs.map +1 -1
- package/react-hooks/usePersistedObservable.d.ts +2 -2
- package/react-hooks/usePersistedObservable.js +1 -6
- package/react-hooks/usePersistedObservable.js.map +1 -1
- package/react-hooks/usePersistedObservable.mjs +1 -6
- package/react-hooks/usePersistedObservable.mjs.map +1 -1
- package/react.d.ts +1 -6
- package/react.js +47 -99
- package/react.js.map +1 -1
- package/react.mjs +47 -100
- package/react.mjs.map +1 -1
- package/src/ObservableObject.d.ts +4 -0
- package/src/batching.d.ts +0 -7
- package/src/globals.d.ts +1 -5
- package/src/is.d.ts +1 -0
- package/src/observable.d.ts +5 -3
- package/src/observableInterfaces.d.ts +93 -69
- package/src/observe.d.ts +1 -1
- package/src/persist/observablePersistRemoteFunctionsAdapter.d.ts +2 -0
- package/src/persist/persistObservable.d.ts +10 -13
- package/src/persist-plugins/async-storage.d.ts +14 -0
- package/src/persist-plugins/fetch.d.ts +10 -0
- package/src/persist-plugins/firebase.d.ts +51 -0
- package/src/persist-plugins/indexeddb.d.ts +2 -3
- package/src/persist-plugins/local-storage.d.ts +1 -2
- package/src/persist-plugins/mmkv.d.ts +4 -4
- package/src/persist-plugins/query.d.ts +20 -0
- package/src/react/For.d.ts +1 -1
- package/src/react/react-globals.d.ts +3 -0
- package/src/react/reactInterfaces.d.ts +1 -1
- package/src/react/reactive-observer.d.ts +1 -5
- package/src/react/useObservableState.d.ts +2 -0
- package/src/react/useSelector.d.ts +1 -1
- package/src/react/useWhen.d.ts +3 -0
- package/src/react-hooks/usePersistedObservable.d.ts +2 -2
- package/src/trackSelector.d.ts +1 -1
- package/src/tracking.d.ts +2 -3
- package/config/disableDeprecationWarnings.d.ts +0 -1
- package/config/disableDeprecationWarnings.js +0 -10
- package/config/disableDeprecationWarnings.js.map +0 -1
- package/config/disableDeprecationWarnings.mjs +0 -8
- package/config/disableDeprecationWarnings.mjs.map +0 -1
- package/config/enableReactDirectRender.d.ts +0 -7
- package/config/enableReactDirectRender.js +0 -77
- package/config/enableReactDirectRender.js.map +0 -1
- package/config/enableReactDirectRender.mjs +0 -74
- package/config/enableReactDirectRender.mjs.map +0 -1
- package/react-components.d.ts +0 -2
- package/react-components.js +0 -44
- package/react-components.js.map +0 -1
- package/react-components.mjs +0 -31
- package/react-components.mjs.map +0 -1
- package/react-native-components.d.ts +0 -2
- package/react-native-components.js +0 -67
- package/react-native-components.js.map +0 -1
- package/react-native-components.mjs +0 -54
- package/react-native-components.mjs.map +0 -1
- package/src/config/disableDeprecationWarnings.d.ts +0 -1
- package/src/config/enableReactDirectRender.d.ts +0 -7
- package/src/react/enableLegendStateReact.d.ts +0 -1
- package/src/react-components/react-components.d.ts +0 -7
- package/src/react-native-components/rn-components.d.ts +0 -21
- package/types.d.ts +0 -13
package/src/globals.d.ts
CHANGED
|
@@ -4,14 +4,10 @@ export declare const symbolGetNode: unique symbol;
|
|
|
4
4
|
export declare const symbolDelete: unique symbol;
|
|
5
5
|
export declare const symbolOpaque: unique symbol;
|
|
6
6
|
export declare const optimized: unique symbol;
|
|
7
|
-
export declare const extraPrimitiveActivators: Map<string | symbol, boolean>;
|
|
8
|
-
export declare const extraPrimitiveProps: Map<string | symbol, any>;
|
|
9
|
-
export declare const __devExtractFunctionsAndComputedsNodes: Set<unknown> | undefined;
|
|
10
7
|
export declare const globalState: {
|
|
11
8
|
isLoadingLocal: boolean;
|
|
12
9
|
isLoadingRemote: boolean;
|
|
13
10
|
isMerging: boolean;
|
|
14
|
-
noDepWarn: boolean;
|
|
15
11
|
};
|
|
16
12
|
export declare function checkActivate(node: NodeValue): void;
|
|
17
13
|
export declare function getNode(obs: ObservableReadable): NodeValue;
|
|
@@ -20,6 +16,7 @@ export declare function peek(node: NodeValue): any;
|
|
|
20
16
|
export declare function setNodeValue(node: NodeValue, newValue: any): {
|
|
21
17
|
prevValue: any;
|
|
22
18
|
newValue: any;
|
|
19
|
+
parentValue: any;
|
|
23
20
|
};
|
|
24
21
|
export declare function getNodeValue(node: NodeValue): any;
|
|
25
22
|
export declare function getChildNode(node: NodeValue, key: string): NodeValue;
|
|
@@ -27,4 +24,3 @@ export declare function ensureNodeValue(node: NodeValue): any;
|
|
|
27
24
|
export declare function findIDKey(obj: unknown | undefined, node: NodeValue): string | ((value: any) => string) | undefined;
|
|
28
25
|
export declare function extractFunction(node: NodeValue, key: string, fnOrComputed: Function, computedChildNode?: never): void;
|
|
29
26
|
export declare function extractFunction(node: NodeValue, key: string, fnOrComputed: ObservableComputed, computedChildNode: NodeValue): void;
|
|
30
|
-
export declare function extractFunctionsAndComputeds(obj: Record<string, any>, node: NodeValue): false | undefined;
|
package/src/is.d.ts
CHANGED
package/src/observable.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { Observable, ObservablePrimitive } from './observableInterfaces';
|
|
2
|
-
export declare function observable<T>(value
|
|
3
|
-
export declare function
|
|
1
|
+
import type { Observable, ObservablePrimitive, PromiseInfo } from './observableInterfaces';
|
|
2
|
+
export declare function observable<T>(value: Promise<T>): Observable<T & PromiseInfo>;
|
|
3
|
+
export declare function observable<T>(value?: T): Observable<T>;
|
|
4
|
+
export declare function observablePrimitive<T>(value: Promise<T>): ObservablePrimitive<T & PromiseInfo>;
|
|
5
|
+
export declare function observablePrimitive<T>(value?: T): ObservablePrimitive<T>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { AsyncStorageStatic } from '@react-native-async-storage/async-storage';
|
|
1
2
|
import type { symbolGetNode, symbolOpaque } from './globals';
|
|
3
|
+
import { DatabaseReference, Query } from 'firebase/database';
|
|
2
4
|
interface MMKVConfiguration {
|
|
3
5
|
/**
|
|
4
6
|
* The MMKV instance's ID. If you want to use multiple instances, make sure to use different IDs!
|
|
@@ -34,7 +36,7 @@ interface MMKVConfiguration {
|
|
|
34
36
|
encryptionKey?: string;
|
|
35
37
|
}
|
|
36
38
|
type Nullable<T> = T | null | undefined;
|
|
37
|
-
export type TrackingType = undefined | true |
|
|
39
|
+
export type TrackingType = undefined | true | symbol;
|
|
38
40
|
export interface MapGet<T extends Map<any, any> | WeakMap<any, any>> {
|
|
39
41
|
get(key: Parameters<T['get']>[0]): ObservableChild<Parameters<T['set']>[1]>;
|
|
40
42
|
get(): T;
|
|
@@ -91,7 +93,7 @@ type PrimitiveKeys<T> = Pick<T, {
|
|
|
91
93
|
type NonPrimitiveKeys<T> = Pick<T, {
|
|
92
94
|
[K in keyof T]-?: T[K] extends Primitive ? never : K;
|
|
93
95
|
}[keyof T]>;
|
|
94
|
-
type Recurse<T, K extends keyof T, TRecurse> = T[K] extends ObservableReadable ? T[K] : T[K] extends
|
|
96
|
+
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> ? 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];
|
|
95
97
|
type ObservableFnsRecursiveUnsafe<T> = {
|
|
96
98
|
[K in keyof T]-?: Recurse<T, K, ObservableObject<NonNullable<T[K]>>>;
|
|
97
99
|
};
|
|
@@ -109,6 +111,8 @@ export interface ObservableEvent {
|
|
|
109
111
|
}
|
|
110
112
|
export type QueryByModified<T> = boolean | {
|
|
111
113
|
[K in keyof T]?: QueryByModified<T[K]>;
|
|
114
|
+
} | {
|
|
115
|
+
'*'?: boolean;
|
|
112
116
|
};
|
|
113
117
|
export type TypeAtPath = 'object' | 'array';
|
|
114
118
|
export interface Change {
|
|
@@ -117,12 +121,13 @@ export interface Change {
|
|
|
117
121
|
valueAtPath: any;
|
|
118
122
|
prevAtPath: any;
|
|
119
123
|
}
|
|
124
|
+
export interface PersistTransform<T = any> {
|
|
125
|
+
in?: (value: T) => T | Promise<T>;
|
|
126
|
+
out?: (value: T) => T | Promise<T>;
|
|
127
|
+
}
|
|
120
128
|
export interface PersistOptionsLocal<T = any> {
|
|
121
129
|
name: string;
|
|
122
|
-
|
|
123
|
-
load?: (value: T) => T | Promise<T>;
|
|
124
|
-
save?: (value: T) => T | Promise<T>;
|
|
125
|
-
};
|
|
130
|
+
transform?: PersistTransform<T>;
|
|
126
131
|
fieldTransforms?: FieldTransforms<T>;
|
|
127
132
|
readonly?: boolean;
|
|
128
133
|
mmkv?: MMKVConfiguration;
|
|
@@ -132,36 +137,64 @@ export interface PersistOptionsLocal<T = any> {
|
|
|
132
137
|
};
|
|
133
138
|
options?: any;
|
|
134
139
|
}
|
|
135
|
-
export
|
|
140
|
+
export type PersistOptionsRemote<T = any> = ObservablePersistenceConfigRemoteGlobalOptions & {
|
|
136
141
|
readonly?: boolean;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
saveTimeout?: number;
|
|
140
|
-
waitForLoad?: Promise<any> | ObservableReadable<any>;
|
|
141
|
-
waitForSave?: Promise<any> | ObservableReadable<any> | ((value: any, path: string[]) => Promise<any>);
|
|
142
|
+
waitForGet?: Promise<any> | ObservableReadable<any>;
|
|
143
|
+
waitForSet?: Promise<any> | ObservableReadable<any>;
|
|
142
144
|
manual?: boolean;
|
|
143
145
|
fieldTransforms?: FieldTransforms<T>;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
onSaveError?: (error: Error) => void;
|
|
147
|
-
adjustData?: {
|
|
148
|
-
load?: (value: T) => T | Promise<T>;
|
|
149
|
-
save?: (value: T) => T | Promise<T>;
|
|
150
|
-
};
|
|
146
|
+
allowSetIfError?: boolean;
|
|
147
|
+
transform?: PersistTransform<T>;
|
|
151
148
|
firebase?: {
|
|
152
|
-
|
|
149
|
+
refPath: (uid: string | undefined) => string;
|
|
150
|
+
query?: (ref: DatabaseReference) => DatabaseReference | Query;
|
|
153
151
|
queryByModified?: QueryByModified<T>;
|
|
154
152
|
ignoreKeys?: string[];
|
|
155
|
-
|
|
153
|
+
requireAuth?: boolean;
|
|
154
|
+
mode?: 'once' | 'realtime';
|
|
155
|
+
};
|
|
156
|
+
offlineBehavior?: false | 'retry';
|
|
157
|
+
changeTimeout?: number;
|
|
158
|
+
onGetError?: (error: Error) => void;
|
|
159
|
+
onSetError?: (error: Error) => void;
|
|
160
|
+
log?: (message?: any, ...optionalParams: any[]) => void;
|
|
161
|
+
onBeforeSet?: () => void;
|
|
162
|
+
onSet?: () => void;
|
|
163
|
+
};
|
|
164
|
+
export interface ObservablePersistenceConfigLocalGlobalOptions {
|
|
165
|
+
onGetError?: (error: Error) => void;
|
|
166
|
+
onSetError?: (error: Error) => void;
|
|
167
|
+
indexedDB?: {
|
|
168
|
+
databaseName: string;
|
|
169
|
+
version: number;
|
|
170
|
+
tableNames: string[];
|
|
156
171
|
};
|
|
157
|
-
|
|
158
|
-
|
|
172
|
+
asyncStorage?: {
|
|
173
|
+
AsyncStorage: AsyncStorageStatic;
|
|
174
|
+
preload?: boolean | string[];
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
export interface ObservablePersistenceConfigRemoteGlobalOptions {
|
|
178
|
+
saveTimeout?: number;
|
|
179
|
+
dateModifiedKey?: string;
|
|
180
|
+
offlineBehavior?: false | 'retry';
|
|
181
|
+
onGetError?: (error: Error) => void;
|
|
182
|
+
onSetError?: (error: Error) => void;
|
|
183
|
+
log?: (logLevel: 'verbose' | 'warning' | 'error', message: any, ...optionalParams: any[]) => void;
|
|
184
|
+
onBeforeSet?: () => void;
|
|
185
|
+
onSet?: () => void;
|
|
186
|
+
}
|
|
187
|
+
export interface ObservablePersistenceConfig {
|
|
188
|
+
pluginLocal?: ClassConstructor<ObservablePersistLocal>;
|
|
189
|
+
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions;
|
|
190
|
+
localOptions?: ObservablePersistenceConfigLocalGlobalOptions;
|
|
191
|
+
remoteOptions?: ObservablePersistenceConfigRemoteGlobalOptions;
|
|
159
192
|
}
|
|
160
|
-
export interface PersistOptions<T = any> {
|
|
193
|
+
export interface PersistOptions<T = any, TState = {}> {
|
|
161
194
|
local?: string | PersistOptionsLocal<T>;
|
|
162
195
|
remote?: PersistOptionsRemote<T>;
|
|
163
|
-
|
|
164
|
-
|
|
196
|
+
pluginLocal?: ClassConstructor<ObservablePersistLocal>;
|
|
197
|
+
pluginRemote?: ClassConstructor<ObservablePersistRemoteClass> | ObservablePersistRemoteFunctions<T, TState>;
|
|
165
198
|
}
|
|
166
199
|
export interface PersistMetadata {
|
|
167
200
|
id?: '__legend_metadata';
|
|
@@ -169,45 +202,50 @@ export interface PersistMetadata {
|
|
|
169
202
|
pending?: any;
|
|
170
203
|
}
|
|
171
204
|
export interface ObservablePersistLocal {
|
|
172
|
-
initialize?(config:
|
|
205
|
+
initialize?(config: ObservablePersistenceConfigLocalGlobalOptions): void | Promise<void>;
|
|
206
|
+
loadTable?(table: string, config: PersistOptionsLocal): Promise<any> | void;
|
|
173
207
|
getTable<T = any>(table: string, config: PersistOptionsLocal): T;
|
|
174
|
-
getTableTransformed?<T = any>(table: string, config: PersistOptionsLocal): T;
|
|
175
|
-
getMetadata(table: string, config: PersistOptionsLocal): PersistMetadata;
|
|
176
208
|
set(table: string, changes: Change[], config: PersistOptionsLocal): Promise<any> | void;
|
|
177
|
-
updateMetadata(table: string, metadata: PersistMetadata, config: PersistOptionsLocal): Promise<any> | void;
|
|
178
209
|
deleteTable(table: string, config: PersistOptionsLocal): Promise<any> | void;
|
|
210
|
+
getMetadata(table: string, config: PersistOptionsLocal): PersistMetadata;
|
|
211
|
+
setMetadata(table: string, metadata: PersistMetadata, config: PersistOptionsLocal): Promise<any> | void;
|
|
179
212
|
deleteMetadata(table: string, config: PersistOptionsLocal): Promise<any> | void;
|
|
180
|
-
loadTable?(table: string, config: PersistOptionsLocal): Promise<any> | void;
|
|
181
213
|
}
|
|
182
|
-
export interface
|
|
183
|
-
|
|
214
|
+
export interface ObservablePersistRemoteSetParams<T> {
|
|
215
|
+
syncState: Observable<ObservablePersistState>;
|
|
184
216
|
obs: Observable<T>;
|
|
185
217
|
options: PersistOptions<T>;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
valueAtPath: T2;
|
|
189
|
-
prevAtPath: any;
|
|
218
|
+
changes: Change[];
|
|
219
|
+
value: T;
|
|
190
220
|
}
|
|
191
|
-
export interface
|
|
192
|
-
state: Observable<ObservablePersistState>;
|
|
221
|
+
export interface ObservablePersistRemoteGetParams<T, TState = {}> {
|
|
222
|
+
state: Observable<ObservablePersistState & TState>;
|
|
193
223
|
obs: ObservableReadable<T>;
|
|
194
|
-
options: PersistOptions<T>;
|
|
224
|
+
options: PersistOptions<T, TState>;
|
|
195
225
|
dateModified?: number;
|
|
196
|
-
|
|
226
|
+
onGet: () => void;
|
|
197
227
|
onChange: (params: {
|
|
198
|
-
value:
|
|
199
|
-
path
|
|
200
|
-
pathTypes
|
|
201
|
-
mode
|
|
202
|
-
dateModified
|
|
228
|
+
value: unknown;
|
|
229
|
+
path?: string[];
|
|
230
|
+
pathTypes?: TypeAtPath[];
|
|
231
|
+
mode?: 'assign' | 'set' | 'dateModified';
|
|
232
|
+
dateModified?: number | undefined;
|
|
203
233
|
}) => void | Promise<void>;
|
|
204
234
|
}
|
|
205
|
-
export interface
|
|
206
|
-
|
|
235
|
+
export interface ObservablePersistRemoteClass<TState = {}> {
|
|
236
|
+
get<T>(params: ObservablePersistRemoteGetParams<T, TState>): void;
|
|
237
|
+
set?<T>(params: ObservablePersistRemoteSetParams<T>): Promise<void | {
|
|
207
238
|
changes?: object;
|
|
208
239
|
dateModified?: number;
|
|
240
|
+
pathStrs?: string[];
|
|
241
|
+
}>;
|
|
242
|
+
}
|
|
243
|
+
export interface ObservablePersistRemoteFunctions<T = any, TState = {}> {
|
|
244
|
+
get(params: ObservablePersistRemoteGetParams<T, TState>): T | Promise<T>;
|
|
245
|
+
set?(params: ObservablePersistRemoteSetParams<T>): Promise<void | {
|
|
246
|
+
changes?: object | undefined;
|
|
247
|
+
dateModified?: number;
|
|
209
248
|
}>;
|
|
210
|
-
listen<T>(params: ObservablePersistRemoteListenParams<T>): void;
|
|
211
249
|
}
|
|
212
250
|
export interface ObservablePersistState {
|
|
213
251
|
isLoadedLocal: boolean;
|
|
@@ -255,7 +293,7 @@ export type ObservableListenerDispose = () => void;
|
|
|
255
293
|
export interface ObservableRoot {
|
|
256
294
|
_: any;
|
|
257
295
|
locked?: boolean;
|
|
258
|
-
|
|
296
|
+
toActivate?: NodeValue[];
|
|
259
297
|
set?: (value: any) => void;
|
|
260
298
|
activate?: () => void;
|
|
261
299
|
}
|
|
@@ -288,11 +326,9 @@ export interface NodeValueListener {
|
|
|
288
326
|
interface BaseNodeValue {
|
|
289
327
|
children?: Map<string, ChildNodeValue>;
|
|
290
328
|
proxy?: object;
|
|
291
|
-
isActivatedPrimitive?: boolean;
|
|
292
329
|
root: ObservableRoot;
|
|
293
330
|
listeners?: Set<NodeValueListener>;
|
|
294
331
|
listenersImmediate?: Set<NodeValueListener>;
|
|
295
|
-
descendantHasListener?: boolean;
|
|
296
332
|
isComputed?: boolean;
|
|
297
333
|
proxyFn?: (key: string) => ObservableReadable;
|
|
298
334
|
isEvent?: boolean;
|
|
@@ -300,7 +336,7 @@ interface BaseNodeValue {
|
|
|
300
336
|
linkedFromNodes?: Set<NodeValue>;
|
|
301
337
|
isSetting?: number;
|
|
302
338
|
isAssigning?: number;
|
|
303
|
-
|
|
339
|
+
parentOther?: NodeValue;
|
|
304
340
|
functions?: Map<string, Function | ObservableComputed<any>>;
|
|
305
341
|
}
|
|
306
342
|
export interface RootNodeValue extends BaseNodeValue {
|
|
@@ -326,22 +362,6 @@ export interface ObserveEventCallback<T> {
|
|
|
326
362
|
onCleanup?: () => void;
|
|
327
363
|
onCleanupReaction?: () => void;
|
|
328
364
|
}
|
|
329
|
-
export interface ObservablePersistenceConfigLocalOptions {
|
|
330
|
-
onLoadError?: (error: Error) => void;
|
|
331
|
-
onSaveError?: (error: Error) => void;
|
|
332
|
-
indexedDB?: {
|
|
333
|
-
databaseName: string;
|
|
334
|
-
version: number;
|
|
335
|
-
tableNames: string[];
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
export interface ObservablePersistenceConfig {
|
|
339
|
-
persistLocal?: ClassConstructor<ObservablePersistLocal>;
|
|
340
|
-
persistRemote?: ClassConstructor<ObservablePersistRemote>;
|
|
341
|
-
persistLocalOptions?: ObservablePersistenceConfigLocalOptions;
|
|
342
|
-
saveTimeout?: number;
|
|
343
|
-
dateModifiedKey?: string;
|
|
344
|
-
}
|
|
345
365
|
export type ObservableProxy<T extends Record<string, any>> = {
|
|
346
366
|
[K in keyof T]: ObservableComputed<T[K]>;
|
|
347
367
|
} & ObservableBaseFns<T> & {
|
|
@@ -357,4 +377,8 @@ export type ObservableProxyTwoWay<T extends Record<string, any>, T2> = {
|
|
|
357
377
|
} & ObservableBaseFns<T> & {
|
|
358
378
|
[symbolGetNode]: NodeValue;
|
|
359
379
|
};
|
|
380
|
+
export type PromiseInfo = {
|
|
381
|
+
error?: any;
|
|
382
|
+
status?: 'pending' | 'rejected';
|
|
383
|
+
};
|
|
360
384
|
export {};
|
package/src/observe.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export interface ObserveOptions {
|
|
|
4
4
|
retainObservable?: boolean;
|
|
5
5
|
}
|
|
6
6
|
export declare function observe<T>(run: (e: ObserveEvent<T>) => T | void, options?: ObserveOptions): () => void;
|
|
7
|
-
export declare function observe<T>(selector: Selector<T
|
|
7
|
+
export declare function observe<T>(selector: Selector<T> | ((e: ObserveEvent<T>) => any), reaction?: (e: ObserveEventCallback<T>) => any, options?: ObserveOptions): () => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { ObservablePersistRemoteClass, ObservablePersistRemoteFunctions } from '@legendapp/state';
|
|
2
|
+
export declare function observablePersistRemoteFunctionsAdapter<T = {}, TState = {}>({ get, set, }: ObservablePersistRemoteFunctions<T, TState>): ObservablePersistRemoteClass;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type { ClassConstructor, FieldTransforms, Observable, ObservableObject, ObservablePersistLocal,
|
|
2
|
-
export declare const mapPersistences: WeakMap<ClassConstructor<ObservablePersistLocal |
|
|
3
|
-
persist: ObservablePersistLocal |
|
|
1
|
+
import type { ClassConstructor, FieldTransforms, Observable, ObservableObject, ObservablePersistLocal, ObservablePersistRemoteClass, ObservablePersistState, ObservableWriteable, PersistOptions, PersistTransform, TypeAtPath } from '@legendapp/state';
|
|
2
|
+
export declare const mapPersistences: WeakMap<ClassConstructor<ObservablePersistLocal | ObservablePersistRemoteClass>, {
|
|
3
|
+
persist: ObservablePersistLocal | ObservablePersistRemoteClass;
|
|
4
4
|
initialized?: Observable<boolean>;
|
|
5
5
|
}>;
|
|
6
6
|
export declare const persistState: ObservableObject<{
|
|
7
7
|
inRemoteSync: boolean;
|
|
8
8
|
}>;
|
|
9
|
-
export declare function
|
|
10
|
-
|
|
11
|
-
save?: (value: any) => any;
|
|
12
|
-
};
|
|
9
|
+
export declare function transformOutData(value: any, path: string[], pathTypes: TypeAtPath[], { transform, fieldTransforms }: {
|
|
10
|
+
transform?: PersistTransform;
|
|
13
11
|
fieldTransforms?: FieldTransforms<any>;
|
|
14
12
|
}): {
|
|
15
13
|
value: any;
|
|
@@ -18,11 +16,10 @@ export declare function adjustSaveData(value: any, path: string[], pathTypes: Ty
|
|
|
18
16
|
value: any;
|
|
19
17
|
path: string[];
|
|
20
18
|
}>;
|
|
21
|
-
export declare function
|
|
19
|
+
export declare function transformLoadData(value: any, { transform, fieldTransforms }: {
|
|
22
20
|
fieldTransforms?: FieldTransforms<any>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
}, doUserAdjustData: boolean): Promise<any> | any;
|
|
21
|
+
transform?: PersistTransform;
|
|
22
|
+
}, doUserTransform: boolean): Promise<any> | any;
|
|
27
23
|
export declare function onChangeRemote(cb: () => void): void;
|
|
28
|
-
export declare function persistObservable<T>(
|
|
24
|
+
export declare function persistObservable<T, TState = {}>(observable: ObservableWriteable<T>, persistOptions: PersistOptions<T, TState>): [Observable<T>, ObservableObject<ObservablePersistState & TState>];
|
|
25
|
+
export declare function persistObservable<T, TState = {}>(initial: T | (() => T) | (() => Promise<T>), persistOptions: PersistOptions<T, TState>): [Observable<T>, ObservableObject<ObservablePersistState & TState>];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Change, ObservablePersistLocal, ObservablePersistenceConfigLocalGlobalOptions, PersistMetadata } from '@legendapp/state';
|
|
2
|
+
export declare class ObservablePersistAsyncStorage implements ObservablePersistLocal {
|
|
3
|
+
private data;
|
|
4
|
+
initialize(config: ObservablePersistenceConfigLocalGlobalOptions): Promise<void>;
|
|
5
|
+
loadTable(table: string): void | Promise<void>;
|
|
6
|
+
getTable(table: string): any;
|
|
7
|
+
getMetadata(table: string): PersistMetadata;
|
|
8
|
+
set(table: string, changes: Change[]): Promise<void>;
|
|
9
|
+
setMetadata(table: string, metadata: PersistMetadata): Promise<void>;
|
|
10
|
+
deleteTable(table: string): Promise<void>;
|
|
11
|
+
deleteMetadata(table: string): Promise<void>;
|
|
12
|
+
private setValue;
|
|
13
|
+
private save;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ObservablePersistRemoteFunctions } from '@legendapp/state';
|
|
2
|
+
interface PersistFetchProps {
|
|
3
|
+
get: string | RequestInfo;
|
|
4
|
+
set?: string | RequestInfo;
|
|
5
|
+
getInit?: RequestInit;
|
|
6
|
+
setInit?: RequestInit;
|
|
7
|
+
valueType?: 'arrayBuffer' | 'blob' | 'formData' | 'json' | 'text';
|
|
8
|
+
}
|
|
9
|
+
export declare function persistPluginFetch({ get, set, getInit, setInit, valueType, }: PersistFetchProps): ObservablePersistRemoteFunctions;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ObservablePersistRemoteClass, ObservablePersistRemoteGetParams, ObservablePersistRemoteSetParams } from '@legendapp/state';
|
|
2
|
+
import { type User } from 'firebase/auth';
|
|
3
|
+
import type { DataSnapshot } from 'firebase/database';
|
|
4
|
+
import { DatabaseReference } from 'firebase/database';
|
|
5
|
+
interface FirebaseFns {
|
|
6
|
+
isInitialized: () => boolean;
|
|
7
|
+
getCurrentUser: () => string | undefined;
|
|
8
|
+
ref: (path: string) => DatabaseReference;
|
|
9
|
+
orderByChild: (ref: any, child: string, startAt: number) => any;
|
|
10
|
+
once: (query: any, callback: (snapshot: DataSnapshot) => unknown, onError: (error: Error) => void) => () => void;
|
|
11
|
+
onChildAdded: (query: any, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown) => () => void;
|
|
12
|
+
onChildChanged: (query: any, callback: (snapshot: DataSnapshot) => unknown, cancelCallback?: (error: Error) => unknown) => () => void;
|
|
13
|
+
serverTimestamp: () => any;
|
|
14
|
+
update: (object: object) => Promise<void>;
|
|
15
|
+
onAuthStateChanged: (cb: (user: User | null) => void) => void;
|
|
16
|
+
}
|
|
17
|
+
declare class ObservablePersistFirebaseBase implements ObservablePersistRemoteClass {
|
|
18
|
+
protected _batch: Record<string, any>;
|
|
19
|
+
protected fns: FirebaseFns;
|
|
20
|
+
private _pathsLoadStatus;
|
|
21
|
+
private SaveTimeout;
|
|
22
|
+
private user;
|
|
23
|
+
private listenErrors;
|
|
24
|
+
private saveStates;
|
|
25
|
+
constructor(fns: FirebaseFns);
|
|
26
|
+
get<T>(params: ObservablePersistRemoteGetParams<T>): Promise<void>;
|
|
27
|
+
private iterateListen;
|
|
28
|
+
private retryListens;
|
|
29
|
+
private _listen;
|
|
30
|
+
private _updatePendingSave;
|
|
31
|
+
set<T>({ options, changes, obs }: ObservablePersistRemoteSetParams<T>): Promise<{
|
|
32
|
+
changes?: object;
|
|
33
|
+
dateModified?: number;
|
|
34
|
+
pathStrs?: string[];
|
|
35
|
+
} | undefined>;
|
|
36
|
+
private _constructBatch;
|
|
37
|
+
private _constructBatchesForSave;
|
|
38
|
+
private _onTimeoutSave;
|
|
39
|
+
private _saveBatch;
|
|
40
|
+
private _convertFBTimestamps;
|
|
41
|
+
private _onceValue;
|
|
42
|
+
private _onChange;
|
|
43
|
+
private insertDateToObject;
|
|
44
|
+
private insertDatesToSaveObject;
|
|
45
|
+
private insertDatesToSave;
|
|
46
|
+
private addValuesToPendingSaves;
|
|
47
|
+
}
|
|
48
|
+
export declare class ObservablePersistFirebase extends ObservablePersistFirebaseBase {
|
|
49
|
+
constructor();
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -8,12 +8,11 @@ export declare class ObservablePersistIndexedDB implements ObservablePersistLoca
|
|
|
8
8
|
private pendingSaves;
|
|
9
9
|
private promisesQueued;
|
|
10
10
|
constructor();
|
|
11
|
-
initialize(config: ObservablePersistenceConfig['
|
|
11
|
+
initialize(config: ObservablePersistenceConfig['localOptions']): Promise<void>;
|
|
12
12
|
loadTable(table: string, config: PersistOptionsLocal): void | Promise<void>;
|
|
13
13
|
getTable(table: string, config: PersistOptionsLocal): any;
|
|
14
|
-
getTableTransformed<T = any>(table: string, config: PersistOptionsLocal<any>): T;
|
|
15
14
|
getMetadata(table: string, config: PersistOptionsLocal): any;
|
|
16
|
-
|
|
15
|
+
setMetadata(table: string, metadata: PersistMetadata, config: PersistOptionsLocal): Promise<IDBRequest<IDBValidKey>>;
|
|
17
16
|
deleteMetadata(table: string, config: PersistOptionsLocal): Promise<void>;
|
|
18
17
|
set(table: string, changes: Change[], config: PersistOptionsLocal): Promise<void>;
|
|
19
18
|
private doSave;
|
|
@@ -5,9 +5,8 @@ declare class ObservablePersistLocalStorageBase implements ObservablePersistLoca
|
|
|
5
5
|
constructor(storage: Storage | undefined);
|
|
6
6
|
getTable(table: string): any;
|
|
7
7
|
getMetadata(table: string): PersistMetadata;
|
|
8
|
-
get(table: string, id: string): any;
|
|
9
8
|
set(table: string, changes: Change[]): void;
|
|
10
|
-
|
|
9
|
+
setMetadata(table: string, metadata: PersistMetadata): void;
|
|
11
10
|
deleteTable(table: string): undefined;
|
|
12
11
|
deleteMetadata(table: string): void;
|
|
13
12
|
private setValue;
|
|
@@ -4,10 +4,10 @@ export declare class ObservablePersistMMKV implements ObservablePersistLocal {
|
|
|
4
4
|
private storages;
|
|
5
5
|
getTable<T = any>(table: string, config: PersistOptionsLocal): T;
|
|
6
6
|
getMetadata(table: string, config: PersistOptionsLocal): PersistMetadata;
|
|
7
|
-
set(table: string, changes: Change[], config: PersistOptionsLocal):
|
|
8
|
-
|
|
9
|
-
deleteTable(table: string, config: PersistOptionsLocal):
|
|
10
|
-
deleteMetadata(table: string, config: PersistOptionsLocal):
|
|
7
|
+
set(table: string, changes: Change[], config: PersistOptionsLocal): void;
|
|
8
|
+
setMetadata(table: string, metadata: PersistMetadata, config: PersistOptionsLocal): Promise<void>;
|
|
9
|
+
deleteTable(table: string, config: PersistOptionsLocal): void;
|
|
10
|
+
deleteMetadata(table: string, config: PersistOptionsLocal): void;
|
|
11
11
|
private getStorage;
|
|
12
12
|
private setValue;
|
|
13
13
|
private save;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ObservablePersistRemoteFunctions } from '@legendapp/state';
|
|
2
|
+
import { QueryClient, QueryKey, UseBaseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
|
|
3
|
+
type ObservableQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey> = Omit<UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'queryKey'> & {
|
|
4
|
+
queryKey?: TQueryKey | (() => TQueryKey);
|
|
5
|
+
};
|
|
6
|
+
type Params<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey> = {
|
|
7
|
+
query: ObservableQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
8
|
+
mutation?: UseMutationOptions<TData, TError, void>;
|
|
9
|
+
type?: 'Query' | 'Infinite';
|
|
10
|
+
} & ({
|
|
11
|
+
queryClient: QueryClient;
|
|
12
|
+
useContext?: false | undefined | never;
|
|
13
|
+
} | {
|
|
14
|
+
queryClient?: QueryClient;
|
|
15
|
+
useContext?: true;
|
|
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
|
+
}>;
|
|
20
|
+
export {};
|
package/src/react/For.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Observable, ObservableReadable } from '@legendapp/state';
|
|
2
2
|
import { FC, ReactElement } from 'react';
|
|
3
|
-
export declare function For<T, TProps>({ each,
|
|
3
|
+
export declare function For<T, TProps>({ each, optimized: isOptimized, item, itemProps, sortValues, children, }: {
|
|
4
4
|
each?: ObservableReadable<T[] | Record<any, T> | Map<any, T>>;
|
|
5
5
|
eachValues?: ObservableReadable<Record<any, T> | Map<any, T>>;
|
|
6
6
|
optimized?: boolean;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { Selector } from '@legendapp/state';
|
|
2
2
|
import { FC } from 'react';
|
|
3
3
|
import type { BindKeys } from './reactInterfaces';
|
|
4
|
-
type
|
|
5
|
-
[K in T2 as K extends `${string & K}$` ? K : `${string & K}$`]?: Selector<T[K]>;
|
|
6
|
-
};
|
|
7
|
-
export type ShapeWith$<T, T2 extends keyof T = keyof T> = Partial<T> & ShapeWithOld$<T, T2> & {
|
|
4
|
+
export type ShapeWith$<T, T2 extends keyof T = keyof T> = Partial<T> & {
|
|
8
5
|
[K in T2 as K extends `$${string & K}` ? K : `$${string & K}`]?: Selector<T[K]>;
|
|
9
6
|
};
|
|
10
7
|
export type ObjectShapeWith$<T> = {
|
|
@@ -15,4 +12,3 @@ export declare function observer<P = object>(component: FC<P>): FC<P>;
|
|
|
15
12
|
export declare function reactive<P = object, P2 extends keyof P = keyof P>(component: FC<P>, bindKeys?: BindKeys<P>): FC<ShapeWith$<P, P2>>;
|
|
16
13
|
export declare function reactiveObserver<P = object>(component: FC<P>, bindKeys?: BindKeys<P>): FC<ShapeWith$<P, keyof P>>;
|
|
17
14
|
export declare function reactiveComponents<P extends Record<string, FC>>(components: P): ObjectShapeWith$<P>;
|
|
18
|
-
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Selector } from '@legendapp/state';
|
|
2
|
+
export declare function useWhen<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<T>;
|
|
3
|
+
export declare function useWhenReady<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<T>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Observable, PersistOptions } from '@legendapp/state';
|
|
1
|
+
import { Observable, ObservableObject, ObservablePersistState, PersistOptions } 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, PersistOptions } from '@legendapp/state';
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://www.legendapp.com/dev/state/react/#useObservable
|
|
9
9
|
*/
|
|
10
|
-
export declare function usePersistedObservable<T>(initialValue
|
|
10
|
+
export declare function usePersistedObservable<T>(initialValue: T | (() => T) | (() => Promise<T>), options: PersistOptions<T>): [Observable<T>, ObservableObject<ObservablePersistState>];
|
package/src/trackSelector.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ObservableListenerDispose, ObserveEvent, Selector } from './observableInterfaces';
|
|
2
2
|
import type { ObserveOptions } from './observe';
|
|
3
|
-
export declare function trackSelector<T>(selector: Selector<T>, update: () => void, observeEvent?: ObserveEvent<T>, observeOptions?: ObserveOptions, createResubscribe?: boolean
|
|
3
|
+
export declare function trackSelector<T>(selector: Selector<T>, update: () => void, observeEvent?: ObserveEvent<T>, observeOptions?: ObserveOptions, createResubscribe?: boolean): {
|
|
4
4
|
value: any;
|
|
5
5
|
dispose: ObservableListenerDispose | undefined;
|
|
6
6
|
resubscribe: ObservableListenerDispose | undefined;
|
package/src/tracking.d.ts
CHANGED
|
@@ -6,9 +6,8 @@ interface TrackingState {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const tracking: {
|
|
8
8
|
current: TrackingState | undefined;
|
|
9
|
-
inRender: boolean | undefined;
|
|
10
9
|
};
|
|
11
|
-
export declare function beginTracking(
|
|
12
|
-
export declare function endTracking(
|
|
10
|
+
export declare function beginTracking(): void;
|
|
11
|
+
export declare function endTracking(): void;
|
|
13
12
|
export declare function updateTracking(node: NodeValue, track?: TrackingType): void;
|
|
14
13
|
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function disableDeprecationWarnings(): void;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var state = require('@legendapp/state');
|
|
4
|
-
|
|
5
|
-
function disableDeprecationWarnings() {
|
|
6
|
-
state.internal.globalState.noDepWarn = true;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
exports.disableDeprecationWarnings = disableDeprecationWarnings;
|
|
10
|
-
//# sourceMappingURL=disableDeprecationWarnings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableDeprecationWarnings.js","sources":["../../../../src/config/disableDeprecationWarnings.ts"],"sourcesContent":[null],"names":["internal"],"mappings":";;;;SAEgB,0BAA0B,GAAA;AACtC,IAAAA,cAAQ,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1C;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableDeprecationWarnings.mjs","sources":["../../../../src/config/disableDeprecationWarnings.ts"],"sourcesContent":[null],"names":[],"mappings":";;SAEgB,0BAA0B,GAAA;AACtC,IAAA,QAAQ,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1C;;;;"}
|