@legendapp/state 2.2.0-next.73 → 2.2.0-next.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var state = require('@legendapp/state');
4
- var persist = require('@legendapp/state/persist');
4
+ var sync = require('@legendapp/state/sync');
5
5
 
6
6
  function syncedFetch({ get, set, getInit, setInit, valueType, onSet, onSetValueType, }) {
7
7
  const ret = {
@@ -17,7 +17,7 @@ function syncedFetch({ get, set, getInit, setInit, valueType, onSet, onSetValueT
17
17
  }
18
18
  };
19
19
  }
20
- return persist.synced(ret);
20
+ return sync.synced(ret);
21
21
  }
22
22
 
23
23
  exports.syncedFetch = syncedFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sources":["../src/sync-plugins/fetch.ts"],"sourcesContent":[null],"names":["isString","synced"],"mappings":";;;;;SAagB,WAAW,CAAI,EAC3B,GAAG,EACH,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,cAAc,GACC,EAAA;AACf,IAAA,MAAM,GAAG,GAAkB;QACvB,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;KACrF,CAAC;IAEF,IAAI,GAAG,EAAE;AACL,QAAA,GAAG,CAAC,GAAG,GAAG,OAAO,MAA4B,KAAI;AAC7C,YAAA,MAAM,WAAW,GAAGA,cAAQ,CAAC,GAAG,CAAC,GAAI,EAAE,GAAG,EAAE,GAAG,EAAkB,GAAG,GAAG,CAAC;AACxE,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtF,OAAO,CACV,CAAC;YACF,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,cAAc,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;gBACjE,KAAK,CAAC,MAAM,CAAC,CAAC;aACjB;AACL,SAAC,CAAC;KACL;AAED,IAAA,OAAOC,cAAM,CAAC,GAAG,CAAC,CAAC;AACvB;;;;"}
1
+ {"version":3,"file":"fetch.js","sources":["../src/sync-plugins/fetch.ts"],"sourcesContent":[null],"names":["isString","synced"],"mappings":";;;;;SAagB,WAAW,CAAI,EAC3B,GAAG,EACH,GAAG,EACH,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,cAAc,GACC,EAAA;AACf,IAAA,MAAM,GAAG,GAAkB;QACvB,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;KACrF,CAAC;IAEF,IAAI,GAAG,EAAE;AACL,QAAA,GAAG,CAAC,GAAG,GAAG,OAAO,MAA4B,KAAI;AAC7C,YAAA,MAAM,WAAW,GAAGA,cAAQ,CAAC,GAAG,CAAC,GAAI,EAAE,GAAG,EAAE,GAAG,EAAkB,GAAG,GAAG,CAAC;AACxE,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACtF,OAAO,CACV,CAAC;YACF,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,cAAc,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;gBACjE,KAAK,CAAC,MAAM,CAAC,CAAC;aACjB;AACL,SAAC,CAAC;KACL;AAED,IAAA,OAAOC,WAAM,CAAC,GAAG,CAAC,CAAC;AACvB;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { isString } from '@legendapp/state';
2
- import { synced } from '@legendapp/state/persist';
2
+ import { synced } from '@legendapp/state/sync';
3
3
 
4
4
  function syncedFetch({ get, set, getInit, setInit, valueType, onSet, onSetValueType, }) {
5
5
  const ret = {
package/sync.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { SyncedOptionsGlobal } from '@legendapp/state';
2
2
  export { configureObservableSync } from './src/sync/configureObservableSync';
3
3
  export { mapSyncPlugins, syncObservable } from './src/sync/syncObservable';
4
4
  export { synced } from './src/sync/synced';
5
+ export { removeNullUndefined, deepEqual, diffObjects } from './src/sync/syncHelpers';
5
6
  export declare function isInRemoteChange(): boolean;
6
7
  export declare const internal: {
7
8
  observableSyncConfiguration: SyncedOptionsGlobal;
package/sync.js CHANGED
@@ -7,19 +7,48 @@ function configureObservableSync(options) {
7
7
  Object.assign(observableSyncConfiguration, options);
8
8
  }
9
9
 
10
- function removeNullUndefined(val) {
11
- if (val) {
12
- Object.keys(val).forEach((key) => {
13
- const v = val[key];
14
- if (v === null || v === undefined) {
15
- delete val[key];
16
- }
17
- else if (state.isObject(v)) {
18
- removeNullUndefined(v);
10
+ function removeNullUndefined(a, recursive) {
11
+ const out = {};
12
+ Object.keys(a).forEach((key) => {
13
+ if (a[key] !== null && a[key] !== undefined) {
14
+ out[key] = recursive && state.isObject(a[key]) ? removeNullUndefined(a[key]) : a[key];
15
+ }
16
+ });
17
+ return out;
18
+ }
19
+ function diffObjects(obj1, obj2, deep = false) {
20
+ const diff = {};
21
+ if (!obj1)
22
+ return obj2 || diff;
23
+ if (!obj2)
24
+ return obj1 || diff;
25
+ const keys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);
26
+ keys.forEach((key) => {
27
+ const o1 = obj1[key];
28
+ const o2 = obj2[key];
29
+ if (deep ? !deepEqual(o1, o2) : o1 !== o2) {
30
+ if (!state.isDate(o1) || !state.isDate(o2) || o1.getTime() !== o2.getTime()) {
31
+ diff[key] = o2;
19
32
  }
20
- });
33
+ }
34
+ });
35
+ return diff;
36
+ }
37
+ function deepEqual(a, b, ignoreFields, nullVsUndefined) {
38
+ if (a === b) {
39
+ return true;
21
40
  }
22
- return val;
41
+ if (state.isNullOrUndefined(a) !== state.isNullOrUndefined(b)) {
42
+ return false;
43
+ }
44
+ if (nullVsUndefined) {
45
+ a = removeNullUndefined(a, /*recursive*/ true);
46
+ b = removeNullUndefined(b, /*recursive*/ true);
47
+ }
48
+ const replacer = ignoreFields
49
+ ? (key, value) => (ignoreFields.includes(key) ? undefined : value)
50
+ : undefined;
51
+ return JSON.stringify(a, replacer) === JSON.stringify(b, replacer);
23
52
  }
24
53
 
25
54
  function syncObservableAdapter({ get, set }) {
@@ -129,7 +158,13 @@ function mergeChanges(changes) {
129
158
  const pathStr = change.path.join('/');
130
159
  const existing = changesByPath.get(pathStr);
131
160
  if (existing) {
132
- existing.valueAtPath = change.valueAtPath;
161
+ // If setting a value back to what it was, no need to save it
162
+ if (change.valueAtPath === existing.prevAtPath) {
163
+ changesOut.splice(changesOut.indexOf(change), 1);
164
+ }
165
+ else {
166
+ existing.valueAtPath = change.valueAtPath;
167
+ }
133
168
  }
134
169
  else {
135
170
  changesByPath.set(pathStr, change);
@@ -147,6 +182,7 @@ function mergeQueuedChanges(allChanges) {
147
182
  for (let i = 0; i < allChanges.length; i++) {
148
183
  const value = allChanges[i];
149
184
  const { obs, changes, inRemoteChange, getPrevious } = value;
185
+ const targetMap = inRemoteChange ? outRemote : outLocal;
150
186
  const changesMap = inRemoteChange ? changesByObsRemote : changesByObsLocal;
151
187
  const existing = changesMap.get(obs);
152
188
  const newChanges = existing ? [...existing, ...changes] : changes;
@@ -157,7 +193,7 @@ function mergeQueuedChanges(allChanges) {
157
193
  previousByObs.set(obs, getPrevious());
158
194
  }
159
195
  value.valuePrevious = previousByObs.get(obs);
160
- (inRemoteChange ? outRemote : outLocal).set(obs, value);
196
+ targetMap.set(obs, value);
161
197
  }
162
198
  return Array.from(outRemote.values()).concat(Array.from(outLocal.values()));
163
199
  }
@@ -382,8 +418,7 @@ async function doChangeLocal(changeInfo) {
382
418
  const { pluginPersist } = localState;
383
419
  const persist = syncOptions.persist;
384
420
  const { table, config: configLocal } = parseLocalConfig(persist);
385
- const configRemote = syncOptions;
386
- const shouldSaveMetadata = persist && (configRemote === null || configRemote === void 0 ? void 0 : configRemote.offlineBehavior) === 'retry';
421
+ const shouldSaveMetadata = persist === null || persist === void 0 ? void 0 : persist.retrySync;
387
422
  if (saveRemote && shouldSaveMetadata) {
388
423
  // First save pending changes before saving local or remote
389
424
  await updateMetadataImmediate(obs, localState, syncState, syncOptions, {
@@ -414,8 +449,8 @@ async function doChangeRemote(changeInfo) {
414
449
  const { pluginPersist, pluginSync } = localState;
415
450
  const persist = syncOptions.persist;
416
451
  const { table, config: configLocal } = parseLocalConfig(persist);
417
- const { offlineBehavior, allowSetIfGetError, onBeforeSet, onSetError, waitForSet, onAfterSet } = syncOptions || {};
418
- const shouldSaveMetadata = persist && offlineBehavior === 'retry';
452
+ const { allowSetIfGetError, onBeforeSet, onSetError, waitForSet, onAfterSet } = syncOptions || {};
453
+ const shouldSaveMetadata = persist === null || persist === void 0 ? void 0 : persist.retrySync;
419
454
  if (changesRemote.length > 0) {
420
455
  // Wait for remote to be ready before saving
421
456
  await state.when(() => syncState.isLoaded.get() || (allowSetIfGetError && syncState.error.get()));
@@ -454,11 +489,11 @@ async function doChangeRemote(changeInfo) {
454
489
  const pathStrs = Array.from(new Set(changesRemote.map((change) => change.pathStr)));
455
490
  const { changes, lastSync } = saved;
456
491
  if (pathStrs.length > 0) {
492
+ let transformedChanges = undefined;
493
+ const metadata = {};
457
494
  if (persist) {
458
- const metadata = {};
459
495
  const pendingMetadata = (_b = pluginPersist.getMetadata(table, configLocal)) === null || _b === void 0 ? void 0 : _b.pending;
460
496
  const pending = localState.pendingChanges;
461
- let transformedChanges = undefined;
462
497
  for (let i = 0; i < pathStrs.length; i++) {
463
498
  const pathStr = pathStrs[i];
464
499
  // Clear pending for this path
@@ -477,32 +512,34 @@ async function doChangeRemote(changeInfo) {
477
512
  if (lastSync) {
478
513
  metadata.lastSync = lastSync;
479
514
  }
480
- // Remote can optionally have data that needs to be merged back into the observable,
481
- // for example Firebase may update dateModified with the server timestamp
482
- if (changes && !state.isEmpty(changes)) {
483
- transformedChanges = transformLoadData(changes, syncOptions, false);
484
- }
485
- if (localState.numSavesOutstanding > 0) {
486
- if (transformedChanges) {
487
- if (!localState.pendingSaveResults) {
488
- localState.pendingSaveResults = [];
489
- }
490
- localState.pendingSaveResults.push(transformedChanges);
515
+ }
516
+ // Remote can optionally have data that needs to be merged back into the observable,
517
+ // for example Firebase may update dateModified with the server timestamp
518
+ if (changes && !state.isEmpty(changes)) {
519
+ transformedChanges = transformLoadData(changes, syncOptions, false);
520
+ }
521
+ if (localState.numSavesOutstanding > 0) {
522
+ if (transformedChanges) {
523
+ if (!localState.pendingSaveResults) {
524
+ localState.pendingSaveResults = [];
491
525
  }
526
+ localState.pendingSaveResults.push(transformedChanges);
492
527
  }
493
- else {
494
- let allChanges = [...(localState.pendingSaveResults || []), transformedChanges].filter((v) => v !== undefined);
495
- if (allChanges.length > 0) {
496
- if (allChanges.some((change) => state.isPromise(change))) {
497
- allChanges = await Promise.all(allChanges);
498
- }
499
- onChangeRemote(() => state.mergeIntoObservable(obs, ...allChanges));
528
+ }
529
+ else {
530
+ let allChanges = [...(localState.pendingSaveResults || []), transformedChanges].filter((v) => v !== undefined);
531
+ if (allChanges.length > 0) {
532
+ if (allChanges.some((change) => state.isPromise(change))) {
533
+ allChanges = await Promise.all(allChanges);
500
534
  }
535
+ onChangeRemote(() => state.mergeIntoObservable(obs, ...allChanges));
536
+ }
537
+ if (persist) {
501
538
  if (shouldSaveMetadata && !state.isEmpty(metadata)) {
502
539
  updateMetadata(obs, localState, syncState, syncOptions, metadata);
503
540
  }
504
- localState.pendingSaveResults = [];
505
541
  }
542
+ localState.pendingSaveResults = [];
506
543
  }
507
544
  onAfterSet === null || onAfterSet === void 0 ? void 0 : onAfterSet();
508
545
  }
@@ -806,16 +843,18 @@ function enableActivateSyncedNode() {
806
843
  pluginRemote.get = (params) => {
807
844
  onChange = params.onChange;
808
845
  const updateLastSync = (lastSync) => (params.lastSync = lastSync);
809
- const setMode = (mode) => (params.mode = mode);
810
846
  const existingValue = getNodeValue(node);
811
847
  const value = runWithRetry(node, { attemptNum: 0 }, () => {
812
- return get({
848
+ const paramsToGet = {
813
849
  value: state.isFunction(existingValue) || (existingValue === null || existingValue === void 0 ? void 0 : existingValue[symbolLinked$1]) ? undefined : existingValue,
814
850
  lastSync: params.lastSync,
815
851
  updateLastSync,
816
- setMode,
852
+ mode: params.mode,
817
853
  refresh,
818
- });
854
+ };
855
+ const ret = get(paramsToGet);
856
+ params.mode = paramsToGet.mode;
857
+ return ret;
819
858
  });
820
859
  promiseReturn = value;
821
860
  return value;
@@ -932,9 +971,12 @@ const internal = {
932
971
  };
933
972
 
934
973
  exports.configureObservableSync = configureObservableSync;
974
+ exports.deepEqual = deepEqual;
975
+ exports.diffObjects = diffObjects;
935
976
  exports.internal = internal;
936
977
  exports.isInRemoteChange = isInRemoteChange;
937
978
  exports.mapSyncPlugins = mapSyncPlugins;
979
+ exports.removeNullUndefined = removeNullUndefined;
938
980
  exports.syncObservable = syncObservable;
939
981
  exports.synced = synced;
940
982
  //# sourceMappingURL=sync.js.map
package/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sources":["./src/sync/configureObservableSync.ts","./src/sync/syncHelpers.ts","./src/sync/syncObservableAdapter.ts","./src/sync/syncObservable.ts","./src/sync/activateSyncedNode.ts","./src/sync/synced.ts","./sync.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["isObject","isPromise","globalState","symbolLinked","getNodeValue","internal","isString","endBatch","beginBatch","constructObjectWithPath","deconstructObjectWithPath","setAtPath","when","isFunction","isEmpty","mergeIntoObservable","observable","isArray","whenReady","internalState"],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sources":["./src/sync/configureObservableSync.ts","./src/sync/syncHelpers.ts","./src/sync/syncObservableAdapter.ts","./src/sync/syncObservable.ts","./src/sync/activateSyncedNode.ts","./src/sync/synced.ts","./sync.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["isObject","isDate","isNullOrUndefined","isPromise","globalState","symbolLinked","getNodeValue","internal","isString","endBatch","beginBatch","constructObjectWithPath","deconstructObjectWithPath","setAtPath","when","isFunction","isEmpty","mergeIntoObservable","observable","isArray","whenReady","internalState"],"mappings":"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"}
package/sync.mjs CHANGED
@@ -1,23 +1,52 @@
1
- import { isObject, isPromise, isFunction, observable, when, internal as internal$1, mergeIntoObservable, isEmpty, isString, setAtPath, endBatch, beginBatch, constructObjectWithPath, deconstructObjectWithPath, isArray, whenReady } from '@legendapp/state';
1
+ import { isObject, isDate, isNullOrUndefined, isPromise, isFunction, observable, when, internal as internal$1, mergeIntoObservable, isEmpty, isString, setAtPath, endBatch, beginBatch, constructObjectWithPath, deconstructObjectWithPath, isArray, whenReady } from '@legendapp/state';
2
2
 
3
3
  const observableSyncConfiguration = {};
4
4
  function configureObservableSync(options) {
5
5
  Object.assign(observableSyncConfiguration, options);
6
6
  }
7
7
 
8
- function removeNullUndefined(val) {
9
- if (val) {
10
- Object.keys(val).forEach((key) => {
11
- const v = val[key];
12
- if (v === null || v === undefined) {
13
- delete val[key];
14
- }
15
- else if (isObject(v)) {
16
- removeNullUndefined(v);
8
+ function removeNullUndefined(a, recursive) {
9
+ const out = {};
10
+ Object.keys(a).forEach((key) => {
11
+ if (a[key] !== null && a[key] !== undefined) {
12
+ out[key] = recursive && isObject(a[key]) ? removeNullUndefined(a[key]) : a[key];
13
+ }
14
+ });
15
+ return out;
16
+ }
17
+ function diffObjects(obj1, obj2, deep = false) {
18
+ const diff = {};
19
+ if (!obj1)
20
+ return obj2 || diff;
21
+ if (!obj2)
22
+ return obj1 || diff;
23
+ const keys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);
24
+ keys.forEach((key) => {
25
+ const o1 = obj1[key];
26
+ const o2 = obj2[key];
27
+ if (deep ? !deepEqual(o1, o2) : o1 !== o2) {
28
+ if (!isDate(o1) || !isDate(o2) || o1.getTime() !== o2.getTime()) {
29
+ diff[key] = o2;
17
30
  }
18
- });
31
+ }
32
+ });
33
+ return diff;
34
+ }
35
+ function deepEqual(a, b, ignoreFields, nullVsUndefined) {
36
+ if (a === b) {
37
+ return true;
19
38
  }
20
- return val;
39
+ if (isNullOrUndefined(a) !== isNullOrUndefined(b)) {
40
+ return false;
41
+ }
42
+ if (nullVsUndefined) {
43
+ a = removeNullUndefined(a, /*recursive*/ true);
44
+ b = removeNullUndefined(b, /*recursive*/ true);
45
+ }
46
+ const replacer = ignoreFields
47
+ ? (key, value) => (ignoreFields.includes(key) ? undefined : value)
48
+ : undefined;
49
+ return JSON.stringify(a, replacer) === JSON.stringify(b, replacer);
21
50
  }
22
51
 
23
52
  function syncObservableAdapter({ get, set }) {
@@ -127,7 +156,13 @@ function mergeChanges(changes) {
127
156
  const pathStr = change.path.join('/');
128
157
  const existing = changesByPath.get(pathStr);
129
158
  if (existing) {
130
- existing.valueAtPath = change.valueAtPath;
159
+ // If setting a value back to what it was, no need to save it
160
+ if (change.valueAtPath === existing.prevAtPath) {
161
+ changesOut.splice(changesOut.indexOf(change), 1);
162
+ }
163
+ else {
164
+ existing.valueAtPath = change.valueAtPath;
165
+ }
131
166
  }
132
167
  else {
133
168
  changesByPath.set(pathStr, change);
@@ -145,6 +180,7 @@ function mergeQueuedChanges(allChanges) {
145
180
  for (let i = 0; i < allChanges.length; i++) {
146
181
  const value = allChanges[i];
147
182
  const { obs, changes, inRemoteChange, getPrevious } = value;
183
+ const targetMap = inRemoteChange ? outRemote : outLocal;
148
184
  const changesMap = inRemoteChange ? changesByObsRemote : changesByObsLocal;
149
185
  const existing = changesMap.get(obs);
150
186
  const newChanges = existing ? [...existing, ...changes] : changes;
@@ -155,7 +191,7 @@ function mergeQueuedChanges(allChanges) {
155
191
  previousByObs.set(obs, getPrevious());
156
192
  }
157
193
  value.valuePrevious = previousByObs.get(obs);
158
- (inRemoteChange ? outRemote : outLocal).set(obs, value);
194
+ targetMap.set(obs, value);
159
195
  }
160
196
  return Array.from(outRemote.values()).concat(Array.from(outLocal.values()));
161
197
  }
@@ -380,8 +416,7 @@ async function doChangeLocal(changeInfo) {
380
416
  const { pluginPersist } = localState;
381
417
  const persist = syncOptions.persist;
382
418
  const { table, config: configLocal } = parseLocalConfig(persist);
383
- const configRemote = syncOptions;
384
- const shouldSaveMetadata = persist && (configRemote === null || configRemote === void 0 ? void 0 : configRemote.offlineBehavior) === 'retry';
419
+ const shouldSaveMetadata = persist === null || persist === void 0 ? void 0 : persist.retrySync;
385
420
  if (saveRemote && shouldSaveMetadata) {
386
421
  // First save pending changes before saving local or remote
387
422
  await updateMetadataImmediate(obs, localState, syncState, syncOptions, {
@@ -412,8 +447,8 @@ async function doChangeRemote(changeInfo) {
412
447
  const { pluginPersist, pluginSync } = localState;
413
448
  const persist = syncOptions.persist;
414
449
  const { table, config: configLocal } = parseLocalConfig(persist);
415
- const { offlineBehavior, allowSetIfGetError, onBeforeSet, onSetError, waitForSet, onAfterSet } = syncOptions || {};
416
- const shouldSaveMetadata = persist && offlineBehavior === 'retry';
450
+ const { allowSetIfGetError, onBeforeSet, onSetError, waitForSet, onAfterSet } = syncOptions || {};
451
+ const shouldSaveMetadata = persist === null || persist === void 0 ? void 0 : persist.retrySync;
417
452
  if (changesRemote.length > 0) {
418
453
  // Wait for remote to be ready before saving
419
454
  await when(() => syncState.isLoaded.get() || (allowSetIfGetError && syncState.error.get()));
@@ -452,11 +487,11 @@ async function doChangeRemote(changeInfo) {
452
487
  const pathStrs = Array.from(new Set(changesRemote.map((change) => change.pathStr)));
453
488
  const { changes, lastSync } = saved;
454
489
  if (pathStrs.length > 0) {
490
+ let transformedChanges = undefined;
491
+ const metadata = {};
455
492
  if (persist) {
456
- const metadata = {};
457
493
  const pendingMetadata = (_b = pluginPersist.getMetadata(table, configLocal)) === null || _b === void 0 ? void 0 : _b.pending;
458
494
  const pending = localState.pendingChanges;
459
- let transformedChanges = undefined;
460
495
  for (let i = 0; i < pathStrs.length; i++) {
461
496
  const pathStr = pathStrs[i];
462
497
  // Clear pending for this path
@@ -475,32 +510,34 @@ async function doChangeRemote(changeInfo) {
475
510
  if (lastSync) {
476
511
  metadata.lastSync = lastSync;
477
512
  }
478
- // Remote can optionally have data that needs to be merged back into the observable,
479
- // for example Firebase may update dateModified with the server timestamp
480
- if (changes && !isEmpty(changes)) {
481
- transformedChanges = transformLoadData(changes, syncOptions, false);
482
- }
483
- if (localState.numSavesOutstanding > 0) {
484
- if (transformedChanges) {
485
- if (!localState.pendingSaveResults) {
486
- localState.pendingSaveResults = [];
487
- }
488
- localState.pendingSaveResults.push(transformedChanges);
513
+ }
514
+ // Remote can optionally have data that needs to be merged back into the observable,
515
+ // for example Firebase may update dateModified with the server timestamp
516
+ if (changes && !isEmpty(changes)) {
517
+ transformedChanges = transformLoadData(changes, syncOptions, false);
518
+ }
519
+ if (localState.numSavesOutstanding > 0) {
520
+ if (transformedChanges) {
521
+ if (!localState.pendingSaveResults) {
522
+ localState.pendingSaveResults = [];
489
523
  }
524
+ localState.pendingSaveResults.push(transformedChanges);
490
525
  }
491
- else {
492
- let allChanges = [...(localState.pendingSaveResults || []), transformedChanges].filter((v) => v !== undefined);
493
- if (allChanges.length > 0) {
494
- if (allChanges.some((change) => isPromise(change))) {
495
- allChanges = await Promise.all(allChanges);
496
- }
497
- onChangeRemote(() => mergeIntoObservable(obs, ...allChanges));
526
+ }
527
+ else {
528
+ let allChanges = [...(localState.pendingSaveResults || []), transformedChanges].filter((v) => v !== undefined);
529
+ if (allChanges.length > 0) {
530
+ if (allChanges.some((change) => isPromise(change))) {
531
+ allChanges = await Promise.all(allChanges);
498
532
  }
533
+ onChangeRemote(() => mergeIntoObservable(obs, ...allChanges));
534
+ }
535
+ if (persist) {
499
536
  if (shouldSaveMetadata && !isEmpty(metadata)) {
500
537
  updateMetadata(obs, localState, syncState, syncOptions, metadata);
501
538
  }
502
- localState.pendingSaveResults = [];
503
539
  }
540
+ localState.pendingSaveResults = [];
504
541
  }
505
542
  onAfterSet === null || onAfterSet === void 0 ? void 0 : onAfterSet();
506
543
  }
@@ -804,16 +841,18 @@ function enableActivateSyncedNode() {
804
841
  pluginRemote.get = (params) => {
805
842
  onChange = params.onChange;
806
843
  const updateLastSync = (lastSync) => (params.lastSync = lastSync);
807
- const setMode = (mode) => (params.mode = mode);
808
844
  const existingValue = getNodeValue(node);
809
845
  const value = runWithRetry(node, { attemptNum: 0 }, () => {
810
- return get({
846
+ const paramsToGet = {
811
847
  value: isFunction(existingValue) || (existingValue === null || existingValue === void 0 ? void 0 : existingValue[symbolLinked$1]) ? undefined : existingValue,
812
848
  lastSync: params.lastSync,
813
849
  updateLastSync,
814
- setMode,
850
+ mode: params.mode,
815
851
  refresh,
816
- });
852
+ };
853
+ const ret = get(paramsToGet);
854
+ params.mode = paramsToGet.mode;
855
+ return ret;
817
856
  });
818
857
  promiseReturn = value;
819
858
  return value;
@@ -929,5 +968,5 @@ const internal = {
929
968
  observableSyncConfiguration,
930
969
  };
931
970
 
932
- export { configureObservableSync, internal, isInRemoteChange, mapSyncPlugins, syncObservable, synced };
971
+ export { configureObservableSync, deepEqual, diffObjects, internal, isInRemoteChange, mapSyncPlugins, removeNullUndefined, syncObservable, synced };
933
972
  //# sourceMappingURL=sync.mjs.map