@legendapp/state 3.0.0-beta.33 → 3.0.0-beta.34

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/index.d.mts CHANGED
@@ -3,7 +3,7 @@ type ArrayOverrideFnNames = 'find' | 'findIndex' | 'every' | 'some' | 'filter' |
3
3
  type RemoveIndex<T> = {
4
4
  [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
5
5
  };
6
- type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any> | OpaqueObject<any>;
6
+ type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any>;
7
7
  type IsUserDefinedObject<T> = T extends Function | BuiltIns | any[] ? false : T extends object ? true : false;
8
8
  type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : T extends ImmutableObservableBase<infer t>[] ? t[] : IsUserDefinedObject<T> extends true ? {
9
9
  [K in keyof T]: RemoveObservables<T[K]>;
package/index.d.ts CHANGED
@@ -3,7 +3,7 @@ type ArrayOverrideFnNames = 'find' | 'findIndex' | 'every' | 'some' | 'filter' |
3
3
  type RemoveIndex<T> = {
4
4
  [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
5
5
  };
6
- type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any> | OpaqueObject<any>;
6
+ type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any>;
7
7
  type IsUserDefinedObject<T> = T extends Function | BuiltIns | any[] ? false : T extends object ? true : false;
8
8
  type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : T extends ImmutableObservableBase<infer t>[] ? t[] : IsUserDefinedObject<T> extends true ? {
9
9
  [K in keyof T]: RemoveObservables<T[K]>;
package/index.js CHANGED
@@ -2435,13 +2435,10 @@ function syncState(obs) {
2435
2435
  syncCount: 0,
2436
2436
  resetPersistence: void 0,
2437
2437
  reset: () => Promise.resolve(),
2438
- sync: (options) => {
2439
- var _a, _b;
2440
- if (options == null ? void 0 : options.resetLastSync) {
2441
- (_a = node.state) == null ? void 0 : _a.lastSync.set(void 0);
2442
- }
2438
+ sync: () => {
2439
+ var _a;
2443
2440
  obs.peek();
2444
- if ((_b = node.state) == null ? void 0 : _b.isGetting.peek()) {
2441
+ if ((_a = node.state) == null ? void 0 : _a.isGetting.peek()) {
2445
2442
  return when(node.state.isLoaded);
2446
2443
  }
2447
2444
  return Promise.resolve();
package/index.mjs CHANGED
@@ -2433,13 +2433,10 @@ function syncState(obs) {
2433
2433
  syncCount: 0,
2434
2434
  resetPersistence: void 0,
2435
2435
  reset: () => Promise.resolve(),
2436
- sync: (options) => {
2437
- var _a, _b;
2438
- if (options == null ? void 0 : options.resetLastSync) {
2439
- (_a = node.state) == null ? void 0 : _a.lastSync.set(void 0);
2440
- }
2436
+ sync: () => {
2437
+ var _a;
2441
2438
  obs.peek();
2442
- if ((_b = node.state) == null ? void 0 : _b.isGetting.peek()) {
2439
+ if ((_a = node.state) == null ? void 0 : _a.isGetting.peek()) {
2443
2440
  return when(node.state.isLoaded);
2444
2441
  }
2445
2442
  return Promise.resolve();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/state",
3
- "version": "3.0.0-beta.33",
3
+ "version": "3.0.0-beta.34",
4
4
  "description": "legend-state",
5
5
  "sideEffects": false,
6
6
  "private": false,
package/sync.d.mts CHANGED
@@ -211,6 +211,7 @@ declare const mapSyncPlugins: WeakMap<ClassConstructor<ObservablePersistPlugin>
211
211
  declare function onChangeRemote(cb: () => void): void;
212
212
  declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: SyncedOptions<T>): Observable<ObservableSyncState>;
213
213
  declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: Synced<T>): Observable<ObservableSyncState>;
214
+ declare function getAllSyncStates(): readonly [Observable<ObservableSyncState>, NodeInfo][];
214
215
 
215
216
  declare function synced<TRemote, TLocal = TRemote>(params: SyncedOptions<TRemote, TLocal> | (() => TRemote)): Synced<TLocal>;
216
217
 
@@ -230,4 +231,4 @@ declare const internal: {
230
231
  runWithRetry: typeof runWithRetry;
231
232
  };
232
233
 
233
- export { type FieldTransforms, type FieldTransformsInner, type ObservablePersistAsyncStoragePluginOptions, type ObservablePersistIndexedDBPluginOptions, type ObservablePersistPlugin, type ObservablePersistPluginOptions, type ObservableSyncFunctions, type ObservableSyncSetParams, type OnErrorRetryParams, type PendingChanges, type PersistMetadata, type PersistOptions, type QueryByModified, type StringToDate, type SubscribeOptions, type SyncTransform, type SyncTransformMethod, type Synced, type SyncedErrorParams, type SyncedGetParams, type SyncedGetSetBaseParams, type SyncedGetSetSubscribeBaseParams, type SyncedOptions, type SyncedOptionsGlobal, type SyncedSetParams, type SyncedSubscribeParams, type TransformStringifyKeys, type TransformStringifyOptions, type TransformStringsToDates, combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, internal, mapSyncPlugins, onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
234
+ export { type FieldTransforms, type FieldTransformsInner, type ObservablePersistAsyncStoragePluginOptions, type ObservablePersistIndexedDBPluginOptions, type ObservablePersistPlugin, type ObservablePersistPluginOptions, type ObservableSyncFunctions, type ObservableSyncSetParams, type OnErrorRetryParams, type PendingChanges, type PersistMetadata, type PersistOptions, type QueryByModified, type StringToDate, type SubscribeOptions, type SyncTransform, type SyncTransformMethod, type Synced, type SyncedErrorParams, type SyncedGetParams, type SyncedGetSetBaseParams, type SyncedGetSetSubscribeBaseParams, type SyncedOptions, type SyncedOptionsGlobal, type SyncedSetParams, type SyncedSubscribeParams, type TransformStringifyKeys, type TransformStringifyOptions, type TransformStringsToDates, combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, getAllSyncStates, internal, mapSyncPlugins, onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
package/sync.d.ts CHANGED
@@ -211,6 +211,7 @@ declare const mapSyncPlugins: WeakMap<ClassConstructor<ObservablePersistPlugin>
211
211
  declare function onChangeRemote(cb: () => void): void;
212
212
  declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: SyncedOptions<T>): Observable<ObservableSyncState>;
213
213
  declare function syncObservable<T>(obs$: ObservableParam<T>, syncOptions: Synced<T>): Observable<ObservableSyncState>;
214
+ declare function getAllSyncStates(): readonly [Observable<ObservableSyncState>, NodeInfo][];
214
215
 
215
216
  declare function synced<TRemote, TLocal = TRemote>(params: SyncedOptions<TRemote, TLocal> | (() => TRemote)): Synced<TLocal>;
216
217
 
@@ -230,4 +231,4 @@ declare const internal: {
230
231
  runWithRetry: typeof runWithRetry;
231
232
  };
232
233
 
233
- export { type FieldTransforms, type FieldTransformsInner, type ObservablePersistAsyncStoragePluginOptions, type ObservablePersistIndexedDBPluginOptions, type ObservablePersistPlugin, type ObservablePersistPluginOptions, type ObservableSyncFunctions, type ObservableSyncSetParams, type OnErrorRetryParams, type PendingChanges, type PersistMetadata, type PersistOptions, type QueryByModified, type StringToDate, type SubscribeOptions, type SyncTransform, type SyncTransformMethod, type Synced, type SyncedErrorParams, type SyncedGetParams, type SyncedGetSetBaseParams, type SyncedGetSetSubscribeBaseParams, type SyncedOptions, type SyncedOptionsGlobal, type SyncedSetParams, type SyncedSubscribeParams, type TransformStringifyKeys, type TransformStringifyOptions, type TransformStringsToDates, combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, internal, mapSyncPlugins, onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
234
+ export { type FieldTransforms, type FieldTransformsInner, type ObservablePersistAsyncStoragePluginOptions, type ObservablePersistIndexedDBPluginOptions, type ObservablePersistPlugin, type ObservablePersistPluginOptions, type ObservableSyncFunctions, type ObservableSyncSetParams, type OnErrorRetryParams, type PendingChanges, type PersistMetadata, type PersistOptions, type QueryByModified, type StringToDate, type SubscribeOptions, type SyncTransform, type SyncTransformMethod, type Synced, type SyncedErrorParams, type SyncedGetParams, type SyncedGetSetBaseParams, type SyncedGetSetSubscribeBaseParams, type SyncedOptions, type SyncedOptionsGlobal, type SyncedSetParams, type SyncedSubscribeParams, type TransformStringifyKeys, type TransformStringifyOptions, type TransformStringsToDates, combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, getAllSyncStates, internal, mapSyncPlugins, onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
package/sync.js CHANGED
@@ -243,7 +243,8 @@ var {
243
243
  getValueAtPath,
244
244
  globalState,
245
245
  registerMiddleware,
246
- symbolLinked
246
+ symbolLinked,
247
+ setNodeValue
247
248
  } = state.internal;
248
249
  var mapSyncPlugins = /* @__PURE__ */ new WeakMap();
249
250
  var allSyncStates = /* @__PURE__ */ new Map();
@@ -955,6 +956,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
955
956
  const runGet = () => {
956
957
  var _a;
957
958
  const onChange = async ({ value, mode, lastSync: lastSync2 }) => {
959
+ var _a2;
958
960
  mode = mode || syncOptions.mode || "set";
959
961
  if (value !== void 0) {
960
962
  value = transformLoadData(value, syncOptions, true, "get");
@@ -1011,6 +1013,9 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1011
1013
  });
1012
1014
  }
1013
1015
  }
1016
+ if (options == null ? void 0 : options.resetLastSync) {
1017
+ setNodeValue(node, (_a2 = syncOptions.initial) != null ? _a2 : void 0);
1018
+ }
1014
1019
  onChangeRemote2(() => {
1015
1020
  if (state.isPlainObject(value)) {
1016
1021
  value = state.ObservableHint.plain(value);
@@ -1232,6 +1237,14 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1232
1237
  node.dirtyFn = sync;
1233
1238
  await promise;
1234
1239
  };
1240
+ syncState$.lastSync.onChange(({ value }) => {
1241
+ const metadata = metadatas.get(obs$);
1242
+ if (metadata && metadata.lastSync !== value) {
1243
+ updateMetadataImmediate(obs$, localState, syncState$, syncOptions, {
1244
+ lastSync: value
1245
+ });
1246
+ }
1247
+ });
1235
1248
  const onAllPersistLoaded = () => {
1236
1249
  var _a, _b;
1237
1250
  let parentNode = node;
@@ -1255,7 +1268,10 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1255
1268
  });
1256
1269
  return syncState$;
1257
1270
  }
1258
- var { getProxy, globalState: globalState2, setNodeValue, getNodeValue: getNodeValue2 } = state.internal;
1271
+ function getAllSyncStates() {
1272
+ return Array.from(allSyncStates.entries());
1273
+ }
1274
+ var { getProxy, globalState: globalState2, setNodeValue: setNodeValue2, getNodeValue: getNodeValue2 } = state.internal;
1259
1275
  function enableActivateSyncedNode() {
1260
1276
  globalState2.activateSyncedNode = function activateSyncedNode(node, newValue) {
1261
1277
  const obs$ = getProxy(node);
@@ -1278,7 +1294,7 @@ function enableActivateSyncedNode() {
1278
1294
  } else {
1279
1295
  newValue = initial;
1280
1296
  }
1281
- setNodeValue(node, promiseReturn ? void 0 : newValue);
1297
+ setNodeValue2(node, promiseReturn ? void 0 : newValue);
1282
1298
  syncObservable(obs$, { ...node.activationState, get, set });
1283
1299
  return { update: onChange, value: newValue };
1284
1300
  } else {
@@ -1339,6 +1355,7 @@ exports.configureSynced = configureSynced;
1339
1355
  exports.createRevertChanges = createRevertChanges;
1340
1356
  exports.deepEqual = deepEqual;
1341
1357
  exports.diffObjects = diffObjects;
1358
+ exports.getAllSyncStates = getAllSyncStates;
1342
1359
  exports.internal = internal5;
1343
1360
  exports.mapSyncPlugins = mapSyncPlugins;
1344
1361
  exports.onChangeRemote = onChangeRemote2;
package/sync.mjs CHANGED
@@ -241,7 +241,8 @@ var {
241
241
  getValueAtPath,
242
242
  globalState,
243
243
  registerMiddleware,
244
- symbolLinked
244
+ symbolLinked,
245
+ setNodeValue
245
246
  } = internal;
246
247
  var mapSyncPlugins = /* @__PURE__ */ new WeakMap();
247
248
  var allSyncStates = /* @__PURE__ */ new Map();
@@ -953,6 +954,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
953
954
  const runGet = () => {
954
955
  var _a;
955
956
  const onChange = async ({ value, mode, lastSync: lastSync2 }) => {
957
+ var _a2;
956
958
  mode = mode || syncOptions.mode || "set";
957
959
  if (value !== void 0) {
958
960
  value = transformLoadData(value, syncOptions, true, "get");
@@ -1009,6 +1011,9 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1009
1011
  });
1010
1012
  }
1011
1013
  }
1014
+ if (options == null ? void 0 : options.resetLastSync) {
1015
+ setNodeValue(node, (_a2 = syncOptions.initial) != null ? _a2 : void 0);
1016
+ }
1012
1017
  onChangeRemote2(() => {
1013
1018
  if (isPlainObject(value)) {
1014
1019
  value = ObservableHint.plain(value);
@@ -1230,6 +1235,14 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1230
1235
  node.dirtyFn = sync;
1231
1236
  await promise;
1232
1237
  };
1238
+ syncState$.lastSync.onChange(({ value }) => {
1239
+ const metadata = metadatas.get(obs$);
1240
+ if (metadata && metadata.lastSync !== value) {
1241
+ updateMetadataImmediate(obs$, localState, syncState$, syncOptions, {
1242
+ lastSync: value
1243
+ });
1244
+ }
1245
+ });
1233
1246
  const onAllPersistLoaded = () => {
1234
1247
  var _a, _b;
1235
1248
  let parentNode = node;
@@ -1253,7 +1266,10 @@ function syncObservable(obs$, syncOptionsOrSynced) {
1253
1266
  });
1254
1267
  return syncState$;
1255
1268
  }
1256
- var { getProxy, globalState: globalState2, setNodeValue, getNodeValue: getNodeValue2 } = internal;
1269
+ function getAllSyncStates() {
1270
+ return Array.from(allSyncStates.entries());
1271
+ }
1272
+ var { getProxy, globalState: globalState2, setNodeValue: setNodeValue2, getNodeValue: getNodeValue2 } = internal;
1257
1273
  function enableActivateSyncedNode() {
1258
1274
  globalState2.activateSyncedNode = function activateSyncedNode(node, newValue) {
1259
1275
  const obs$ = getProxy(node);
@@ -1276,7 +1292,7 @@ function enableActivateSyncedNode() {
1276
1292
  } else {
1277
1293
  newValue = initial;
1278
1294
  }
1279
- setNodeValue(node, promiseReturn ? void 0 : newValue);
1295
+ setNodeValue2(node, promiseReturn ? void 0 : newValue);
1280
1296
  syncObservable(obs$, { ...node.activationState, get, set });
1281
1297
  return { update: onChange, value: newValue };
1282
1298
  } else {
@@ -1331,4 +1347,4 @@ var internal5 = {
1331
1347
  runWithRetry
1332
1348
  };
1333
1349
 
1334
- export { combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, internal5 as internal, mapSyncPlugins, onChangeRemote2 as onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };
1350
+ export { combineTransforms, configureObservableSync, configureSynced, createRevertChanges, deepEqual, diffObjects, getAllSyncStates, internal5 as internal, mapSyncPlugins, onChangeRemote2 as onChangeRemote, removeNullUndefined, syncObservable, synced, transformStringifyDates, transformStringifyKeys };