@legendapp/state 1.0.0-rc.15 → 1.0.0-rc.17

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.
Files changed (40) hide show
  1. package/index.js +69 -39
  2. package/index.js.map +1 -1
  3. package/index.mjs +69 -39
  4. package/index.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/persist-plugins/indexeddb-preloader.js +9 -4
  7. package/persist-plugins/indexeddb-preloader.js.map +1 -1
  8. package/persist-plugins/indexeddb-preloader.mjs +9 -4
  9. package/persist-plugins/indexeddb-preloader.mjs.map +1 -1
  10. package/persist-plugins/indexeddb.d.ts +1 -1
  11. package/persist-plugins/indexeddb.js +14 -8
  12. package/persist-plugins/indexeddb.js.map +1 -1
  13. package/persist-plugins/indexeddb.mjs +14 -8
  14. package/persist-plugins/indexeddb.mjs.map +1 -1
  15. package/persist-plugins/local-storage.d.ts +3 -3
  16. package/persist-plugins/local-storage.js +6 -6
  17. package/persist-plugins/local-storage.js.map +1 -1
  18. package/persist-plugins/local-storage.mjs +6 -6
  19. package/persist-plugins/local-storage.mjs.map +1 -1
  20. package/persist-plugins/mmkv.js +1 -1
  21. package/persist-plugins/mmkv.js.map +1 -1
  22. package/persist-plugins/mmkv.mjs +1 -1
  23. package/persist-plugins/mmkv.mjs.map +1 -1
  24. package/persist.js +167 -103
  25. package/persist.js.map +1 -1
  26. package/persist.mjs +168 -104
  27. package/persist.mjs.map +1 -1
  28. package/react.js +16 -5
  29. package/react.js.map +1 -1
  30. package/react.mjs +16 -5
  31. package/react.mjs.map +1 -1
  32. package/src/batching.d.ts +1 -1
  33. package/src/observableInterfaces.d.ts +17 -13
  34. package/src/observe.d.ts +6 -2
  35. package/src/onChange.d.ts +1 -0
  36. package/src/persist-plugins/indexeddb.d.ts +1 -1
  37. package/src/persist-plugins/local-storage.d.ts +3 -3
  38. package/src/react/Show.d.ts +12 -2
  39. package/src/react/Switch.d.ts +1 -1
  40. package/src/when.d.ts +1 -2
package/persist.js CHANGED
@@ -55,14 +55,6 @@ function transformObject(dataIn, map) {
55
55
  else if (mapped !== null) {
56
56
  if (v !== undefined && v !== null) {
57
57
  if (map[key + '_val']) {
58
- const valMap = map[key + '_val'];
59
- v = valMap[key];
60
- }
61
- else if (map[key + '_arr'] && state.isArray(v)) {
62
- const mapChild = map[key + '_arr'];
63
- v = v.map((vChild) => transformObject(vChild, mapChild));
64
- }
65
- else if (map[key + '_val']) {
66
58
  const mapChild = map[key + '_val'];
67
59
  if (state.isArray(v)) {
68
60
  v = v.map((vChild) => mapChild[vChild]);
@@ -71,6 +63,10 @@ function transformObject(dataIn, map) {
71
63
  v = mapChild[v];
72
64
  }
73
65
  }
66
+ else if (map[key + '_arr'] && state.isArray(v)) {
67
+ const mapChild = map[key + '_arr'];
68
+ v = v.map((vChild) => transformObject(vChild, mapChild));
69
+ }
74
70
  else if (state.isObject(v)) {
75
71
  if (map[key + '_obj']) {
76
72
  v = transformObject(v, map[key + '_obj']);
@@ -142,11 +138,15 @@ if (process.env.NODE_ENV === 'development') {
142
138
 
143
139
  const mapPersistences = new WeakMap();
144
140
  const persistState = state.observable({ inRemoteSync: false });
141
+ let isMergingLocalData = false;
145
142
  const metadatas = new WeakMap();
143
+ const promisesLocalSaves = new Set();
146
144
  function parseLocalConfig(config) {
147
145
  return state.isString(config) ? { table: config, config: { name: config } } : { table: config.name, config };
148
146
  }
149
- let isMergingLocalData = false;
147
+ function doInOrder(arg1, arg2) {
148
+ return state.isPromise(arg1) ? arg1.then(arg2) : arg2(arg1);
149
+ }
150
150
  function adjustSaveData(value, path, pathTypes, { adjustData, fieldTransforms, }) {
151
151
  if (fieldTransforms || (adjustData === null || adjustData === void 0 ? void 0 : adjustData.save)) {
152
152
  const transform = () => {
@@ -158,13 +158,13 @@ function adjustSaveData(value, path, pathTypes, { adjustData, fieldTransforms, }
158
158
  return { value, path };
159
159
  };
160
160
  if (adjustData === null || adjustData === void 0 ? void 0 : adjustData.save) {
161
- let constructed = state.constructObjectWithPath(path, value, pathTypes);
161
+ const constructed = state.constructObjectWithPath(path, value, pathTypes);
162
162
  const saved = adjustData.save(constructed);
163
163
  const deconstruct = (toDeconstruct) => {
164
164
  value = state.deconstructObjectWithPath(path, toDeconstruct);
165
165
  return transform();
166
166
  };
167
- return state.isPromise(saved) ? saved.then(deconstruct) : deconstruct(saved);
167
+ return doInOrder(saved, deconstruct);
168
168
  }
169
169
  return transform();
170
170
  }
@@ -180,144 +180,207 @@ function adjustLoadData(value, { adjustData, fieldTransforms, }) {
180
180
  }
181
181
  return value;
182
182
  }
183
- function updateMetadata(obs, localState, obsState, persistOptions, newMetadata) {
183
+ async function updateMetadataImmediate(obs, localState, obsState, persistOptions, newMetadata) {
184
+ const saves = Array.from(promisesLocalSaves);
185
+ if (saves.length > 0) {
186
+ await Promise.all(saves);
187
+ }
184
188
  const { persistenceLocal } = localState;
185
189
  const local = persistOptions.local;
186
190
  const { table, config } = parseLocalConfig(local);
187
191
  // Save metadata
188
- let oldMetadata = metadatas.get(obs);
192
+ const oldMetadata = metadatas.get(obs);
189
193
  const { modified, pending } = newMetadata;
190
- const needsUpdate = (pending && !state.isEmpty(pending)) || (modified && (!oldMetadata || modified !== oldMetadata.modified));
194
+ const needsUpdate = pending || (modified && (!oldMetadata || modified !== oldMetadata.modified));
191
195
  if (needsUpdate) {
192
196
  const metadata = Object.assign({}, oldMetadata, newMetadata);
193
197
  metadatas.set(obs, metadata);
194
- persistenceLocal.updateMetadata(table, metadata, config);
198
+ await persistenceLocal.updateMetadata(table, metadata, config);
195
199
  if (modified) {
196
200
  obsState.dateModified.set(modified);
197
201
  }
198
202
  }
199
203
  }
204
+ function updateMetadata(obs, localState, obsState, persistOptions, newMetadata) {
205
+ if (localState.timeoutSaveMetadata) {
206
+ clearTimeout(localState.timeoutSaveMetadata);
207
+ }
208
+ localState.timeoutSaveMetadata = setTimeout(() => updateMetadataImmediate(obs, localState, obsState, persistOptions, newMetadata), 30);
209
+ }
200
210
  async function onObsChange(obs, obsState, localState, persistOptions, { changes }) {
211
+ var _a, _b;
212
+ // Note: Summary of the order of operations this function:
213
+ // 1. Prepare all changes for saving. This may involve waiting for promises if the user has asynchronous adjustData
214
+ // 2. Save pending to the metadata table first. If this is the only operation that succeeds, it would try to save
215
+ // the current value again on next load, which isn't too bad.
216
+ // 3. Save local changes to storage. If they never make it to remote, then on the next load they will be pending
217
+ // and attempted again.
218
+ // 4. Wait for remote load or error if allowed
219
+ // 5. Save to remote
220
+ // 6. On successful save, merge changes (if any) back into observable
221
+ // 7. Lastly, update metadata to clear pending and update dateModified. Doing this earlier could potentially cause
222
+ // sync inconsistences so it's very important that this is last.
201
223
  const { persistenceLocal, persistenceRemote, isApplyingPending } = localState;
202
224
  const local = persistOptions.local;
203
- const { table, config } = parseLocalConfig(local);
225
+ const { table, config: configLocal } = parseLocalConfig(local);
204
226
  const configRemote = persistOptions.remote;
205
227
  const inRemoteChange = state.tracking.inRemoteChange;
228
+ const saveLocal = local && !configLocal.readonly && !isApplyingPending && obsState.isEnabledLocal.peek();
206
229
  const saveRemote = !isMergingLocalData &&
207
230
  !inRemoteChange &&
208
231
  configRemote &&
209
232
  !configRemote.readonly &&
210
233
  obsState.isEnabledRemote.peek();
211
- if (local && !config.readonly && !isApplyingPending && obsState.isEnabledLocal.peek()) {
212
- if (!obsState.isLoadedLocal.peek()) {
234
+ if (saveLocal || saveRemote) {
235
+ if (saveLocal && !obsState.isLoadedLocal.peek()) {
213
236
  console.error('[legend-state] WARNING: An observable was changed before being loaded from persistence', local);
214
237
  return;
215
238
  }
216
- // Prepare pending changes
217
- if (saveRemote) {
218
- for (let i = 0; i < changes.length; i++) {
219
- const { path, valueAtPath, prevAtPath, pathTypes } = changes[i];
220
- const pathStr = path.join('/');
221
- if (!localState.pendingChanges) {
222
- localState.pendingChanges = {};
223
- }
224
- // The value saved in pending should be the previous state before changes,
225
- // so don't overwrite it if it already exists
226
- if (!localState.pendingChanges[pathStr]) {
227
- localState.pendingChanges[pathStr] = { p: prevAtPath !== null && prevAtPath !== void 0 ? prevAtPath : null, t: pathTypes };
228
- }
229
- localState.pendingChanges[pathStr].v = valueAtPath;
230
- }
231
- }
232
- // Save changes locally
233
239
  const changesLocal = [];
240
+ const changesRemote = [];
234
241
  const changesPaths = new Set();
235
- const promises = [];
236
- changes.forEach((_, i) => {
237
- // Reverse order
238
- // eslint-disable-next-line prefer-const
239
- let { path: pathOriginal, prevAtPath, valueAtPath, pathTypes } = changes[changes.length - 1 - i];
240
- if (state.isSymbol(pathOriginal[pathOriginal.length - 1])) {
241
- return;
242
- }
243
- const pathStr = pathOriginal.join('/');
242
+ let promisesAdjustData = [];
243
+ // Reverse order
244
+ for (let i = changes.length - 1; i >= 0; i--) {
245
+ const { path } = changes[i];
246
+ const pathStr = path.join('/');
244
247
  // Optimization to only save the latest update at each path. We might have multiple changes at the same path
245
248
  // and we only need the latest value, so it starts from the end of the array, skipping any earlier changes
246
249
  // already processed.
247
250
  if (!changesPaths.has(pathStr)) {
248
251
  changesPaths.add(pathStr);
249
- const promise = adjustSaveData(valueAtPath, pathOriginal, pathTypes, config);
250
- const push = ({ path, value }) => {
251
- changesLocal.push({ path, pathTypes, prevAtPath, valueAtPath: value });
252
- };
253
- if (state.isPromise(promise)) {
254
- promises.push(promise.then(push));
252
+ const { prevAtPath, valueAtPath, pathTypes } = changes[i];
253
+ if (saveLocal) {
254
+ const promiseAdjustLocal = adjustSaveData(valueAtPath, path, pathTypes, configLocal);
255
+ promisesAdjustData.push(doInOrder(promiseAdjustLocal, ({ path: pathAdjusted, value: valueAdjusted }) => {
256
+ // If path includes undefined there was a null in fieldTransforms so don't need to save it
257
+ if (!pathAdjusted.includes(undefined)) {
258
+ // Prepare the local change with the adjusted path/value
259
+ changesLocal.push({
260
+ path: pathAdjusted,
261
+ pathTypes,
262
+ prevAtPath,
263
+ valueAtPath: valueAdjusted,
264
+ pathStr,
265
+ });
266
+ }
267
+ }));
255
268
  }
256
- else {
257
- push(promise);
269
+ if (saveRemote) {
270
+ const promiseAdjustRemote = adjustSaveData(valueAtPath, path, pathTypes, configRemote);
271
+ promisesAdjustData.push(doInOrder(promiseAdjustRemote, ({ path: pathAdjusted, value: valueAdjusted }) => {
272
+ // If path includes undefined there was a null in fieldTransforms so don't need to save it
273
+ if (!pathAdjusted.includes(undefined)) {
274
+ // Prepare pending changes
275
+ if (!localState.pendingChanges) {
276
+ localState.pendingChanges = {};
277
+ }
278
+ // The "p" saved in pending should be the previous state before changes,
279
+ // so don't overwrite it if it already exists
280
+ if (!localState.pendingChanges[pathStr]) {
281
+ localState.pendingChanges[pathStr] = { p: prevAtPath !== null && prevAtPath !== void 0 ? prevAtPath : null, t: pathTypes };
282
+ }
283
+ // Pending value is the unadjusted value because it gets loaded without adjustment
284
+ // and forwarded through to onObsChange where it gets adjusted before save
285
+ localState.pendingChanges[pathStr].v = valueAtPath;
286
+ // Prepare the remote change with the adjusted path/value
287
+ changesRemote.push({
288
+ path: pathAdjusted,
289
+ pathTypes,
290
+ prevAtPath,
291
+ valueAtPath: valueAdjusted,
292
+ pathStr,
293
+ });
294
+ }
295
+ }));
258
296
  }
259
297
  }
260
- });
261
- if (promises.length > 0) {
262
- await Promise.all(promises);
263
298
  }
264
- if (changesLocal.length > 0) {
265
- persistenceLocal.set(table, changesLocal, config);
299
+ // If there's any adjustData promises, wait for them before saving
300
+ promisesAdjustData = promisesAdjustData.filter(Boolean);
301
+ if (promisesAdjustData.length > 0) {
302
+ await Promise.all(promisesAdjustData);
266
303
  }
267
- }
268
- if (saveRemote) {
269
- // Save metadata
270
- updateMetadata(obs, localState, obsState, persistOptions, {
271
- pending: localState.pendingChanges,
272
- });
273
- await state.when(() => obsState.isLoadedRemote.get() || (configRemote.allowSaveIfError && obsState.remoteError.get()));
274
- changes.forEach(async (change) => {
275
- const { path, valueAtPath, prevAtPath, pathTypes } = change;
276
- const pathStr = path.join('/');
277
- const { path: pathSave, value: valueSave } = await adjustSaveData(valueAtPath, path, pathTypes, configRemote);
278
- // Save to remote persistence
279
- persistenceRemote
280
- .save({
281
- obs,
282
- state: obsState,
283
- options: persistOptions,
284
- path: pathSave,
285
- pathTypes,
286
- valueAtPath: valueSave,
287
- prevAtPath,
288
- })
289
- .then(({ changes, dateModified }) => {
290
- var _a, _b;
304
+ if (saveRemote && changesRemote.length > 0) {
305
+ // First save pending changes before saving local or remote
306
+ await updateMetadataImmediate(obs, localState, obsState, persistOptions, {
307
+ pending: localState.pendingChanges,
308
+ });
309
+ }
310
+ if (saveLocal && changesLocal.length > 0) {
311
+ // Save the changes to local persistence before saving to remote. They are already marked as pending so
312
+ // if remote sync fails or the app is closed before remote sync, it will attempt to sync them on the next load.
313
+ if (changesLocal.length > 0) {
314
+ let promiseSet = persistenceLocal.set(table, changesLocal, configLocal);
315
+ if (promiseSet) {
316
+ promiseSet = promiseSet.then(() => {
317
+ promisesLocalSaves.delete(promiseSet);
318
+ });
319
+ // Keep track of local save promises so that updateMetadata runs only after everything is saved
320
+ promisesLocalSaves.add(promiseSet);
321
+ // await the local save before proceeding to save remotely
322
+ await promiseSet;
323
+ }
324
+ }
325
+ }
326
+ if (saveRemote && changesRemote.length > 0) {
327
+ // Wait for remote to be ready before saving
328
+ await state.when(() => obsState.isLoadedRemote.get() || (configRemote.allowSaveIfError && obsState.remoteError.get()));
329
+ const saves = await Promise.all(changesRemote.map(async (change) => {
330
+ const { path, valueAtPath, prevAtPath, pathTypes, pathStr } = change;
331
+ // Save to remote persistence
332
+ return persistenceRemote
333
+ .save({
334
+ obs,
335
+ state: obsState,
336
+ options: persistOptions,
337
+ path: path,
338
+ pathTypes,
339
+ valueAtPath,
340
+ prevAtPath,
341
+ })
342
+ .then(({ changes, dateModified }) => ({ changes, dateModified, pathStr }));
343
+ }));
344
+ // If this remote save changed anything then update persistence and metadata
345
+ // Because save happens after a timeout and they're batched together, some calls to save will
346
+ // return saved data and others won't, so those can be ignored.
347
+ if (saves.filter(Boolean).length > 0) {
291
348
  if (local) {
292
- const pending = (_a = persistenceLocal.getMetadata(table, config)) === null || _a === void 0 ? void 0 : _a.pending;
293
349
  const metadata = {};
294
- // Clear pending for this path
295
- if (pending === null || pending === void 0 ? void 0 : pending[pathStr]) {
296
- // Remove pending from the saved object
297
- delete pending[pathStr];
298
- // Remove pending from local state
299
- delete localState.pendingChanges[pathStr];
300
- metadata.pending = pending;
301
- }
302
- if (dateModified) {
303
- metadata.modified = dateModified;
350
+ const pending = (_a = persistenceLocal.getMetadata(table, configLocal)) === null || _a === void 0 ? void 0 : _a.pending;
351
+ const adjustedChanges = [];
352
+ for (let i = 0; i < saves.length; i++) {
353
+ const save = saves[i];
354
+ if (save) {
355
+ const { changes, dateModified, pathStr } = save;
356
+ // Clear pending for this path
357
+ if (pending === null || pending === void 0 ? void 0 : pending[pathStr]) {
358
+ // Remove pending from the saved object
359
+ delete pending[pathStr];
360
+ // Remove pending from local state
361
+ delete localState.pendingChanges[pathStr];
362
+ metadata.pending = pending;
363
+ }
364
+ if (dateModified) {
365
+ metadata.modified = dateModified;
366
+ }
367
+ // Remote can optionally have data that needs to be merged back into the observable,
368
+ // for example Firebase may update dateModified with the server timestamp
369
+ if (changes && !state.isEmpty(changes)) {
370
+ adjustedChanges.push(adjustLoadData(changes, persistOptions.remote));
371
+ }
372
+ }
304
373
  }
305
- if (changes && !state.isEmpty(changes)) {
306
- const adjustedChanges = adjustLoadData(changes, persistOptions.remote);
307
- onChangeRemote(() => state.mergeIntoObservable(obs, adjustedChanges));
374
+ if (adjustedChanges.length > 0) {
375
+ onChangeRemote(() => state.mergeIntoObservable(obs, ...adjustedChanges));
308
376
  }
309
377
  if (!state.isEmpty(metadata)) {
310
- // Do this in a timeout to make sure it saves all the changes first before
311
- // saving the metadata, and that it only happens once after multiple saves
312
- clearTimeout(localState.timeoutSaveMetadata);
313
- localState.timeoutSaveMetadata = setTimeout(() => {
314
- updateMetadata(obs, localState, obsState, persistOptions, metadata);
315
- }, 30);
378
+ updateMetadata(obs, localState, obsState, persistOptions, metadata);
316
379
  }
317
380
  }
318
381
  (_b = localState.onSaveRemote) === null || _b === void 0 ? void 0 : _b.call(localState);
319
- });
320
- });
382
+ }
383
+ }
321
384
  }
322
385
  }
323
386
  function onChangeRemote(cb) {
@@ -495,6 +558,7 @@ function persistObservable(obs, persistOptions) {
495
558
  }
496
559
  },
497
560
  });
561
+ // Wait for remote to be ready before saving pending
498
562
  await state.when(() => obsState.isLoadedRemote.get() || (remote.allowSaveIfError && obsState.remoteError.get()));
499
563
  const pending = localState.pendingChanges;
500
564
  if (pending && !state.isEmpty(pending)) {
package/persist.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"persist.js","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/fieldTransformer.ts","../../src/persist/persistObservable.ts","../../persist.ts"],"sourcesContent":[null,null,null,null],"names":["symbolDelete","isArray","isObject","constructObjectWithPath","deconstructObjectWithPath","isString","observable","isPromise","isEmpty","tracking","isSymbol","when","mergeIntoObservable","beginBatch","endBatch","batch","setInObservableAtPath"],"mappings":"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"}
1
+ {"version":3,"file":"persist.js","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/fieldTransformer.ts","../../src/persist/persistObservable.ts","../../persist.ts"],"sourcesContent":[null,null,null,null],"names":["symbolDelete","isArray","isObject","constructObjectWithPath","deconstructObjectWithPath","isString","observable","isPromise","tracking","when","isEmpty","mergeIntoObservable","beginBatch","endBatch","batch","setInObservableAtPath"],"mappings":"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"}