@wordpress/core-data 4.0.6 → 4.0.7

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 (77) hide show
  1. package/build/actions.js +269 -244
  2. package/build/actions.js.map +1 -1
  3. package/build/batch/create-batch.js +17 -9
  4. package/build/batch/create-batch.js.map +1 -1
  5. package/build/entities.js +9 -6
  6. package/build/entities.js.map +1 -1
  7. package/build/entity-provider.js +18 -13
  8. package/build/entity-provider.js.map +1 -1
  9. package/build/fetch/__experimental-fetch-link-suggestions.js +3 -1
  10. package/build/fetch/__experimental-fetch-link-suggestions.js.map +1 -1
  11. package/build/fetch/__experimental-fetch-url-data.js +2 -1
  12. package/build/fetch/__experimental-fetch-url-data.js.map +1 -1
  13. package/build/index.js +25 -5
  14. package/build/index.js.map +1 -1
  15. package/build/locks/actions.js +4 -3
  16. package/build/locks/actions.js.map +1 -1
  17. package/build/locks/reducer.js +4 -1
  18. package/build/locks/reducer.js.map +1 -1
  19. package/build/locks/selectors.js +4 -3
  20. package/build/locks/selectors.js.map +1 -1
  21. package/build/locks/utils.js +7 -5
  22. package/build/locks/utils.js.map +1 -1
  23. package/build/queried-data/actions.js +6 -3
  24. package/build/queried-data/actions.js.map +1 -1
  25. package/build/queried-data/get-query-parts.js +1 -1
  26. package/build/queried-data/reducer.js +17 -6
  27. package/build/queried-data/reducer.js.map +1 -1
  28. package/build/queried-data/selectors.js +2 -1
  29. package/build/queried-data/selectors.js.map +1 -1
  30. package/build/reducer.js +77 -28
  31. package/build/reducer.js.map +1 -1
  32. package/build/resolvers.js +186 -162
  33. package/build/resolvers.js.map +1 -1
  34. package/build/selectors.js +29 -21
  35. package/build/selectors.js.map +1 -1
  36. package/build/utils/forward-resolver.js +11 -4
  37. package/build/utils/forward-resolver.js.map +1 -1
  38. package/build/utils/index.js +8 -8
  39. package/build/utils/on-sub-key.js +4 -2
  40. package/build/utils/on-sub-key.js.map +1 -1
  41. package/build-module/actions.js +257 -235
  42. package/build-module/actions.js.map +1 -1
  43. package/build-module/batch/create-batch.js +17 -9
  44. package/build-module/batch/create-batch.js.map +1 -1
  45. package/build-module/entities.js +8 -5
  46. package/build-module/entities.js.map +1 -1
  47. package/build-module/entity-provider.js +17 -12
  48. package/build-module/entity-provider.js.map +1 -1
  49. package/build-module/fetch/__experimental-fetch-link-suggestions.js +3 -1
  50. package/build-module/fetch/__experimental-fetch-link-suggestions.js.map +1 -1
  51. package/build-module/fetch/__experimental-fetch-url-data.js +2 -1
  52. package/build-module/fetch/__experimental-fetch-url-data.js.map +1 -1
  53. package/build-module/index.js +21 -3
  54. package/build-module/index.js.map +1 -1
  55. package/build-module/locks/actions.js +4 -3
  56. package/build-module/locks/actions.js.map +1 -1
  57. package/build-module/locks/reducer.js +4 -1
  58. package/build-module/locks/reducer.js.map +1 -1
  59. package/build-module/locks/selectors.js +4 -3
  60. package/build-module/locks/selectors.js.map +1 -1
  61. package/build-module/locks/utils.js +5 -3
  62. package/build-module/locks/utils.js.map +1 -1
  63. package/build-module/queried-data/actions.js +5 -2
  64. package/build-module/queried-data/actions.js.map +1 -1
  65. package/build-module/queried-data/reducer.js +15 -4
  66. package/build-module/queried-data/reducer.js.map +1 -1
  67. package/build-module/queried-data/selectors.js +2 -1
  68. package/build-module/queried-data/selectors.js.map +1 -1
  69. package/build-module/reducer.js +68 -20
  70. package/build-module/reducer.js.map +1 -1
  71. package/build-module/resolvers.js +185 -161
  72. package/build-module/resolvers.js.map +1 -1
  73. package/build-module/utils/forward-resolver.js +11 -4
  74. package/build-module/utils/forward-resolver.js.map +1 -1
  75. package/build-module/utils/on-sub-key.js +3 -1
  76. package/build-module/utils/on-sub-key.js.map +1 -1
  77. package/package.json +12 -12
package/build/actions.js CHANGED
@@ -5,20 +5,23 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.receiveUserQuery = receiveUserQuery;
9
- exports.receiveCurrentUser = receiveCurrentUser;
10
- exports.addEntities = addEntities;
11
- exports.receiveEntityRecords = receiveEntityRecords;
12
- exports.receiveCurrentTheme = receiveCurrentTheme;
8
+ exports.__experimentalBatch = void 0;
13
9
  exports.__experimentalReceiveCurrentGlobalStylesId = __experimentalReceiveCurrentGlobalStylesId;
14
10
  exports.__experimentalReceiveThemeBaseGlobalStyles = __experimentalReceiveThemeBaseGlobalStyles;
15
- exports.receiveThemeSupports = receiveThemeSupports;
16
- exports.receiveEmbedPreview = receiveEmbedPreview;
11
+ exports.__experimentalSaveSpecifiedEntityEdits = void 0;
17
12
  exports.__unstableCreateUndoLevel = __unstableCreateUndoLevel;
13
+ exports.addEntities = addEntities;
14
+ exports.editEntityRecord = exports.deleteEntityRecord = void 0;
15
+ exports.receiveAutosaves = receiveAutosaves;
16
+ exports.receiveCurrentTheme = receiveCurrentTheme;
17
+ exports.receiveCurrentUser = receiveCurrentUser;
18
+ exports.receiveEmbedPreview = receiveEmbedPreview;
19
+ exports.receiveEntityRecords = receiveEntityRecords;
20
+ exports.receiveThemeSupports = receiveThemeSupports;
18
21
  exports.receiveUploadPermissions = receiveUploadPermissions;
19
22
  exports.receiveUserPermission = receiveUserPermission;
20
- exports.receiveAutosaves = receiveAutosaves;
21
- exports.__experimentalSaveSpecifiedEntityEdits = exports.saveEditedEntityRecord = exports.__experimentalBatch = exports.saveEntityRecord = exports.redo = exports.undo = exports.editEntityRecord = exports.deleteEntityRecord = void 0;
23
+ exports.receiveUserQuery = receiveUserQuery;
24
+ exports.undo = exports.saveEntityRecord = exports.saveEditedEntityRecord = exports.redo = void 0;
22
25
 
23
26
  var _lodash = require("lodash");
24
27
 
@@ -108,7 +111,10 @@ function addEntities(entities) {
108
111
  */
109
112
 
110
113
 
111
- function receiveEntityRecords(kind, name, records, query, invalidateCache = false, edits) {
114
+ function receiveEntityRecords(kind, name, records, query) {
115
+ let invalidateCache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
116
+ let edits = arguments.length > 5 ? arguments[5] : undefined;
117
+
112
118
  // Auto drafts should not have titles, but some plugins rely on them so we can't filter this
113
119
  // on the server.
114
120
  if (kind === 'postType') {
@@ -228,62 +234,66 @@ function receiveEmbedPreview(url, preview) {
228
234
  */
229
235
 
230
236
 
231
- const deleteEntityRecord = (kind, name, recordId, query, {
232
- __unstableFetch = _apiFetch.default
233
- } = {}) => async ({
234
- dispatch
235
- }) => {
236
- const entities = await dispatch((0, _entities.getKindEntities)(kind));
237
- const entity = (0, _lodash.find)(entities, {
238
- kind,
239
- name
240
- });
241
- let error;
242
- let deletedRecord = false;
243
-
244
- if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
245
- return;
246
- }
237
+ const deleteEntityRecord = function (kind, name, recordId, query) {
238
+ let {
239
+ __unstableFetch = _apiFetch.default
240
+ } = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
241
+ return async _ref => {
242
+ let {
243
+ dispatch
244
+ } = _ref;
245
+ const entities = await dispatch((0, _entities.getKindEntities)(kind));
246
+ const entity = (0, _lodash.find)(entities, {
247
+ kind,
248
+ name
249
+ });
250
+ let error;
251
+ let deletedRecord = false;
247
252
 
248
- const lock = await dispatch.__unstableAcquireStoreLock(_name.STORE_NAME, ['entities', 'data', kind, name, recordId], {
249
- exclusive: true
250
- });
253
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
254
+ return;
255
+ }
251
256
 
252
- try {
253
- dispatch({
254
- type: 'DELETE_ENTITY_RECORD_START',
255
- kind,
256
- name,
257
- recordId
257
+ const lock = await dispatch.__unstableAcquireStoreLock(_name.STORE_NAME, ['entities', 'data', kind, name, recordId], {
258
+ exclusive: true
258
259
  });
259
260
 
260
261
  try {
261
- let path = `${entity.baseURL}/${recordId}`;
262
+ dispatch({
263
+ type: 'DELETE_ENTITY_RECORD_START',
264
+ kind,
265
+ name,
266
+ recordId
267
+ });
268
+
269
+ try {
270
+ let path = `${entity.baseURL}/${recordId}`;
262
271
 
263
- if (query) {
264
- path = (0, _url.addQueryArgs)(path, query);
272
+ if (query) {
273
+ path = (0, _url.addQueryArgs)(path, query);
274
+ }
275
+
276
+ deletedRecord = await __unstableFetch({
277
+ path,
278
+ method: 'DELETE'
279
+ });
280
+ await dispatch((0, _queriedData.removeItems)(kind, name, recordId, true));
281
+ } catch (_error) {
282
+ error = _error;
265
283
  }
266
284
 
267
- deletedRecord = await __unstableFetch({
268
- path,
269
- method: 'DELETE'
285
+ dispatch({
286
+ type: 'DELETE_ENTITY_RECORD_FINISH',
287
+ kind,
288
+ name,
289
+ recordId,
290
+ error
270
291
  });
271
- await dispatch((0, _queriedData.removeItems)(kind, name, recordId, true));
272
- } catch (_error) {
273
- error = _error;
292
+ return deletedRecord;
293
+ } finally {
294
+ dispatch.__unstableReleaseStoreLock(lock);
274
295
  }
275
-
276
- dispatch({
277
- type: 'DELETE_ENTITY_RECORD_FINISH',
278
- kind,
279
- name,
280
- recordId,
281
- error
282
- });
283
- return deletedRecord;
284
- } finally {
285
- dispatch.__unstableReleaseStoreLock(lock);
286
- }
296
+ };
287
297
  };
288
298
  /**
289
299
  * Returns an action object that triggers an
@@ -302,52 +312,56 @@ const deleteEntityRecord = (kind, name, recordId, query, {
302
312
 
303
313
  exports.deleteEntityRecord = deleteEntityRecord;
304
314
 
305
- const editEntityRecord = (kind, name, recordId, edits, options = {}) => ({
306
- select,
307
- dispatch
308
- }) => {
309
- const entity = select.getEntity(kind, name);
310
-
311
- if (!entity) {
312
- throw new Error(`The entity being edited (${kind}, ${name}) does not have a loaded config.`);
313
- }
315
+ const editEntityRecord = function (kind, name, recordId, edits) {
316
+ let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
317
+ return _ref2 => {
318
+ let {
319
+ select,
320
+ dispatch
321
+ } = _ref2;
322
+ const entity = select.getEntity(kind, name);
323
+
324
+ if (!entity) {
325
+ throw new Error(`The entity being edited (${kind}, ${name}) does not have a loaded config.`);
326
+ }
314
327
 
315
- const {
316
- transientEdits = {},
317
- mergedEdits = {}
318
- } = entity;
319
- const record = select.getRawEntityRecord(kind, name, recordId);
320
- const editedRecord = select.getEditedEntityRecord(kind, name, recordId);
321
- const edit = {
322
- kind,
323
- name,
324
- recordId,
325
- // Clear edits when they are equal to their persisted counterparts
326
- // so that the property is not considered dirty.
327
- edits: Object.keys(edits).reduce((acc, key) => {
328
- const recordValue = record[key];
329
- const editedRecordValue = editedRecord[key];
330
- const value = mergedEdits[key] ? { ...editedRecordValue,
331
- ...edits[key]
332
- } : edits[key];
333
- acc[key] = (0, _lodash.isEqual)(recordValue, value) ? undefined : value;
334
- return acc;
335
- }, {}),
336
- transientEdits
337
- };
338
- dispatch({
339
- type: 'EDIT_ENTITY_RECORD',
340
- ...edit,
341
- meta: {
342
- undo: !options.undoIgnore && { ...edit,
343
- // Send the current values for things like the first undo stack entry.
344
- edits: Object.keys(edits).reduce((acc, key) => {
345
- acc[key] = editedRecord[key];
346
- return acc;
347
- }, {})
328
+ const {
329
+ transientEdits = {},
330
+ mergedEdits = {}
331
+ } = entity;
332
+ const record = select.getRawEntityRecord(kind, name, recordId);
333
+ const editedRecord = select.getEditedEntityRecord(kind, name, recordId);
334
+ const edit = {
335
+ kind,
336
+ name,
337
+ recordId,
338
+ // Clear edits when they are equal to their persisted counterparts
339
+ // so that the property is not considered dirty.
340
+ edits: Object.keys(edits).reduce((acc, key) => {
341
+ const recordValue = record[key];
342
+ const editedRecordValue = editedRecord[key];
343
+ const value = mergedEdits[key] ? { ...editedRecordValue,
344
+ ...edits[key]
345
+ } : edits[key];
346
+ acc[key] = (0, _lodash.isEqual)(recordValue, value) ? undefined : value;
347
+ return acc;
348
+ }, {}),
349
+ transientEdits
350
+ };
351
+ dispatch({
352
+ type: 'EDIT_ENTITY_RECORD',
353
+ ...edit,
354
+ meta: {
355
+ undo: !options.undoIgnore && { ...edit,
356
+ // Send the current values for things like the first undo stack entry.
357
+ edits: Object.keys(edits).reduce((acc, key) => {
358
+ acc[key] = editedRecord[key];
359
+ return acc;
360
+ }, {})
361
+ }
348
362
  }
349
- }
350
- });
363
+ });
364
+ };
351
365
  };
352
366
  /**
353
367
  * Action triggered to undo the last edit to
@@ -359,10 +373,11 @@ const editEntityRecord = (kind, name, recordId, edits, options = {}) => ({
359
373
 
360
374
  exports.editEntityRecord = editEntityRecord;
361
375
 
362
- const undo = () => ({
363
- select,
364
- dispatch
365
- }) => {
376
+ const undo = () => _ref3 => {
377
+ let {
378
+ select,
379
+ dispatch
380
+ } = _ref3;
366
381
  const undoEdit = select.getUndoEdit();
367
382
 
368
383
  if (!undoEdit) {
@@ -387,10 +402,11 @@ const undo = () => ({
387
402
 
388
403
  exports.undo = undo;
389
404
 
390
- const redo = () => ({
391
- select,
392
- dispatch
393
- }) => {
405
+ const redo = () => _ref4 => {
406
+ let {
407
+ select,
408
+ dispatch
409
+ } = _ref4;
394
410
  const redoEdit = select.getRedoEdit();
395
411
 
396
412
  if (!redoEdit) {
@@ -433,148 +449,152 @@ function __unstableCreateUndoLevel() {
433
449
  */
434
450
 
435
451
 
436
- const saveEntityRecord = (kind, name, record, {
437
- isAutosave = false,
438
- __unstableFetch = _apiFetch.default
439
- } = {}) => async ({
440
- select,
441
- resolveSelect,
442
- dispatch
443
- }) => {
444
- const entities = await dispatch((0, _entities.getKindEntities)(kind));
445
- const entity = (0, _lodash.find)(entities, {
446
- kind,
447
- name
448
- });
449
-
450
- if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
451
- return;
452
- }
453
-
454
- const entityIdKey = entity.key || _entities.DEFAULT_ENTITY_KEY;
455
- const recordId = record[entityIdKey];
456
- const lock = await dispatch.__unstableAcquireStoreLock(_name.STORE_NAME, ['entities', 'data', kind, name, recordId || (0, _uuid.v4)()], {
457
- exclusive: true
458
- });
452
+ const saveEntityRecord = function (kind, name, record) {
453
+ let {
454
+ isAutosave = false,
455
+ __unstableFetch = _apiFetch.default
456
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
457
+ return async _ref5 => {
458
+ let {
459
+ select,
460
+ resolveSelect,
461
+ dispatch
462
+ } = _ref5;
463
+ const entities = await dispatch((0, _entities.getKindEntities)(kind));
464
+ const entity = (0, _lodash.find)(entities, {
465
+ kind,
466
+ name
467
+ });
459
468
 
460
- try {
461
- // Evaluate optimized edits.
462
- // (Function edits that should be evaluated on save to avoid expensive computations on every edit.)
463
- for (const [key, value] of Object.entries(record)) {
464
- if (typeof value === 'function') {
465
- const evaluatedValue = value(select.getEditedEntityRecord(kind, name, recordId));
466
- dispatch.editEntityRecord(kind, name, recordId, {
467
- [key]: evaluatedValue
468
- }, {
469
- undoIgnore: true
470
- });
471
- record[key] = evaluatedValue;
472
- }
469
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
470
+ return;
473
471
  }
474
472
 
475
- dispatch({
476
- type: 'SAVE_ENTITY_RECORD_START',
477
- kind,
478
- name,
479
- recordId,
480
- isAutosave
473
+ const entityIdKey = entity.key || _entities.DEFAULT_ENTITY_KEY;
474
+ const recordId = record[entityIdKey];
475
+ const lock = await dispatch.__unstableAcquireStoreLock(_name.STORE_NAME, ['entities', 'data', kind, name, recordId || (0, _uuid.v4)()], {
476
+ exclusive: true
481
477
  });
482
- let updatedRecord;
483
- let error;
484
478
 
485
479
  try {
486
- const path = `${entity.baseURL}${recordId ? '/' + recordId : ''}`;
487
- const persistedRecord = select.getRawEntityRecord(kind, name, recordId);
488
-
489
- if (isAutosave) {
490
- // Most of this autosave logic is very specific to posts.
491
- // This is fine for now as it is the only supported autosave,
492
- // but ideally this should all be handled in the back end,
493
- // so the client just sends and receives objects.
494
- const currentUser = select.getCurrentUser();
495
- const currentUserId = currentUser ? currentUser.id : undefined;
496
- const autosavePost = resolveSelect.getAutosave(persistedRecord.type, persistedRecord.id, currentUserId); // Autosaves need all expected fields to be present.
497
- // So we fallback to the previous autosave and then
498
- // to the actual persisted entity if the edits don't
499
- // have a value.
500
-
501
- let data = { ...persistedRecord,
502
- ...autosavePost,
503
- ...record
504
- };
505
- data = Object.keys(data).reduce((acc, key) => {
506
- if (['title', 'excerpt', 'content'].includes(key)) {
507
- acc[key] = data[key];
508
- }
480
+ // Evaluate optimized edits.
481
+ // (Function edits that should be evaluated on save to avoid expensive computations on every edit.)
482
+ for (const [key, value] of Object.entries(record)) {
483
+ if (typeof value === 'function') {
484
+ const evaluatedValue = value(select.getEditedEntityRecord(kind, name, recordId));
485
+ dispatch.editEntityRecord(kind, name, recordId, {
486
+ [key]: evaluatedValue
487
+ }, {
488
+ undoIgnore: true
489
+ });
490
+ record[key] = evaluatedValue;
491
+ }
492
+ }
509
493
 
510
- return acc;
511
- }, {
512
- status: data.status === 'auto-draft' ? 'draft' : data.status
513
- });
514
- updatedRecord = await __unstableFetch({
515
- path: `${path}/autosaves`,
516
- method: 'POST',
517
- data
518
- }); // An autosave may be processed by the server as a regular save
519
- // when its update is requested by the author and the post had
520
- // draft or auto-draft status.
521
-
522
- if (persistedRecord.id === updatedRecord.id) {
523
- let newRecord = { ...persistedRecord,
524
- ...data,
525
- ...updatedRecord
494
+ dispatch({
495
+ type: 'SAVE_ENTITY_RECORD_START',
496
+ kind,
497
+ name,
498
+ recordId,
499
+ isAutosave
500
+ });
501
+ let updatedRecord;
502
+ let error;
503
+
504
+ try {
505
+ const path = `${entity.baseURL}${recordId ? '/' + recordId : ''}`;
506
+ const persistedRecord = select.getRawEntityRecord(kind, name, recordId);
507
+
508
+ if (isAutosave) {
509
+ // Most of this autosave logic is very specific to posts.
510
+ // This is fine for now as it is the only supported autosave,
511
+ // but ideally this should all be handled in the back end,
512
+ // so the client just sends and receives objects.
513
+ const currentUser = select.getCurrentUser();
514
+ const currentUserId = currentUser ? currentUser.id : undefined;
515
+ const autosavePost = resolveSelect.getAutosave(persistedRecord.type, persistedRecord.id, currentUserId); // Autosaves need all expected fields to be present.
516
+ // So we fallback to the previous autosave and then
517
+ // to the actual persisted entity if the edits don't
518
+ // have a value.
519
+
520
+ let data = { ...persistedRecord,
521
+ ...autosavePost,
522
+ ...record
526
523
  };
527
- newRecord = Object.keys(newRecord).reduce((acc, key) => {
528
- // These properties are persisted in autosaves.
524
+ data = Object.keys(data).reduce((acc, key) => {
529
525
  if (['title', 'excerpt', 'content'].includes(key)) {
530
- acc[key] = newRecord[key];
531
- } else if (key === 'status') {
532
- // Status is only persisted in autosaves when going from
533
- // "auto-draft" to "draft".
534
- acc[key] = persistedRecord.status === 'auto-draft' && newRecord.status === 'draft' ? newRecord.status : persistedRecord.status;
535
- } else {
536
- // These properties are not persisted in autosaves.
537
- acc[key] = persistedRecord[key];
526
+ acc[key] = data[key];
538
527
  }
539
528
 
540
529
  return acc;
541
- }, {});
542
- dispatch.receiveEntityRecords(kind, name, newRecord, undefined, true);
530
+ }, {
531
+ status: data.status === 'auto-draft' ? 'draft' : data.status
532
+ });
533
+ updatedRecord = await __unstableFetch({
534
+ path: `${path}/autosaves`,
535
+ method: 'POST',
536
+ data
537
+ }); // An autosave may be processed by the server as a regular save
538
+ // when its update is requested by the author and the post had
539
+ // draft or auto-draft status.
540
+
541
+ if (persistedRecord.id === updatedRecord.id) {
542
+ let newRecord = { ...persistedRecord,
543
+ ...data,
544
+ ...updatedRecord
545
+ };
546
+ newRecord = Object.keys(newRecord).reduce((acc, key) => {
547
+ // These properties are persisted in autosaves.
548
+ if (['title', 'excerpt', 'content'].includes(key)) {
549
+ acc[key] = newRecord[key];
550
+ } else if (key === 'status') {
551
+ // Status is only persisted in autosaves when going from
552
+ // "auto-draft" to "draft".
553
+ acc[key] = persistedRecord.status === 'auto-draft' && newRecord.status === 'draft' ? newRecord.status : persistedRecord.status;
554
+ } else {
555
+ // These properties are not persisted in autosaves.
556
+ acc[key] = persistedRecord[key];
557
+ }
558
+
559
+ return acc;
560
+ }, {});
561
+ dispatch.receiveEntityRecords(kind, name, newRecord, undefined, true);
562
+ } else {
563
+ dispatch.receiveAutosaves(persistedRecord.id, updatedRecord);
564
+ }
543
565
  } else {
544
- dispatch.receiveAutosaves(persistedRecord.id, updatedRecord);
545
- }
546
- } else {
547
- let edits = record;
566
+ let edits = record;
548
567
 
549
- if (entity.__unstablePrePersist) {
550
- edits = { ...edits,
551
- ...entity.__unstablePrePersist(persistedRecord, edits)
552
- };
553
- }
568
+ if (entity.__unstablePrePersist) {
569
+ edits = { ...edits,
570
+ ...entity.__unstablePrePersist(persistedRecord, edits)
571
+ };
572
+ }
554
573
 
555
- updatedRecord = await __unstableFetch({
556
- path,
557
- method: recordId ? 'PUT' : 'POST',
558
- data: edits
559
- });
560
- dispatch.receiveEntityRecords(kind, name, updatedRecord, undefined, true, edits);
574
+ updatedRecord = await __unstableFetch({
575
+ path,
576
+ method: recordId ? 'PUT' : 'POST',
577
+ data: edits
578
+ });
579
+ dispatch.receiveEntityRecords(kind, name, updatedRecord, undefined, true, edits);
580
+ }
581
+ } catch (_error) {
582
+ error = _error;
561
583
  }
562
- } catch (_error) {
563
- error = _error;
564
- }
565
584
 
566
- dispatch({
567
- type: 'SAVE_ENTITY_RECORD_FINISH',
568
- kind,
569
- name,
570
- recordId,
571
- error,
572
- isAutosave
573
- });
574
- return updatedRecord;
575
- } finally {
576
- dispatch.__unstableReleaseStoreLock(lock);
577
- }
585
+ dispatch({
586
+ type: 'SAVE_ENTITY_RECORD_FINISH',
587
+ kind,
588
+ name,
589
+ recordId,
590
+ error,
591
+ isAutosave
592
+ });
593
+ return updatedRecord;
594
+ } finally {
595
+ dispatch.__unstableReleaseStoreLock(lock);
596
+ }
597
+ };
578
598
  };
579
599
  /**
580
600
  * Runs multiple core-data actions at the same time using one API request.
@@ -602,9 +622,10 @@ const saveEntityRecord = (kind, name, record, {
602
622
 
603
623
  exports.saveEntityRecord = saveEntityRecord;
604
624
 
605
- const __experimentalBatch = requests => async ({
606
- dispatch
607
- }) => {
625
+ const __experimentalBatch = requests => async _ref6 => {
626
+ let {
627
+ dispatch
628
+ } = _ref6;
608
629
  const batch = (0, _batch.createBatch)();
609
630
  const api = {
610
631
  saveEntityRecord(kind, name, record, options) {
@@ -642,10 +663,12 @@ const __experimentalBatch = requests => async ({
642
663
 
643
664
  exports.__experimentalBatch = __experimentalBatch;
644
665
 
645
- const saveEditedEntityRecord = (kind, name, recordId, options) => async ({
646
- select,
647
- dispatch
648
- }) => {
666
+ const saveEditedEntityRecord = (kind, name, recordId, options) => async _ref7 => {
667
+ let {
668
+ select,
669
+ dispatch
670
+ } = _ref7;
671
+
649
672
  if (!select.hasEditsForEntityRecord(kind, name, recordId)) {
650
673
  return;
651
674
  }
@@ -681,10 +704,12 @@ const saveEditedEntityRecord = (kind, name, recordId, options) => async ({
681
704
 
682
705
  exports.saveEditedEntityRecord = saveEditedEntityRecord;
683
706
 
684
- const __experimentalSaveSpecifiedEntityEdits = (kind, name, recordId, itemsToSave, options) => async ({
685
- select,
686
- dispatch
687
- }) => {
707
+ const __experimentalSaveSpecifiedEntityEdits = (kind, name, recordId, itemsToSave, options) => async _ref8 => {
708
+ let {
709
+ select,
710
+ dispatch
711
+ } = _ref8;
712
+
688
713
  if (!select.hasEditsForEntityRecord(kind, name, recordId)) {
689
714
  return;
690
715
  }