@wordpress/core-data 4.0.2 → 4.0.3

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/README.md CHANGED
@@ -12,7 +12,7 @@ Install the module
12
12
  npm install @wordpress/core-data --save
13
13
  ```
14
14
 
15
- _This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for ES2015+ such as IE browsers then using [core-js](https://github.com/zloirock/core-js) will add polyfills for these methods._
15
+ _This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._
16
16
 
17
17
  ## Example
18
18
 
package/build/actions.js CHANGED
@@ -13,18 +13,15 @@ exports.receiveCurrentTheme = receiveCurrentTheme;
13
13
  exports.receiveThemeSupports = receiveThemeSupports;
14
14
  exports.receiveEmbedPreview = receiveEmbedPreview;
15
15
  exports.__unstableCreateUndoLevel = __unstableCreateUndoLevel;
16
- exports.__experimentalBatch = __experimentalBatch;
17
16
  exports.receiveUploadPermissions = receiveUploadPermissions;
18
17
  exports.receiveUserPermission = receiveUserPermission;
19
18
  exports.receiveAutosaves = receiveAutosaves;
20
- exports.__experimentalSaveSpecifiedEntityEdits = exports.saveEditedEntityRecord = exports.saveEntityRecord = exports.redo = exports.undo = exports.editEntityRecord = exports.deleteEntityRecord = void 0;
19
+ exports.__experimentalSaveSpecifiedEntityEdits = exports.saveEditedEntityRecord = exports.__experimentalBatch = exports.saveEntityRecord = exports.redo = exports.undo = exports.editEntityRecord = exports.deleteEntityRecord = void 0;
21
20
 
22
21
  var _lodash = require("lodash");
23
22
 
24
23
  var _uuid = require("uuid");
25
24
 
26
- var _dataControls = require("@wordpress/data-controls");
27
-
28
25
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
29
26
 
30
27
  var _url = require("@wordpress/url");
@@ -35,8 +32,6 @@ var _entities = require("./entities");
35
32
 
36
33
  var _batch = require("./batch");
37
34
 
38
- var _controls = require("./controls");
39
-
40
35
  var _name = require("./name");
41
36
 
42
37
  /**
@@ -208,7 +203,7 @@ const deleteEntityRecord = (kind, name, recordId, query, {
208
203
  let error;
209
204
  let deletedRecord = false;
210
205
 
211
- if (!entity) {
206
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
212
207
  return;
213
208
  }
214
209
 
@@ -269,7 +264,7 @@ const deleteEntityRecord = (kind, name, recordId, query, {
269
264
 
270
265
  exports.deleteEntityRecord = deleteEntityRecord;
271
266
 
272
- const editEntityRecord = (kind, name, recordId, edits, options = {}) => async ({
267
+ const editEntityRecord = (kind, name, recordId, edits, options = {}) => ({
273
268
  select,
274
269
  dispatch
275
270
  }) => {
@@ -302,7 +297,7 @@ const editEntityRecord = (kind, name, recordId, edits, options = {}) => async ({
302
297
  }, {}),
303
298
  transientEdits
304
299
  };
305
- return await dispatch({
300
+ dispatch({
306
301
  type: 'EDIT_ENTITY_RECORD',
307
302
  ...edit,
308
303
  meta: {
@@ -414,7 +409,7 @@ const saveEntityRecord = (kind, name, record, {
414
409
  name
415
410
  });
416
411
 
417
- if (!entity) {
412
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
418
413
  return;
419
414
  }
420
415
 
@@ -430,7 +425,7 @@ const saveEntityRecord = (kind, name, record, {
430
425
  for (const [key, value] of Object.entries(record)) {
431
426
  if (typeof value === 'function') {
432
427
  const evaluatedValue = value(select.getEditedEntityRecord(kind, name, recordId));
433
- await dispatch.editEntityRecord(kind, name, recordId, {
428
+ dispatch.editEntityRecord(kind, name, recordId, {
434
429
  [key]: evaluatedValue
435
430
  }, {
436
431
  undoIgnore: true
@@ -439,7 +434,7 @@ const saveEntityRecord = (kind, name, record, {
439
434
  }
440
435
  }
441
436
 
442
- await dispatch({
437
+ dispatch({
443
438
  type: 'SAVE_ENTITY_RECORD_START',
444
439
  kind,
445
440
  name,
@@ -478,12 +473,11 @@ const saveEntityRecord = (kind, name, record, {
478
473
  }, {
479
474
  status: data.status === 'auto-draft' ? 'draft' : data.status
480
475
  });
481
- const options = {
476
+ updatedRecord = await __unstableFetch({
482
477
  path: `${path}/autosaves`,
483
478
  method: 'POST',
484
479
  data
485
- };
486
- updatedRecord = await __unstableFetch(options); // An autosave may be processed by the server as a regular save
480
+ }); // An autosave may be processed by the server as a regular save
487
481
  // when its update is requested by the author and the post had
488
482
  // draft or auto-draft status.
489
483
 
@@ -507,9 +501,9 @@ const saveEntityRecord = (kind, name, record, {
507
501
 
508
502
  return acc;
509
503
  }, {});
510
- await dispatch.receiveEntityRecords(kind, name, newRecord, undefined, true);
504
+ dispatch.receiveEntityRecords(kind, name, newRecord, undefined, true);
511
505
  } else {
512
- await dispatch.receiveAutosaves(persistedRecord.id, updatedRecord);
506
+ dispatch.receiveAutosaves(persistedRecord.id, updatedRecord);
513
507
  }
514
508
  } else {
515
509
  let edits = record;
@@ -520,13 +514,12 @@ const saveEntityRecord = (kind, name, record, {
520
514
  };
521
515
  }
522
516
 
523
- const options = {
517
+ updatedRecord = await __unstableFetch({
524
518
  path,
525
519
  method: recordId ? 'PUT' : 'POST',
526
520
  data: edits
527
- };
528
- updatedRecord = await __unstableFetch(options);
529
- await dispatch.receiveEntityRecords(kind, name, updatedRecord, undefined, true, edits);
521
+ });
522
+ dispatch.receiveEntityRecords(kind, name, updatedRecord, undefined, true, edits);
530
523
  }
531
524
  } catch (_error) {
532
525
  error = _error;
@@ -542,7 +535,7 @@ const saveEntityRecord = (kind, name, record, {
542
535
  });
543
536
  return updatedRecord;
544
537
  } finally {
545
- await dispatch.__unstableReleaseStoreLock(lock);
538
+ dispatch.__unstableReleaseStoreLock(lock);
546
539
  }
547
540
  };
548
541
  /**
@@ -571,33 +564,34 @@ const saveEntityRecord = (kind, name, record, {
571
564
 
572
565
  exports.saveEntityRecord = saveEntityRecord;
573
566
 
574
- function* __experimentalBatch(requests) {
567
+ const __experimentalBatch = requests => async ({
568
+ dispatch
569
+ }) => {
575
570
  const batch = (0, _batch.createBatch)();
576
- const dispatch = yield (0, _controls.getDispatch)();
577
571
  const api = {
578
572
  saveEntityRecord(kind, name, record, options) {
579
- return batch.add(add => dispatch(_name.STORE_NAME).saveEntityRecord(kind, name, record, { ...options,
573
+ return batch.add(add => dispatch.saveEntityRecord(kind, name, record, { ...options,
580
574
  __unstableFetch: add
581
575
  }));
582
576
  },
583
577
 
584
578
  saveEditedEntityRecord(kind, name, recordId, options) {
585
- return batch.add(add => dispatch(_name.STORE_NAME).saveEditedEntityRecord(kind, name, recordId, { ...options,
579
+ return batch.add(add => dispatch.saveEditedEntityRecord(kind, name, recordId, { ...options,
586
580
  __unstableFetch: add
587
581
  }));
588
582
  },
589
583
 
590
584
  deleteEntityRecord(kind, name, recordId, query, options) {
591
- return batch.add(add => dispatch(_name.STORE_NAME).deleteEntityRecord(kind, name, recordId, query, { ...options,
585
+ return batch.add(add => dispatch.deleteEntityRecord(kind, name, recordId, query, { ...options,
592
586
  __unstableFetch: add
593
587
  }));
594
588
  }
595
589
 
596
590
  };
597
591
  const resultPromises = requests.map(request => request(api));
598
- const [, ...results] = yield (0, _dataControls.__unstableAwaitPromise)(Promise.all([batch.run(), ...resultPromises]));
592
+ const [, ...results] = await Promise.all([batch.run(), ...resultPromises]);
599
593
  return results;
600
- }
594
+ };
601
595
  /**
602
596
  * Action triggered to save an entity record's edits.
603
597
  *
@@ -608,6 +602,8 @@ function* __experimentalBatch(requests) {
608
602
  */
609
603
 
610
604
 
605
+ exports.__experimentalBatch = __experimentalBatch;
606
+
611
607
  const saveEditedEntityRecord = (kind, name, recordId, options) => async ({
612
608
  select,
613
609
  dispatch
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/actions.js"],"names":["receiveUserQuery","queryID","users","type","receiveCurrentUser","currentUser","addEntities","entities","receiveEntityRecords","kind","name","records","query","invalidateCache","edits","map","record","status","title","action","receiveCurrentTheme","currentTheme","receiveThemeSupports","themeSupports","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","triggerFetch","dispatch","entity","error","deletedRecord","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntity","Error","transientEdits","mergedEdits","getRawEntityRecord","editedRecord","getEditedEntityRecord","edit","Object","keys","reduce","acc","key","recordValue","editedRecordValue","value","undefined","meta","undo","undoIgnore","undoEdit","getUndoEdit","isUndo","redo","redoEdit","getRedoEdit","isRedo","__unstableCreateUndoLevel","saveEntityRecord","isAutosave","resolveSelect","entityIdKey","DEFAULT_ENTITY_KEY","entries","evaluatedValue","updatedRecord","persistedRecord","getCurrentUser","currentUserId","id","autosavePost","getAutosave","data","includes","newRecord","receiveAutosaves","__unstablePrePersist","__experimentalBatch","requests","batch","api","add","saveEditedEntityRecord","resultPromises","request","results","Promise","all","run","hasEditsForEntityRecord","getEntityRecordNonTransientEdits","__experimentalSaveSpecifiedEntityEdits","itemsToSave","editsToSave","some","item","receiveUploadPermissions","hasUploadPermissions","isAllowed","receiveUserPermission","postId","autosaves"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, isEqual, find } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { __unstableAwaitPromise } from '@wordpress/data-controls';\nimport triggerFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { receiveItems, removeItems, receiveQueriedItems } from './queried-data';\nimport { getKindEntities, DEFAULT_ENTITY_KEY } from './entities';\nimport { createBatch } from './batch';\nimport { getDispatch } from './controls';\nimport { STORE_NAME } from './name';\n\n/**\n * Returns an action object used in signalling that authors have been received.\n *\n * @param {string} queryID Query ID.\n * @param {Array|Object} users Users received.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserQuery( queryID, users ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_QUERY',\n\t\tusers: castArray( users ),\n\t\tqueryID,\n\t};\n}\n\n/**\n * Returns an action used in signalling that the current user has been received.\n *\n * @param {Object} currentUser Current user object.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentUser( currentUser ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_USER',\n\t\tcurrentUser,\n\t};\n}\n\n/**\n * Returns an action object used in adding new entities.\n *\n * @param {Array} entities Entities received.\n *\n * @return {Object} Action object.\n */\nexport function addEntities( entities ) {\n\treturn {\n\t\ttype: 'ADD_ENTITIES',\n\t\tentities,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that entity records have been received.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Array|Object} records Records received.\n * @param {?Object} query Query Object.\n * @param {?boolean} invalidateCache Should invalidate query caches.\n * @param {?Object} edits Edits to reset.\n * @return {Object} Action object.\n */\nexport function receiveEntityRecords(\n\tkind,\n\tname,\n\trecords,\n\tquery,\n\tinvalidateCache = false,\n\tedits\n) {\n\t// Auto drafts should not have titles, but some plugins rely on them so we can't filter this\n\t// on the server.\n\tif ( kind === 'postType' ) {\n\t\trecords = castArray( records ).map( ( record ) =>\n\t\t\trecord.status === 'auto-draft' ? { ...record, title: '' } : record\n\t\t);\n\t}\n\tlet action;\n\tif ( query ) {\n\t\taction = receiveQueriedItems( records, query, edits );\n\t} else {\n\t\taction = receiveItems( records, edits );\n\t}\n\n\treturn {\n\t\t...action,\n\t\tkind,\n\t\tname,\n\t\tinvalidateCache,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current theme has been received.\n *\n * @param {Object} currentTheme The current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentTheme( currentTheme ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_THEME',\n\t\tcurrentTheme,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @param {Object} themeSupports Theme support for the current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveThemeSupports( themeSupports ) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_SUPPORTS',\n\t\tthemeSupports,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the preview data for\n * a given URl has been received.\n *\n * @param {string} url URL to preview the embed for.\n * @param {*} preview Preview data.\n *\n * @return {Object} Action object.\n */\nexport function receiveEmbedPreview( url, preview ) {\n\treturn {\n\t\ttype: 'RECEIVE_EMBED_PREVIEW',\n\t\turl,\n\t\tpreview,\n\t};\n}\n\n/**\n * Action triggered to delete an entity record.\n *\n * @param {string} kind Kind of the deleted entity.\n * @param {string} name Name of the deleted entity.\n * @param {string} recordId Record ID of the deleted entity.\n * @param {?Object} query Special query parameters for the\n * DELETE API call.\n * @param {Object} [options] Delete options.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const deleteEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tquery,\n\t{ __unstableFetch = triggerFetch } = {}\n) => async ( { dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tlet error;\n\tlet deletedRecord = false;\n\tif ( ! entity ) {\n\t\treturn;\n\t}\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t} );\n\n\t\ttry {\n\t\t\tlet path = `${ entity.baseURL }/${ recordId }`;\n\n\t\t\tif ( query ) {\n\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t}\n\n\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t} );\n\n\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t} );\n\n\t\treturn deletedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Returns an action object that triggers an\n * edit to an entity record.\n *\n * @param {string} kind Kind of the edited entity record.\n * @param {string} name Name of the edited entity record.\n * @param {number} recordId Record ID of the edited entity record.\n * @param {Object} edits The edits.\n * @param {Object} options Options for the edit.\n * @param {boolean} options.undoIgnore Whether to ignore the edit in undo history or not.\n *\n * @return {Object} Action object.\n */\nexport const editEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tedits,\n\toptions = {}\n) => async ( { select, dispatch } ) => {\n\tconst entity = select.getEntity( kind, name );\n\tif ( ! entity ) {\n\t\tthrow new Error(\n\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t);\n\t}\n\tconst { transientEdits = {}, mergedEdits = {} } = entity;\n\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\tconst editedRecord = select.getEditedEntityRecord( kind, name, recordId );\n\n\tconst edit = {\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t// so that the property is not considered dirty.\n\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\tconst recordValue = record[ key ];\n\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t: edits[ key ];\n\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\treturn acc;\n\t\t}, {} ),\n\t\ttransientEdits,\n\t};\n\treturn await dispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...edit,\n\t\tmeta: {\n\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t...edit,\n\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t},\n\t} );\n};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n *\n * @return {undefined}\n */\nexport const undo = () => ( { select, dispatch } ) => {\n\tconst undoEdit = select.getUndoEdit();\n\tif ( ! undoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...undoEdit,\n\t\tmeta: { isUndo: true },\n\t} );\n};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n *\n * @return {undefined}\n */\nexport const redo = () => ( { select, dispatch } ) => {\n\tconst redoEdit = select.getRedoEdit();\n\tif ( ! redoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...redoEdit,\n\t\tmeta: { isRedo: true },\n\t} );\n};\n\n/**\n * Forces the creation of a new undo level.\n *\n * @return {Object} Action object.\n */\nexport function __unstableCreateUndoLevel() {\n\treturn { type: 'CREATE_UNDO_LEVEL' };\n}\n\n/**\n * Action triggered to save an entity record.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Object} record Record to be saved.\n * @param {Object} options Saving options.\n * @param {boolean} [options.isAutosave=false] Whether this is an autosave.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const saveEntityRecord = (\n\tkind,\n\tname,\n\trecord,\n\t{ isAutosave = false, __unstableFetch = triggerFetch } = {}\n) => async ( { select, resolveSelect, dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tif ( ! entity ) {\n\t\treturn;\n\t}\n\tconst entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n\tconst recordId = record[ entityIdKey ];\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId || uuid() ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\t// Evaluate optimized edits.\n\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t);\n\t\t\t\tawait dispatch.editEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\t{\n\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t}\n\t\t}\n\n\t\tawait dispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\tisAutosave,\n\t\t} );\n\t\tlet updatedRecord;\n\t\tlet error;\n\t\ttry {\n\t\t\tconst path = `${ entity.baseURL }${\n\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t}`;\n\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId\n\t\t\t);\n\n\t\t\tif ( isAutosave ) {\n\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\tconst currentUserId = currentUser ? currentUser.id : undefined;\n\t\t\t\tconst autosavePost = resolveSelect.getAutosave(\n\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\tcurrentUserId\n\t\t\t\t);\n\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t// have a value.\n\t\t\t\tlet data = { ...persistedRecord, ...autosavePost, ...record };\n\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes( key )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc[ key ] = data[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus:\n\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tconst options = {\n\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdata,\n\t\t\t\t};\n\t\t\t\tupdatedRecord = await __unstableFetch( options );\n\n\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t// draft or auto-draft status.\n\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t};\n\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\t\t\t\t\t\t\t// Status is only persisted in autosaves when going from\n\t\t\t\t\t\t\t\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\tpersistedRecord.status === 'auto-draft' &&\n\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tawait dispatch.receiveEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tawait dispatch.receiveAutosaves(\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet edits = record;\n\t\t\t\tif ( entity.__unstablePrePersist ) {\n\t\t\t\t\tedits = {\n\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t...entity.__unstablePrePersist(\n\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\tdata: edits,\n\t\t\t\t};\n\t\t\t\tupdatedRecord = await __unstableFetch( options );\n\t\t\t\tawait dispatch.receiveEntityRecords(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\tupdatedRecord,\n\t\t\t\t\tundefined,\n\t\t\t\t\ttrue,\n\t\t\t\t\tedits\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t\tisAutosave,\n\t\t} );\n\n\t\treturn updatedRecord;\n\t} finally {\n\t\tawait dispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Runs multiple core-data actions at the same time using one API request.\n *\n * Example:\n *\n * ```\n * const [ savedRecord, updatedRecord, deletedRecord ] =\n * await dispatch( 'core' ).__experimentalBatch( [\n * ( { saveEntityRecord } ) => saveEntityRecord( 'root', 'widget', widget ),\n * ( { saveEditedEntityRecord } ) => saveEntityRecord( 'root', 'widget', 123 ),\n * ( { deleteEntityRecord } ) => deleteEntityRecord( 'root', 'widget', 123, null ),\n * ] );\n * ```\n *\n * @param {Array} requests Array of functions which are invoked simultaneously.\n * Each function is passed an object containing\n * `saveEntityRecord`, `saveEditedEntityRecord`, and\n * `deleteEntityRecord`.\n *\n * @return {Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport function* __experimentalBatch( requests ) {\n\tconst batch = createBatch();\n\tconst dispatch = yield getDispatch();\n\tconst api = {\n\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch( STORE_NAME ).saveEntityRecord( kind, name, record, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch( STORE_NAME ).saveEditedEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\t{\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch( STORE_NAME ).deleteEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\tquery,\n\t\t\t\t\t{\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t};\n\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\tconst [ , ...results ] = yield __unstableAwaitPromise(\n\t\tPromise.all( [ batch.run(), ...resultPromises ] )\n\t);\n\treturn results;\n}\n\n/**\n * Action triggered to save an entity record's edits.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Object} options Saving options.\n */\nexport const saveEditedEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { id: recordId, ...edits };\n\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n};\n\n/**\n * Action triggered to save only specified properties for the entity.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Array} itemsToSave List of entity properties to save.\n * @param {Object} options Saving options.\n */\nexport const __experimentalSaveSpecifiedEntityEdits = (\n\tkind,\n\tname,\n\trecordId,\n\titemsToSave,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst editsToSave = {};\n\tfor ( const edit in edits ) {\n\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t}\n\t}\n\treturn await dispatch.saveEntityRecord( kind, name, editsToSave, options );\n};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @param {boolean} hasUploadPermissions Does the user have permission to upload files?\n *\n * @return {Object} Action object.\n */\nexport function receiveUploadPermissions( hasUploadPermissions ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey: 'create/media',\n\t\tisAllowed: hasUploadPermissions,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current user has\n * permission to perform an action on a REST resource.\n *\n * @param {string} key A key that represents the action and REST resource.\n * @param {boolean} isAllowed Whether or not the user can perform the action.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserPermission( key, isAllowed ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey,\n\t\tisAllowed,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the autosaves for a\n * post have been received.\n *\n * @param {number} postId The id of the post that is parent to the autosave.\n * @param {Array|Object} autosaves An array of autosaves or singular autosave object.\n *\n * @return {Object} Action object.\n */\nexport function receiveAutosaves( postId, autosaves ) {\n\treturn {\n\t\ttype: 'RECEIVE_AUTOSAVES',\n\t\tpostId,\n\t\tautosaves: castArray( autosaves ),\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/actions.js"],"names":["receiveUserQuery","queryID","users","type","receiveCurrentUser","currentUser","addEntities","entities","receiveEntityRecords","kind","name","records","query","invalidateCache","edits","map","record","status","title","action","receiveCurrentTheme","currentTheme","receiveThemeSupports","themeSupports","receiveEmbedPreview","url","preview","deleteEntityRecord","recordId","__unstableFetch","apiFetch","dispatch","entity","error","deletedRecord","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","path","baseURL","method","_error","__unstableReleaseStoreLock","editEntityRecord","options","select","getEntity","Error","transientEdits","mergedEdits","getRawEntityRecord","editedRecord","getEditedEntityRecord","edit","Object","keys","reduce","acc","key","recordValue","editedRecordValue","value","undefined","meta","undo","undoIgnore","undoEdit","getUndoEdit","isUndo","redo","redoEdit","getRedoEdit","isRedo","__unstableCreateUndoLevel","saveEntityRecord","isAutosave","resolveSelect","entityIdKey","DEFAULT_ENTITY_KEY","entries","evaluatedValue","updatedRecord","persistedRecord","getCurrentUser","currentUserId","id","autosavePost","getAutosave","data","includes","newRecord","receiveAutosaves","__unstablePrePersist","__experimentalBatch","requests","batch","api","add","saveEditedEntityRecord","resultPromises","request","results","Promise","all","run","hasEditsForEntityRecord","getEntityRecordNonTransientEdits","__experimentalSaveSpecifiedEntityEdits","itemsToSave","editsToSave","some","item","receiveUploadPermissions","hasUploadPermissions","isAllowed","receiveUserPermission","postId","autosaves"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, isEqual, find } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { receiveItems, removeItems, receiveQueriedItems } from './queried-data';\nimport { getKindEntities, DEFAULT_ENTITY_KEY } from './entities';\nimport { createBatch } from './batch';\nimport { STORE_NAME } from './name';\n\n/**\n * Returns an action object used in signalling that authors have been received.\n *\n * @param {string} queryID Query ID.\n * @param {Array|Object} users Users received.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserQuery( queryID, users ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_QUERY',\n\t\tusers: castArray( users ),\n\t\tqueryID,\n\t};\n}\n\n/**\n * Returns an action used in signalling that the current user has been received.\n *\n * @param {Object} currentUser Current user object.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentUser( currentUser ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_USER',\n\t\tcurrentUser,\n\t};\n}\n\n/**\n * Returns an action object used in adding new entities.\n *\n * @param {Array} entities Entities received.\n *\n * @return {Object} Action object.\n */\nexport function addEntities( entities ) {\n\treturn {\n\t\ttype: 'ADD_ENTITIES',\n\t\tentities,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that entity records have been received.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Array|Object} records Records received.\n * @param {?Object} query Query Object.\n * @param {?boolean} invalidateCache Should invalidate query caches.\n * @param {?Object} edits Edits to reset.\n * @return {Object} Action object.\n */\nexport function receiveEntityRecords(\n\tkind,\n\tname,\n\trecords,\n\tquery,\n\tinvalidateCache = false,\n\tedits\n) {\n\t// Auto drafts should not have titles, but some plugins rely on them so we can't filter this\n\t// on the server.\n\tif ( kind === 'postType' ) {\n\t\trecords = castArray( records ).map( ( record ) =>\n\t\t\trecord.status === 'auto-draft' ? { ...record, title: '' } : record\n\t\t);\n\t}\n\tlet action;\n\tif ( query ) {\n\t\taction = receiveQueriedItems( records, query, edits );\n\t} else {\n\t\taction = receiveItems( records, edits );\n\t}\n\n\treturn {\n\t\t...action,\n\t\tkind,\n\t\tname,\n\t\tinvalidateCache,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current theme has been received.\n *\n * @param {Object} currentTheme The current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveCurrentTheme( currentTheme ) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_THEME',\n\t\tcurrentTheme,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @param {Object} themeSupports Theme support for the current theme.\n *\n * @return {Object} Action object.\n */\nexport function receiveThemeSupports( themeSupports ) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_SUPPORTS',\n\t\tthemeSupports,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the preview data for\n * a given URl has been received.\n *\n * @param {string} url URL to preview the embed for.\n * @param {*} preview Preview data.\n *\n * @return {Object} Action object.\n */\nexport function receiveEmbedPreview( url, preview ) {\n\treturn {\n\t\ttype: 'RECEIVE_EMBED_PREVIEW',\n\t\turl,\n\t\tpreview,\n\t};\n}\n\n/**\n * Action triggered to delete an entity record.\n *\n * @param {string} kind Kind of the deleted entity.\n * @param {string} name Name of the deleted entity.\n * @param {string} recordId Record ID of the deleted entity.\n * @param {?Object} query Special query parameters for the\n * DELETE API call.\n * @param {Object} [options] Delete options.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const deleteEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tquery,\n\t{ __unstableFetch = apiFetch } = {}\n) => async ( { dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tlet error;\n\tlet deletedRecord = false;\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t} );\n\n\t\ttry {\n\t\t\tlet path = `${ entity.baseURL }/${ recordId }`;\n\n\t\t\tif ( query ) {\n\t\t\t\tpath = addQueryArgs( path, query );\n\t\t\t}\n\n\t\t\tdeletedRecord = await __unstableFetch( {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t} );\n\n\t\t\tawait dispatch( removeItems( kind, name, recordId, true ) );\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'DELETE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t} );\n\n\t\treturn deletedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Returns an action object that triggers an\n * edit to an entity record.\n *\n * @param {string} kind Kind of the edited entity record.\n * @param {string} name Name of the edited entity record.\n * @param {number} recordId Record ID of the edited entity record.\n * @param {Object} edits The edits.\n * @param {Object} options Options for the edit.\n * @param {boolean} options.undoIgnore Whether to ignore the edit in undo history or not.\n *\n * @return {Object} Action object.\n */\nexport const editEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\tedits,\n\toptions = {}\n) => ( { select, dispatch } ) => {\n\tconst entity = select.getEntity( kind, name );\n\tif ( ! entity ) {\n\t\tthrow new Error(\n\t\t\t`The entity being edited (${ kind }, ${ name }) does not have a loaded config.`\n\t\t);\n\t}\n\tconst { transientEdits = {}, mergedEdits = {} } = entity;\n\tconst record = select.getRawEntityRecord( kind, name, recordId );\n\tconst editedRecord = select.getEditedEntityRecord( kind, name, recordId );\n\n\tconst edit = {\n\t\tkind,\n\t\tname,\n\t\trecordId,\n\t\t// Clear edits when they are equal to their persisted counterparts\n\t\t// so that the property is not considered dirty.\n\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\tconst recordValue = record[ key ];\n\t\t\tconst editedRecordValue = editedRecord[ key ];\n\t\t\tconst value = mergedEdits[ key ]\n\t\t\t\t? { ...editedRecordValue, ...edits[ key ] }\n\t\t\t\t: edits[ key ];\n\t\t\tacc[ key ] = isEqual( recordValue, value ) ? undefined : value;\n\t\t\treturn acc;\n\t\t}, {} ),\n\t\ttransientEdits,\n\t};\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...edit,\n\t\tmeta: {\n\t\t\tundo: ! options.undoIgnore && {\n\t\t\t\t...edit,\n\t\t\t\t// Send the current values for things like the first undo stack entry.\n\t\t\t\tedits: Object.keys( edits ).reduce( ( acc, key ) => {\n\t\t\t\t\tacc[ key ] = editedRecord[ key ];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t},\n\t} );\n};\n\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n *\n * @return {undefined}\n */\nexport const undo = () => ( { select, dispatch } ) => {\n\tconst undoEdit = select.getUndoEdit();\n\tif ( ! undoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...undoEdit,\n\t\tmeta: { isUndo: true },\n\t} );\n};\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n *\n * @return {undefined}\n */\nexport const redo = () => ( { select, dispatch } ) => {\n\tconst redoEdit = select.getRedoEdit();\n\tif ( ! redoEdit ) {\n\t\treturn;\n\t}\n\tdispatch( {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...redoEdit,\n\t\tmeta: { isRedo: true },\n\t} );\n};\n\n/**\n * Forces the creation of a new undo level.\n *\n * @return {Object} Action object.\n */\nexport function __unstableCreateUndoLevel() {\n\treturn { type: 'CREATE_UNDO_LEVEL' };\n}\n\n/**\n * Action triggered to save an entity record.\n *\n * @param {string} kind Kind of the received entity.\n * @param {string} name Name of the received entity.\n * @param {Object} record Record to be saved.\n * @param {Object} options Saving options.\n * @param {boolean} [options.isAutosave=false] Whether this is an autosave.\n * @param {Function} [options.__unstableFetch] Internal use only. Function to\n * call instead of `apiFetch()`.\n * Must return a promise.\n */\nexport const saveEntityRecord = (\n\tkind,\n\tname,\n\trecord,\n\t{ isAutosave = false, __unstableFetch = apiFetch } = {}\n) => async ( { select, resolveSelect, dispatch } ) => {\n\tconst entities = await dispatch( getKindEntities( kind ) );\n\tconst entity = find( entities, { kind, name } );\n\tif ( ! entity || entity?.__experimentalNoFetch ) {\n\t\treturn;\n\t}\n\tconst entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n\tconst recordId = record[ entityIdKey ];\n\n\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId || uuid() ],\n\t\t{ exclusive: true }\n\t);\n\n\ttry {\n\t\t// Evaluate optimized edits.\n\t\t// (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\t\tfor ( const [ key, value ] of Object.entries( record ) ) {\n\t\t\tif ( typeof value === 'function' ) {\n\t\t\t\tconst evaluatedValue = value(\n\t\t\t\t\tselect.getEditedEntityRecord( kind, name, recordId )\n\t\t\t\t);\n\t\t\t\tdispatch.editEntityRecord(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\t{\n\t\t\t\t\t\t[ key ]: evaluatedValue,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t\t\trecord[ key ] = evaluatedValue;\n\t\t\t}\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_START',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\tisAutosave,\n\t\t} );\n\t\tlet updatedRecord;\n\t\tlet error;\n\t\ttry {\n\t\t\tconst path = `${ entity.baseURL }${\n\t\t\t\trecordId ? '/' + recordId : ''\n\t\t\t}`;\n\t\t\tconst persistedRecord = select.getRawEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId\n\t\t\t);\n\n\t\t\tif ( isAutosave ) {\n\t\t\t\t// Most of this autosave logic is very specific to posts.\n\t\t\t\t// This is fine for now as it is the only supported autosave,\n\t\t\t\t// but ideally this should all be handled in the back end,\n\t\t\t\t// so the client just sends and receives objects.\n\t\t\t\tconst currentUser = select.getCurrentUser();\n\t\t\t\tconst currentUserId = currentUser ? currentUser.id : undefined;\n\t\t\t\tconst autosavePost = resolveSelect.getAutosave(\n\t\t\t\t\tpersistedRecord.type,\n\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\tcurrentUserId\n\t\t\t\t);\n\t\t\t\t// Autosaves need all expected fields to be present.\n\t\t\t\t// So we fallback to the previous autosave and then\n\t\t\t\t// to the actual persisted entity if the edits don't\n\t\t\t\t// have a value.\n\t\t\t\tlet data = { ...persistedRecord, ...autosavePost, ...record };\n\t\t\t\tdata = Object.keys( data ).reduce(\n\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes( key )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc[ key ] = data[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus:\n\t\t\t\t\t\t\tdata.status === 'auto-draft'\n\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t: data.status,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath: `${ path }/autosaves`,\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tdata,\n\t\t\t\t} );\n\n\t\t\t\t// An autosave may be processed by the server as a regular save\n\t\t\t\t// when its update is requested by the author and the post had\n\t\t\t\t// draft or auto-draft status.\n\t\t\t\tif ( persistedRecord.id === updatedRecord.id ) {\n\t\t\t\t\tlet newRecord = {\n\t\t\t\t\t\t...persistedRecord,\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t...updatedRecord,\n\t\t\t\t\t};\n\t\t\t\t\tnewRecord = Object.keys( newRecord ).reduce(\n\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t// These properties are persisted in autosaves.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t[ 'title', 'excerpt', 'content' ].includes(\n\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tacc[ key ] = newRecord[ key ];\n\t\t\t\t\t\t\t} else if ( key === 'status' ) {\n\t\t\t\t\t\t\t\t// Status is only persisted in autosaves when going from\n\t\t\t\t\t\t\t\t// \"auto-draft\" to \"draft\".\n\t\t\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\t\t\tpersistedRecord.status === 'auto-draft' &&\n\t\t\t\t\t\t\t\t\tnewRecord.status === 'draft'\n\t\t\t\t\t\t\t\t\t\t? newRecord.status\n\t\t\t\t\t\t\t\t\t\t: persistedRecord.status;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// These properties are not persisted in autosaves.\n\t\t\t\t\t\t\t\tacc[ key ] = persistedRecord[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewRecord,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdispatch.receiveAutosaves(\n\t\t\t\t\t\tpersistedRecord.id,\n\t\t\t\t\t\tupdatedRecord\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet edits = record;\n\t\t\t\tif ( entity.__unstablePrePersist ) {\n\t\t\t\t\tedits = {\n\t\t\t\t\t\t...edits,\n\t\t\t\t\t\t...entity.__unstablePrePersist(\n\t\t\t\t\t\t\tpersistedRecord,\n\t\t\t\t\t\t\tedits\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tupdatedRecord = await __unstableFetch( {\n\t\t\t\t\tpath,\n\t\t\t\t\tmethod: recordId ? 'PUT' : 'POST',\n\t\t\t\t\tdata: edits,\n\t\t\t\t} );\n\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\tupdatedRecord,\n\t\t\t\t\tundefined,\n\t\t\t\t\ttrue,\n\t\t\t\t\tedits\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'SAVE_ENTITY_RECORD_FINISH',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId,\n\t\t\terror,\n\t\t\tisAutosave,\n\t\t} );\n\n\t\treturn updatedRecord;\n\t} finally {\n\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t}\n};\n\n/**\n * Runs multiple core-data actions at the same time using one API request.\n *\n * Example:\n *\n * ```\n * const [ savedRecord, updatedRecord, deletedRecord ] =\n * await dispatch( 'core' ).__experimentalBatch( [\n * ( { saveEntityRecord } ) => saveEntityRecord( 'root', 'widget', widget ),\n * ( { saveEditedEntityRecord } ) => saveEntityRecord( 'root', 'widget', 123 ),\n * ( { deleteEntityRecord } ) => deleteEntityRecord( 'root', 'widget', 123, null ),\n * ] );\n * ```\n *\n * @param {Array} requests Array of functions which are invoked simultaneously.\n * Each function is passed an object containing\n * `saveEntityRecord`, `saveEditedEntityRecord`, and\n * `deleteEntityRecord`.\n *\n * @return {Promise} A promise that resolves to an array containing the return\n * values of each function given in `requests`.\n */\nexport const __experimentalBatch = ( requests ) => async ( { dispatch } ) => {\n\tconst batch = createBatch();\n\tconst api = {\n\t\tsaveEntityRecord( kind, name, record, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEntityRecord( kind, name, record, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tsaveEditedEntityRecord( kind, name, recordId, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.saveEditedEntityRecord( kind, name, recordId, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tdeleteEntityRecord( kind, name, recordId, query, options ) {\n\t\t\treturn batch.add( ( add ) =>\n\t\t\t\tdispatch.deleteEntityRecord( kind, name, recordId, query, {\n\t\t\t\t\t...options,\n\t\t\t\t\t__unstableFetch: add,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n\tconst resultPromises = requests.map( ( request ) => request( api ) );\n\tconst [ , ...results ] = await Promise.all( [\n\t\tbatch.run(),\n\t\t...resultPromises,\n\t] );\n\treturn results;\n};\n\n/**\n * Action triggered to save an entity record's edits.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Object} options Saving options.\n */\nexport const saveEditedEntityRecord = (\n\tkind,\n\tname,\n\trecordId,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { id: recordId, ...edits };\n\treturn await dispatch.saveEntityRecord( kind, name, record, options );\n};\n\n/**\n * Action triggered to save only specified properties for the entity.\n *\n * @param {string} kind Kind of the entity.\n * @param {string} name Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Array} itemsToSave List of entity properties to save.\n * @param {Object} options Saving options.\n */\nexport const __experimentalSaveSpecifiedEntityEdits = (\n\tkind,\n\tname,\n\trecordId,\n\titemsToSave,\n\toptions\n) => async ( { select, dispatch } ) => {\n\tif ( ! select.hasEditsForEntityRecord( kind, name, recordId ) ) {\n\t\treturn;\n\t}\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst editsToSave = {};\n\tfor ( const edit in edits ) {\n\t\tif ( itemsToSave.some( ( item ) => item === edit ) ) {\n\t\t\teditsToSave[ edit ] = edits[ edit ];\n\t\t}\n\t}\n\treturn await dispatch.saveEntityRecord( kind, name, editsToSave, options );\n};\n\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @param {boolean} hasUploadPermissions Does the user have permission to upload files?\n *\n * @return {Object} Action object.\n */\nexport function receiveUploadPermissions( hasUploadPermissions ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey: 'create/media',\n\t\tisAllowed: hasUploadPermissions,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the current user has\n * permission to perform an action on a REST resource.\n *\n * @param {string} key A key that represents the action and REST resource.\n * @param {boolean} isAllowed Whether or not the user can perform the action.\n *\n * @return {Object} Action object.\n */\nexport function receiveUserPermission( key, isAllowed ) {\n\treturn {\n\t\ttype: 'RECEIVE_USER_PERMISSION',\n\t\tkey,\n\t\tisAllowed,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the autosaves for a\n * post have been received.\n *\n * @param {number} postId The id of the post that is parent to the autosave.\n * @param {Array|Object} autosaves An array of autosaves or singular autosave object.\n *\n * @return {Object} Action object.\n */\nexport function receiveAutosaves( postId, autosaves ) {\n\treturn {\n\t\ttype: 'RECEIVE_AUTOSAVES',\n\t\tpostId,\n\t\tautosaves: castArray( autosaves ),\n\t};\n}\n"]}
package/build/entities.js CHANGED
@@ -136,7 +136,8 @@ const defaultEntities = [{
136
136
  context: 'edit'
137
137
  },
138
138
  plural: 'menuItems',
139
- label: (0, _i18n.__)('Menu Item')
139
+ label: (0, _i18n.__)('Menu Item'),
140
+ rawAttributes: ['title', 'content']
140
141
  }, {
141
142
  name: 'menuLocation',
142
143
  kind: 'root',
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","defaultEntities","label","name","kind","baseURL","getTitle","record","key","baseURLParams","context","rawAttributes","plural","transientEdits","blocks","kinds","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","title","postTypes","path","postType","isTemplate","includes","rest_base","labels","singular_name","selection","mergedEdits","meta","rendered","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entity","kindPrefix","nameSuffix","suffix","getKindEntities","select","dispatch","entities","getEntitiesByKind","length","kindConfig"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { upperFirst, camelCase, map, find, get, startCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const defaultEntities = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tname: '__unstableBase',\n\t\tkind: 'root',\n\t\tbaseURL: '',\n\t},\n\t{\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tgetTitle: ( record ) => {\n\t\t\treturn get( record, [ 'title' ], __( 'Site Title' ) );\n\t\t},\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n];\n\nexport const kinds = [\n\t{ name: 'postType', loadEntities: loadPostTypeEntities },\n\t{ name: 'taxonomy', loadEntities: loadTaxonomyEntities },\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( { path: '/wp/v2/types?context=edit' } );\n\treturn map( postTypes, ( postType, name ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: '/wp/v2/' + postType.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.labels.singular_name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate ? startCase( record.slug ) : String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=edit',\n\t} );\n\treturn map( taxonomies, ( taxonomy, name ) => {\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: '/wp/v2/' + taxonomy.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.labels.singular_name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} prefix Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\nexport const getMethodName = (\n\tkind,\n\tname,\n\tprefix = 'get',\n\tusePlural = false\n) => {\n\tconst entity = find( defaultEntities, { kind, name } );\n\tconst kindPrefix = kind === 'root' ? '' : upperFirst( camelCase( kind ) );\n\tconst nameSuffix =\n\t\tupperFirst( camelCase( name ) ) + ( usePlural ? 's' : '' );\n\tconst suffix =\n\t\tusePlural && entity.plural\n\t\t\t? upperFirst( camelCase( entity.plural ) )\n\t\t\t: nameSuffix;\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind Kind\n *\n * @return {Array} Entities\n */\nexport const getKindEntities = ( kind ) => async ( { select, dispatch } ) => {\n\tlet entities = select.getEntitiesByKind( kind );\n\tif ( entities && entities.length !== 0 ) {\n\t\treturn entities;\n\t}\n\n\tconst kindConfig = find( kinds, { name: kind } );\n\tif ( ! kindConfig ) {\n\t\treturn [];\n\t}\n\n\tentities = await kindConfig.loadEntities();\n\tdispatch( addEntities( entities ) );\n\n\treturn entities;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","defaultEntities","label","name","kind","baseURL","getTitle","record","key","baseURLParams","context","rawAttributes","plural","transientEdits","blocks","kinds","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","title","postTypes","path","postType","isTemplate","includes","rest_base","labels","singular_name","selection","mergedEdits","meta","rendered","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entity","kindPrefix","nameSuffix","suffix","getKindEntities","select","dispatch","entities","getEntitiesByKind","length","kindConfig"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { upperFirst, camelCase, map, find, get, startCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const defaultEntities = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tname: '__unstableBase',\n\t\tkind: 'root',\n\t\tbaseURL: '',\n\t},\n\t{\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tgetTitle: ( record ) => {\n\t\t\treturn get( record, [ 'title' ], __( 'Site Title' ) );\n\t\t},\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t\trawAttributes: [ 'title', 'content' ],\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n];\n\nexport const kinds = [\n\t{ name: 'postType', loadEntities: loadPostTypeEntities },\n\t{ name: 'taxonomy', loadEntities: loadTaxonomyEntities },\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( { path: '/wp/v2/types?context=edit' } );\n\treturn map( postTypes, ( postType, name ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: '/wp/v2/' + postType.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.labels.singular_name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate ? startCase( record.slug ) : String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=edit',\n\t} );\n\treturn map( taxonomies, ( taxonomy, name ) => {\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: '/wp/v2/' + taxonomy.rest_base,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.labels.singular_name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} prefix Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\nexport const getMethodName = (\n\tkind,\n\tname,\n\tprefix = 'get',\n\tusePlural = false\n) => {\n\tconst entity = find( defaultEntities, { kind, name } );\n\tconst kindPrefix = kind === 'root' ? '' : upperFirst( camelCase( kind ) );\n\tconst nameSuffix =\n\t\tupperFirst( camelCase( name ) ) + ( usePlural ? 's' : '' );\n\tconst suffix =\n\t\tusePlural && entity.plural\n\t\t\t? upperFirst( camelCase( entity.plural ) )\n\t\t\t: nameSuffix;\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind Kind\n *\n * @return {Array} Entities\n */\nexport const getKindEntities = ( kind ) => async ( { select, dispatch } ) => {\n\tlet entities = select.getEntitiesByKind( kind );\n\tif ( entities && entities.length !== 0 ) {\n\t\treturn entities;\n\t}\n\n\tconst kindConfig = find( kinds, { name: kind } );\n\tif ( ! kindConfig ) {\n\t\treturn [];\n\t}\n\n\tentities = await kindConfig.loadEntities();\n\tdispatch( addEntities( entities ) );\n\n\treturn entities;\n};\n"]}
package/build/index.js CHANGED
@@ -21,8 +21,6 @@ exports.store = void 0;
21
21
 
22
22
  var _data = require("@wordpress/data");
23
23
 
24
- var _dataControls = require("@wordpress/data-controls");
25
-
26
24
  var _reducer = _interopRequireDefault(require("./reducer"));
27
25
 
28
26
  var selectors = _interopRequireWildcard(require("./selectors"));
@@ -33,8 +31,6 @@ var resolvers = _interopRequireWildcard(require("./resolvers"));
33
31
 
34
32
  var _actions2 = _interopRequireDefault(require("./locks/actions"));
35
33
 
36
- var _controls = _interopRequireDefault(require("./controls"));
37
-
38
34
  var _entities = require("./entities");
39
35
 
40
36
  var _name = require("./name");
@@ -123,9 +119,6 @@ const entityActions = _entities.defaultEntities.reduce((result, entity) => {
123
119
 
124
120
  const storeConfig = () => ({
125
121
  reducer: _reducer.default,
126
- controls: { ..._controls.default,
127
- ..._dataControls.controls
128
- },
129
122
  actions: { ...actions,
130
123
  ...entityActions,
131
124
  ...(0, _actions2.default)()
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/index.js"],"names":["entitySelectors","defaultEntities","reduce","result","entity","kind","name","state","key","query","selectors","getEntityRecord","args","getEntityRecords","entityResolvers","resolvers","pluralMethodName","shouldInvalidate","action","entityActions","actions","saveEntityRecord","deleteEntityRecord","storeConfig","reducer","controls","customControls","__experimentalUseThunks","store","STORE_NAME"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\nimport { controls } from '@wordpress/data-controls';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport * as resolvers from './resolvers';\nimport createLocksActions from './locks/actions';\nimport customControls from './controls';\nimport { defaultEntities, getMethodName } from './entities';\nimport { STORE_NAME } from './name';\n\n// The entity selectors/resolvers and actions are shortcuts to their generic equivalents\n// (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecordss)\n// Instead of getEntityRecord, the consumer could use more user-frieldly named selector: getPostType, getTaxonomy...\n// The \"kind\" and the \"name\" of the entity are combined to generate these shortcuts.\n\nconst entitySelectors = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( state, key, query ) =>\n\t\tselectors.getEntityRecord( state, kind, name, key, query );\n\tresult[ getMethodName( kind, name, 'get', true ) ] = ( state, ...args ) =>\n\t\tselectors.getEntityRecords( state, kind, name, ...args );\n\treturn result;\n}, {} );\n\nconst entityResolvers = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( key, query ) =>\n\t\tresolvers.getEntityRecord( kind, name, key, query );\n\tconst pluralMethodName = getMethodName( kind, name, 'get', true );\n\tresult[ pluralMethodName ] = ( ...args ) =>\n\t\tresolvers.getEntityRecords( kind, name, ...args );\n\tresult[ pluralMethodName ].shouldInvalidate = ( action, ...args ) =>\n\t\tresolvers.getEntityRecords.shouldInvalidate(\n\t\t\taction,\n\t\t\tkind,\n\t\t\tname,\n\t\t\t...args\n\t\t);\n\treturn result;\n}, {} );\n\nconst entityActions = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name, 'save' ) ] = ( key ) =>\n\t\tactions.saveEntityRecord( kind, name, key );\n\tresult[ getMethodName( kind, name, 'delete' ) ] = ( key, query ) =>\n\t\tactions.deleteEntityRecord( kind, name, key, query );\n\treturn result;\n}, {} );\n\nconst storeConfig = () => ( {\n\treducer,\n\tcontrols: { ...customControls, ...controls },\n\tactions: { ...actions, ...entityActions, ...createLocksActions() },\n\tselectors: { ...selectors, ...entitySelectors },\n\tresolvers: { ...resolvers, ...entityResolvers },\n\t__experimentalUseThunks: true,\n} );\n\n/**\n * Store definition for the code data namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, storeConfig() );\n\nregister( store );\n\nexport { default as EntityProvider } from './entity-provider';\nexport * from './entity-provider';\nexport * from './fetch';\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/index.js"],"names":["entitySelectors","defaultEntities","reduce","result","entity","kind","name","state","key","query","selectors","getEntityRecord","args","getEntityRecords","entityResolvers","resolvers","pluralMethodName","shouldInvalidate","action","entityActions","actions","saveEntityRecord","deleteEntityRecord","storeConfig","reducer","__experimentalUseThunks","store","STORE_NAME"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport * as resolvers from './resolvers';\nimport createLocksActions from './locks/actions';\nimport { defaultEntities, getMethodName } from './entities';\nimport { STORE_NAME } from './name';\n\n// The entity selectors/resolvers and actions are shortcuts to their generic equivalents\n// (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecordss)\n// Instead of getEntityRecord, the consumer could use more user-frieldly named selector: getPostType, getTaxonomy...\n// The \"kind\" and the \"name\" of the entity are combined to generate these shortcuts.\n\nconst entitySelectors = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( state, key, query ) =>\n\t\tselectors.getEntityRecord( state, kind, name, key, query );\n\tresult[ getMethodName( kind, name, 'get', true ) ] = ( state, ...args ) =>\n\t\tselectors.getEntityRecords( state, kind, name, ...args );\n\treturn result;\n}, {} );\n\nconst entityResolvers = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( key, query ) =>\n\t\tresolvers.getEntityRecord( kind, name, key, query );\n\tconst pluralMethodName = getMethodName( kind, name, 'get', true );\n\tresult[ pluralMethodName ] = ( ...args ) =>\n\t\tresolvers.getEntityRecords( kind, name, ...args );\n\tresult[ pluralMethodName ].shouldInvalidate = ( action, ...args ) =>\n\t\tresolvers.getEntityRecords.shouldInvalidate(\n\t\t\taction,\n\t\t\tkind,\n\t\t\tname,\n\t\t\t...args\n\t\t);\n\treturn result;\n}, {} );\n\nconst entityActions = defaultEntities.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name, 'save' ) ] = ( key ) =>\n\t\tactions.saveEntityRecord( kind, name, key );\n\tresult[ getMethodName( kind, name, 'delete' ) ] = ( key, query ) =>\n\t\tactions.deleteEntityRecord( kind, name, key, query );\n\treturn result;\n}, {} );\n\nconst storeConfig = () => ( {\n\treducer,\n\tactions: { ...actions, ...entityActions, ...createLocksActions() },\n\tselectors: { ...selectors, ...entitySelectors },\n\tresolvers: { ...resolvers, ...entityResolvers },\n\t__experimentalUseThunks: true,\n} );\n\n/**\n * Store definition for the code data namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, storeConfig() );\n\nregister( store );\n\nexport { default as EntityProvider } from './entity-provider';\nexport * from './entity-provider';\nexport * from './fetch';\n"]}
@@ -30,6 +30,8 @@ var _utils = require("../utils");
30
30
  * @property {?(string[])} fields Target subset of fields to derive from
31
31
  * item objects.
32
32
  * @property {?(number[])} include Specific item IDs to include.
33
+ * @property {string} context Scope under which the request is made;
34
+ * determines returned fields in response.
33
35
  */
34
36
 
35
37
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/queried-data/get-query-parts.js"],"names":["getQueryParts","query","parts","stableKey","page","perPage","fields","include","context","keys","Object","sort","i","length","key","value","Number","join","map","slice"],"mappings":";;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAT,CAAwBC,KAAxB,EAAgC;AACtC;AACD;AACA;AACC,QAAMC,KAAK,GAAG;AACbC,IAAAA,SAAS,EAAE,EADE;AAEbC,IAAAA,IAAI,EAAE,CAFO;AAGbC,IAAAA,OAAO,EAAE,EAHI;AAIbC,IAAAA,MAAM,EAAE,IAJK;AAKbC,IAAAA,OAAO,EAAE,IALI;AAMbC,IAAAA,OAAO,EAAE;AANI,GAAd,CAJsC,CAatC;;AACA,QAAMC,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAaR,KAAb,EAAqBU,IAArB,EAAb;;AAEA,OAAM,IAAIC,CAAC,GAAG,CAAd,EAAiBA,CAAC,GAAGH,IAAI,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAwC;AACvC,UAAME,GAAG,GAAGL,IAAI,CAAEG,CAAF,CAAhB;AACA,QAAIG,KAAK,GAAGd,KAAK,CAAEa,GAAF,CAAjB;;AAEA,YAASA,GAAT;AACC,WAAK,MAAL;AACCZ,QAAAA,KAAK,CAAEY,GAAF,CAAL,GAAeE,MAAM,CAAED,KAAF,CAArB;AACA;;AAED,WAAK,UAAL;AACCb,QAAAA,KAAK,CAACG,OAAN,GAAgBW,MAAM,CAAED,KAAF,CAAtB;AACA;;AAED,WAAK,SAAL;AACCb,QAAAA,KAAK,CAACM,OAAN,GAAgBO,KAAhB;AACA;;AAED;AACC;AACA;AACA;AACA;AACA;AACA,YAAKD,GAAG,KAAK,SAAb,EAAyB;AACxBZ,UAAAA,KAAK,CAACI,MAAN,GAAe,wCAA6BS,KAA7B,CAAf,CADwB,CAExB;;AACAA,UAAAA,KAAK,GAAGb,KAAK,CAACI,MAAN,CAAaW,IAAb,EAAR;AACA,SAVF,CAYC;;;AACA,YAAKH,GAAG,KAAK,SAAb,EAAyB;AACxBZ,UAAAA,KAAK,CAACK,OAAN,GAAgB,wCAA6BQ,KAA7B,EAAqCG,GAArC,CACfF,MADe,CAAhB,CADwB,CAIxB;;AACAD,UAAAA,KAAK,GAAGb,KAAK,CAACK,OAAN,CAAcU,IAAd,EAAR;AACA,SAnBF,CAqBC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAf,QAAAA,KAAK,CAACC,SAAN,IACC,CAAED,KAAK,CAACC,SAAN,GAAkB,GAAlB,GAAwB,EAA1B,IACA,uBAAc,EAAd,EAAkB;AAAE,WAAEW,GAAF,GAASC;AAAX,SAAlB,EAAuCI,KAAvC,CAA8C,CAA9C,CAFD;AAzCF;AA6CA;;AAED,SAAOjB,KAAP;AACA;;eAEc,6BAAkBF,aAAlB,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { withWeakMapCache, getNormalizedCommaSeparable } from '../utils';\n\n/**\n * An object of properties describing a specific query.\n *\n * @typedef {Object} WPQueriedDataQueryParts\n *\n * @property {number} page The query page (1-based index, default 1).\n * @property {number} perPage Items per page for query (default 10).\n * @property {string} stableKey An encoded stable string of all non-\n * pagination, non-fields query parameters.\n * @property {?(string[])} fields Target subset of fields to derive from\n * item objects.\n * @property {?(number[])} include Specific item IDs to include.\n */\n\n/**\n * Given a query object, returns an object of parts, including pagination\n * details (`page` and `perPage`, or default values). All other properties are\n * encoded into a stable (idempotent) `stableKey` value.\n *\n * @param {Object} query Optional query object.\n *\n * @return {WPQueriedDataQueryParts} Query parts.\n */\nexport function getQueryParts( query ) {\n\t/**\n\t * @type {WPQueriedDataQueryParts}\n\t */\n\tconst parts = {\n\t\tstableKey: '',\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tfields: null,\n\t\tinclude: null,\n\t\tcontext: 'default',\n\t};\n\n\t// Ensure stable key by sorting keys. Also more efficient for iterating.\n\tconst keys = Object.keys( query ).sort();\n\n\tfor ( let i = 0; i < keys.length; i++ ) {\n\t\tconst key = keys[ i ];\n\t\tlet value = query[ key ];\n\n\t\tswitch ( key ) {\n\t\t\tcase 'page':\n\t\t\t\tparts[ key ] = Number( value );\n\t\t\t\tbreak;\n\n\t\t\tcase 'per_page':\n\t\t\t\tparts.perPage = Number( value );\n\t\t\t\tbreak;\n\n\t\t\tcase 'context':\n\t\t\t\tparts.context = value;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// While in theory, we could exclude \"_fields\" from the stableKey\n\t\t\t\t// because two request with different fields have the same results\n\t\t\t\t// We're not able to ensure that because the server can decide to omit\n\t\t\t\t// fields from the response even if we explicitely asked for it.\n\t\t\t\t// Example: Asking for titles in posts without title support.\n\t\t\t\tif ( key === '_fields' ) {\n\t\t\t\t\tparts.fields = getNormalizedCommaSeparable( value );\n\t\t\t\t\t// Make sure to normalize value for `stableKey`\n\t\t\t\t\tvalue = parts.fields.join();\n\t\t\t\t}\n\n\t\t\t\t// Two requests with different include values cannot have same results.\n\t\t\t\tif ( key === 'include' ) {\n\t\t\t\t\tparts.include = getNormalizedCommaSeparable( value ).map(\n\t\t\t\t\t\tNumber\n\t\t\t\t\t);\n\t\t\t\t\t// Normalize value for `stableKey`.\n\t\t\t\t\tvalue = parts.include.join();\n\t\t\t\t}\n\n\t\t\t\t// While it could be any deterministic string, for simplicity's\n\t\t\t\t// sake mimic querystring encoding for stable key.\n\t\t\t\t//\n\t\t\t\t// TODO: For consistency with PHP implementation, addQueryArgs\n\t\t\t\t// should accept a key value pair, which may optimize its\n\t\t\t\t// implementation for our use here, vs. iterating an object\n\t\t\t\t// with only a single key.\n\t\t\t\tparts.stableKey +=\n\t\t\t\t\t( parts.stableKey ? '&' : '' ) +\n\t\t\t\t\taddQueryArgs( '', { [ key ]: value } ).slice( 1 );\n\t\t}\n\t}\n\n\treturn parts;\n}\n\nexport default withWeakMapCache( getQueryParts );\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/queried-data/get-query-parts.js"],"names":["getQueryParts","query","parts","stableKey","page","perPage","fields","include","context","keys","Object","sort","i","length","key","value","Number","join","map","slice"],"mappings":";;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAT,CAAwBC,KAAxB,EAAgC;AACtC;AACD;AACA;AACC,QAAMC,KAAK,GAAG;AACbC,IAAAA,SAAS,EAAE,EADE;AAEbC,IAAAA,IAAI,EAAE,CAFO;AAGbC,IAAAA,OAAO,EAAE,EAHI;AAIbC,IAAAA,MAAM,EAAE,IAJK;AAKbC,IAAAA,OAAO,EAAE,IALI;AAMbC,IAAAA,OAAO,EAAE;AANI,GAAd,CAJsC,CAatC;;AACA,QAAMC,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAaR,KAAb,EAAqBU,IAArB,EAAb;;AAEA,OAAM,IAAIC,CAAC,GAAG,CAAd,EAAiBA,CAAC,GAAGH,IAAI,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAwC;AACvC,UAAME,GAAG,GAAGL,IAAI,CAAEG,CAAF,CAAhB;AACA,QAAIG,KAAK,GAAGd,KAAK,CAAEa,GAAF,CAAjB;;AAEA,YAASA,GAAT;AACC,WAAK,MAAL;AACCZ,QAAAA,KAAK,CAAEY,GAAF,CAAL,GAAeE,MAAM,CAAED,KAAF,CAArB;AACA;;AAED,WAAK,UAAL;AACCb,QAAAA,KAAK,CAACG,OAAN,GAAgBW,MAAM,CAAED,KAAF,CAAtB;AACA;;AAED,WAAK,SAAL;AACCb,QAAAA,KAAK,CAACM,OAAN,GAAgBO,KAAhB;AACA;;AAED;AACC;AACA;AACA;AACA;AACA;AACA,YAAKD,GAAG,KAAK,SAAb,EAAyB;AACxBZ,UAAAA,KAAK,CAACI,MAAN,GAAe,wCAA6BS,KAA7B,CAAf,CADwB,CAExB;;AACAA,UAAAA,KAAK,GAAGb,KAAK,CAACI,MAAN,CAAaW,IAAb,EAAR;AACA,SAVF,CAYC;;;AACA,YAAKH,GAAG,KAAK,SAAb,EAAyB;AACxBZ,UAAAA,KAAK,CAACK,OAAN,GAAgB,wCAA6BQ,KAA7B,EAAqCG,GAArC,CACfF,MADe,CAAhB,CADwB,CAIxB;;AACAD,UAAAA,KAAK,GAAGb,KAAK,CAACK,OAAN,CAAcU,IAAd,EAAR;AACA,SAnBF,CAqBC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAf,QAAAA,KAAK,CAACC,SAAN,IACC,CAAED,KAAK,CAACC,SAAN,GAAkB,GAAlB,GAAwB,EAA1B,IACA,uBAAc,EAAd,EAAkB;AAAE,WAAEW,GAAF,GAASC;AAAX,SAAlB,EAAuCI,KAAvC,CAA8C,CAA9C,CAFD;AAzCF;AA6CA;;AAED,SAAOjB,KAAP;AACA;;eAEc,6BAAkBF,aAAlB,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { withWeakMapCache, getNormalizedCommaSeparable } from '../utils';\n\n/**\n * An object of properties describing a specific query.\n *\n * @typedef {Object} WPQueriedDataQueryParts\n *\n * @property {number} page The query page (1-based index, default 1).\n * @property {number} perPage Items per page for query (default 10).\n * @property {string} stableKey An encoded stable string of all non-\n * pagination, non-fields query parameters.\n * @property {?(string[])} fields Target subset of fields to derive from\n * item objects.\n * @property {?(number[])} include Specific item IDs to include.\n * @property {string} context Scope under which the request is made;\n * determines returned fields in response.\n */\n\n/**\n * Given a query object, returns an object of parts, including pagination\n * details (`page` and `perPage`, or default values). All other properties are\n * encoded into a stable (idempotent) `stableKey` value.\n *\n * @param {Object} query Optional query object.\n *\n * @return {WPQueriedDataQueryParts} Query parts.\n */\nexport function getQueryParts( query ) {\n\t/**\n\t * @type {WPQueriedDataQueryParts}\n\t */\n\tconst parts = {\n\t\tstableKey: '',\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tfields: null,\n\t\tinclude: null,\n\t\tcontext: 'default',\n\t};\n\n\t// Ensure stable key by sorting keys. Also more efficient for iterating.\n\tconst keys = Object.keys( query ).sort();\n\n\tfor ( let i = 0; i < keys.length; i++ ) {\n\t\tconst key = keys[ i ];\n\t\tlet value = query[ key ];\n\n\t\tswitch ( key ) {\n\t\t\tcase 'page':\n\t\t\t\tparts[ key ] = Number( value );\n\t\t\t\tbreak;\n\n\t\t\tcase 'per_page':\n\t\t\t\tparts.perPage = Number( value );\n\t\t\t\tbreak;\n\n\t\t\tcase 'context':\n\t\t\t\tparts.context = value;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// While in theory, we could exclude \"_fields\" from the stableKey\n\t\t\t\t// because two request with different fields have the same results\n\t\t\t\t// We're not able to ensure that because the server can decide to omit\n\t\t\t\t// fields from the response even if we explicitely asked for it.\n\t\t\t\t// Example: Asking for titles in posts without title support.\n\t\t\t\tif ( key === '_fields' ) {\n\t\t\t\t\tparts.fields = getNormalizedCommaSeparable( value );\n\t\t\t\t\t// Make sure to normalize value for `stableKey`\n\t\t\t\t\tvalue = parts.fields.join();\n\t\t\t\t}\n\n\t\t\t\t// Two requests with different include values cannot have same results.\n\t\t\t\tif ( key === 'include' ) {\n\t\t\t\t\tparts.include = getNormalizedCommaSeparable( value ).map(\n\t\t\t\t\t\tNumber\n\t\t\t\t\t);\n\t\t\t\t\t// Normalize value for `stableKey`.\n\t\t\t\t\tvalue = parts.include.join();\n\t\t\t\t}\n\n\t\t\t\t// While it could be any deterministic string, for simplicity's\n\t\t\t\t// sake mimic querystring encoding for stable key.\n\t\t\t\t//\n\t\t\t\t// TODO: For consistency with PHP implementation, addQueryArgs\n\t\t\t\t// should accept a key value pair, which may optimize its\n\t\t\t\t// implementation for our use here, vs. iterating an object\n\t\t\t\t// with only a single key.\n\t\t\t\tparts.stableKey +=\n\t\t\t\t\t( parts.stableKey ? '&' : '' ) +\n\t\t\t\t\taddQueryArgs( '', { [ key ]: value } ).slice( 1 );\n\t\t}\n\t}\n\n\treturn parts;\n}\n\nexport default withWeakMapCache( getQueryParts );\n"]}
@@ -31,10 +31,6 @@ var _utils = require("./utils");
31
31
  * Internal dependencies
32
32
  */
33
33
 
34
- /**
35
- * Internal dependencies
36
- */
37
-
38
34
  /**
39
35
  * Requests authors from the REST API.
40
36
  *
@@ -88,7 +84,7 @@ const getEntityRecord = (kind, name, key = '', query) => async ({
88
84
  name
89
85
  });
90
86
 
91
- if (!entity) {
87
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
92
88
  return;
93
89
  }
94
90
 
@@ -161,14 +157,6 @@ const getEditedEntityRecord = (0, _utils.ifNotResolved)(getRawEntityRecord, 'get
161
157
  * @param {Object?} query Query Object.
162
158
  */
163
159
 
164
- /**
165
- * Requests the entity's records from the REST API.
166
- *
167
- * @param {string} kind Entity kind.
168
- * @param {string} name Entity name.
169
- * @param {Object?} query Query Object.
170
- */
171
-
172
160
  exports.getEditedEntityRecord = getEditedEntityRecord;
173
161
 
174
162
  const getEntityRecords = (kind, name, query = {}) => async ({
@@ -180,7 +168,7 @@ const getEntityRecords = (kind, name, query = {}) => async ({
180
168
  name
181
169
  });
182
170
 
183
- if (!entity) {
171
+ if (!entity || entity !== null && entity !== void 0 && entity.__experimentalNoFetch) {
184
172
  return;
185
173
  }
186
174