@wordpress/core-data 4.0.1 → 4.0.5
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 +13 -7
- package/build/actions.js +178 -122
- package/build/actions.js.map +1 -1
- package/build/batch/default-processor.js +58 -27
- package/build/batch/default-processor.js.map +1 -1
- package/build/entities.js +70 -23
- package/build/entities.js.map +1 -1
- package/build/fetch/__experimental-fetch-url-data.js +1 -1
- package/build/fetch/__experimental-fetch-url-data.js.map +1 -1
- package/build/index.js +9 -17
- package/build/index.js.map +1 -1
- package/build/locks/actions.js +17 -77
- package/build/locks/actions.js.map +1 -1
- package/build/locks/engine.js +77 -0
- package/build/locks/engine.js.map +1 -0
- package/build/locks/reducer.js +1 -5
- package/build/locks/reducer.js.map +1 -1
- package/build/locks/selectors.js +6 -6
- package/build/locks/selectors.js.map +1 -1
- package/build/queried-data/get-query-parts.js +9 -4
- package/build/queried-data/get-query-parts.js.map +1 -1
- package/build/queried-data/selectors.js +3 -9
- package/build/queried-data/selectors.js.map +1 -1
- package/build/reducer.js +17 -22
- package/build/reducer.js.map +1 -1
- package/build/resolvers.js +151 -97
- package/build/resolvers.js.map +1 -1
- package/build/selectors.js +79 -14
- package/build/selectors.js.map +1 -1
- package/build/utils/forward-resolver.js +23 -0
- package/build/utils/forward-resolver.js.map +1 -0
- package/build/utils/index.js +11 -3
- package/build/utils/index.js.map +1 -1
- package/build/utils/is-raw-attribute.js +19 -0
- package/build/utils/is-raw-attribute.js.map +1 -0
- package/build-module/actions.js +155 -112
- package/build-module/actions.js.map +1 -1
- package/build-module/batch/default-processor.js +57 -27
- package/build-module/batch/default-processor.js.map +1 -1
- package/build-module/entities.js +65 -19
- package/build-module/entities.js.map +1 -1
- package/build-module/fetch/__experimental-fetch-url-data.js +1 -1
- package/build-module/fetch/__experimental-fetch-url-data.js.map +1 -1
- package/build-module/index.js +10 -14
- package/build-module/index.js.map +1 -1
- package/build-module/locks/actions.js +14 -68
- package/build-module/locks/actions.js.map +1 -1
- package/build-module/locks/engine.js +66 -0
- package/build-module/locks/engine.js.map +1 -0
- package/build-module/locks/reducer.js +1 -2
- package/build-module/locks/reducer.js.map +1 -1
- package/build-module/locks/selectors.js +4 -4
- package/build-module/locks/selectors.js.map +1 -1
- package/build-module/queried-data/get-query-parts.js +9 -4
- package/build-module/queried-data/get-query-parts.js.map +1 -1
- package/build-module/queried-data/selectors.js +3 -9
- package/build-module/queried-data/selectors.js.map +1 -1
- package/build-module/reducer.js +15 -19
- package/build-module/reducer.js.map +1 -1
- package/build-module/resolvers.js +123 -81
- package/build-module/resolvers.js.map +1 -1
- package/build-module/selectors.js +74 -13
- package/build-module/selectors.js.map +1 -1
- package/build-module/utils/forward-resolver.js +15 -0
- package/build-module/utils/forward-resolver.js.map +1 -0
- package/build-module/utils/index.js +2 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/is-raw-attribute.js +12 -0
- package/build-module/utils/is-raw-attribute.js.map +1 -0
- package/package.json +10 -11
- package/src/actions.js +163 -194
- package/src/batch/default-processor.js +57 -26
- package/src/batch/test/default-processor.js +53 -26
- package/src/entities.js +47 -19
- package/src/fetch/__experimental-fetch-url-data.js +1 -1
- package/src/index.js +7 -10
- package/src/locks/actions.js +10 -61
- package/src/locks/engine.js +43 -0
- package/src/locks/reducer.js +1 -3
- package/src/locks/selectors.js +4 -4
- package/src/locks/test/engine.js +135 -0
- package/src/locks/test/reducer.js +1 -1
- package/src/locks/test/selectors.js +105 -124
- package/src/queried-data/get-query-parts.js +11 -6
- package/src/queried-data/selectors.js +2 -9
- package/src/queried-data/test/get-query-parts.js +1 -1
- package/src/queried-data/test/selectors.js +1 -0
- package/src/reducer.js +14 -19
- package/src/resolvers.js +132 -120
- package/src/selectors.js +156 -44
- package/src/test/actions.js +330 -170
- package/src/test/entities.js +40 -26
- package/src/test/resolvers.js +270 -223
- package/src/test/selectors.js +127 -1
- package/src/utils/forward-resolver.js +14 -0
- package/src/utils/index.js +2 -1
- package/src/utils/is-raw-attribute.js +11 -0
- package/src/utils/test/is-raw-attribute.js +22 -0
- package/build/controls.js +0 -44
- package/build/controls.js.map +0 -1
- package/build/locks/index.js +0 -47
- package/build/locks/index.js.map +0 -1
- package/build/utils/if-not-resolved.js +0 -46
- package/build/utils/if-not-resolved.js.map +0 -1
- package/build-module/controls.js +0 -31
- package/build-module/controls.js.map +0 -1
- package/build-module/locks/index.js +0 -4
- package/build-module/locks/index.js.map +0 -1
- package/build-module/utils/if-not-resolved.js +0 -36
- package/build-module/utils/if-not-resolved.js.map +0 -1
- package/src/controls.js +0 -31
- package/src/locks/index.js +0 -3
- package/src/locks/test/actions.js +0 -307
- package/src/test/integration.js +0 -264
- package/src/utils/if-not-resolved.js +0 -40
- package/src/utils/test/if-not-resolved.js +0 -75
package/build/actions.js.map
CHANGED
|
@@ -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","entity","error","deletedRecord","lock","STORE_NAME","exclusive","path","baseURL","options","method","_error","editEntityRecord","controls","select","Error","transientEdits","mergedEdits","editedRecord","edit","Object","keys","reduce","acc","key","recordValue","editedRecordValue","value","undefined","meta","undo","undoIgnore","undoEdit","isUndo","redo","redoEdit","isRedo","__unstableCreateUndoLevel","saveEntityRecord","isAutosave","entityIdKey","DEFAULT_ENTITY_KEY","entries","evaluatedValue","updatedRecord","persistedRecord","currentUserId","id","autosavePost","data","includes","newRecord","receiveAutosaves","__unstablePrePersist","__experimentalBatch","requests","batch","dispatch","api","add","saveEditedEntityRecord","resultPromises","request","results","Promise","all","run","__experimentalSaveSpecifiedEntityEdits","itemsToSave","editsToSave","some","item","receiveUploadPermissions","hasUploadPermissions","isAllowed","receiveUserPermission","postId","autosaves"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, get, isEqual, find } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { controls } from '@wordpress/data';\nimport { apiFetch, __unstableAwaitPromise } from '@wordpress/data-controls';\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 {\n\t__unstableAcquireStoreLock,\n\t__unstableReleaseStoreLock,\n} from './locks';\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 control descriptor.\n */\nexport function* deleteEntityRecord(\n\tkind,\n\tname,\n\trecordId,\n\tquery,\n\t{ __unstableFetch = null } = {}\n) {\n\tconst entities = yield 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 = yield* __unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId ],\n\t\t{ exclusive: true }\n\t);\n\ttry {\n\t\tyield {\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\tconst options = {\n\t\t\t\tpath,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t};\n\t\t\tif ( __unstableFetch ) {\n\t\t\t\tdeletedRecord = yield __unstableAwaitPromise(\n\t\t\t\t\t__unstableFetch( options )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdeletedRecord = yield apiFetch( options );\n\t\t\t}\n\n\t\t\tyield removeItems( kind, name, recordId, true );\n\t\t} catch ( _error ) {\n\t\t\terror = _error;\n\t\t}\n\n\t\tyield {\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\tyield* __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 function* editEntityRecord( kind, name, recordId, edits, options = {} ) {\n\tconst entity = yield controls.select( STORE_NAME, '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 = yield controls.select(\n\t\tSTORE_NAME,\n\t\t'getRawEntityRecord',\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst editedRecord = yield controls.select(\n\t\tSTORE_NAME,\n\t\t'getEditedEntityRecord',\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\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 {\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 */\nexport function* undo() {\n\tconst undoEdit = yield controls.select( STORE_NAME, 'getUndoEdit' );\n\tif ( ! undoEdit ) {\n\t\treturn;\n\t}\n\tyield {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...undoEdit,\n\t\tmeta: {\n\t\t\tisUndo: true,\n\t\t},\n\t};\n}\n\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n */\nexport function* redo() {\n\tconst redoEdit = yield controls.select( STORE_NAME, 'getRedoEdit' );\n\tif ( ! redoEdit ) {\n\t\treturn;\n\t}\n\tyield {\n\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t...redoEdit,\n\t\tmeta: {\n\t\t\tisRedo: true,\n\t\t},\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 control\n * descriptor.\n */\nexport function* saveEntityRecord(\n\tkind,\n\tname,\n\trecord,\n\t{ isAutosave = false, __unstableFetch = null } = {}\n) {\n\tconst entities = yield 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 = yield* __unstableAcquireStoreLock(\n\t\tSTORE_NAME,\n\t\t[ 'entities', 'data', kind, name, recordId || uuid() ],\n\t\t{ exclusive: true }\n\t);\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\tyield controls.select(\n\t\t\t\t\t\tSTORE_NAME,\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\trecordId\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tyield 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\tyield {\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 = yield controls.select(\n\t\t\t\tSTORE_NAME,\n\t\t\t\t'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 = yield controls.select(\n\t\t\t\t\tSTORE_NAME,\n\t\t\t\t\t'getCurrentUser'\n\t\t\t\t);\n\t\t\t\tconst currentUserId = currentUser ? currentUser.id : undefined;\n\t\t\t\tconst autosavePost = yield controls.select(\n\t\t\t\t\tSTORE_NAME,\n\t\t\t\t\t'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\t// Edits should be the \"raw\" attribute values.\n\t\t\t\t\t\t\tacc[ key ] = get( data[ key ], 'raw', 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\tif ( __unstableFetch ) {\n\t\t\t\t\tupdatedRecord = yield __unstableAwaitPromise(\n\t\t\t\t\t\t__unstableFetch( options )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tupdatedRecord = yield apiFetch( options );\n\t\t\t\t}\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\t// Edits should be the \"raw\" attribute values.\n\t\t\t\t\t\t\t\tacc[ key ] = get(\n\t\t\t\t\t\t\t\t\tnewRecord[ key ],\n\t\t\t\t\t\t\t\t\t'raw',\n\t\t\t\t\t\t\t\t\tnewRecord[ key ]\n\t\t\t\t\t\t\t\t);\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 ] = get(\n\t\t\t\t\t\t\t\t\tpersistedRecord[ key ],\n\t\t\t\t\t\t\t\t\t'raw',\n\t\t\t\t\t\t\t\t\tpersistedRecord[ key ]\n\t\t\t\t\t\t\t\t);\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\tyield 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\tyield receiveAutosaves( persistedRecord.id, updatedRecord );\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\tif ( __unstableFetch ) {\n\t\t\t\t\tupdatedRecord = yield __unstableAwaitPromise(\n\t\t\t\t\t\t__unstableFetch( options )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tupdatedRecord = yield apiFetch( options );\n\t\t\t\t}\n\t\t\t\tyield 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\tyield {\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\tyield* __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 function* saveEditedEntityRecord( kind, name, recordId, options ) {\n\tif (\n\t\t! ( yield controls.select(\n\t\t\tSTORE_NAME,\n\t\t\t'hasEditsForEntityRecord',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t) )\n\t) {\n\t\treturn;\n\t}\n\tconst edits = yield controls.select(\n\t\tSTORE_NAME,\n\t\t'getEntityRecordNonTransientEdits',\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { id: recordId, ...edits };\n\treturn yield* 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 function* __experimentalSaveSpecifiedEntityEdits(\n\tkind,\n\tname,\n\trecordId,\n\titemsToSave,\n\toptions\n) {\n\tif (\n\t\t! ( yield controls.select(\n\t\t\tSTORE_NAME,\n\t\t\t'hasEditsForEntityRecord',\n\t\t\tkind,\n\t\t\tname,\n\t\t\trecordId\n\t\t) )\n\t) {\n\t\treturn;\n\t}\n\tconst edits = yield controls.select(\n\t\tSTORE_NAME,\n\t\t'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 yield* 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","__experimentalReceiveCurrentGlobalStylesId","currentGlobalStylesId","id","__experimentalReceiveThemeBaseGlobalStyles","stylesheet","globalStyles","receiveThemeSupports","since","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","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';\nimport deprecated from '@wordpress/deprecated';\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 current global styles id has been received.\n *\n * @param {string} currentGlobalStylesId The current global styles id.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveCurrentGlobalStylesId(\n\tcurrentGlobalStylesId\n) {\n\treturn {\n\t\ttype: 'RECEIVE_CURRENT_GLOBAL_STYLES_ID',\n\t\tid: currentGlobalStylesId,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the theme base global styles have been received\n *\n * @param {string} stylesheet The theme's identifier\n * @param {Object} globalStyles The global styles object.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalReceiveThemeBaseGlobalStyles(\n\tstylesheet,\n\tglobalStyles\n) {\n\treturn {\n\t\ttype: 'RECEIVE_THEME_GLOBAL_STYLES',\n\t\tstylesheet,\n\t\tglobalStyles,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @deprecated since WP 5.9, this is not useful anymore, use the selector direclty.\n *\n * @return {Object} Action object.\n */\nexport function receiveThemeSupports() {\n\tdeprecated( \"wp.data.dispatch( 'core' ).receiveThemeSupports\", {\n\t\tsince: '5.9',\n\t} );\n\n\treturn {\n\t\ttype: 'DO_NOTHING',\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 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\n\tconst edits = select.getEntityRecordNonTransientEdits(\n\t\tkind,\n\t\tname,\n\t\trecordId\n\t);\n\tconst record = { [ entityIdKey ]: 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"]}
|
|
@@ -7,14 +7,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = defaultProcessor;
|
|
9
9
|
|
|
10
|
+
var _lodash = require("lodash");
|
|
11
|
+
|
|
10
12
|
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
11
13
|
|
|
14
|
+
/**
|
|
15
|
+
* External dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
12
18
|
/**
|
|
13
19
|
* WordPress dependencies
|
|
14
20
|
*/
|
|
15
21
|
|
|
16
22
|
/**
|
|
17
|
-
*
|
|
23
|
+
* Maximum number of requests to place in a single batch request. Obtained by
|
|
24
|
+
* sending a preflight OPTIONS request to /batch/v1/.
|
|
25
|
+
*
|
|
26
|
+
* @type {number?}
|
|
27
|
+
*/
|
|
28
|
+
let maxItems = null;
|
|
29
|
+
/**
|
|
30
|
+
* Default batch processor. Sends its input requests to /batch/v1.
|
|
18
31
|
*
|
|
19
32
|
* @param {Array} requests List of API requests to perform at once.
|
|
20
33
|
*
|
|
@@ -22,38 +35,56 @@ var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
|
22
35
|
* either `output` (if that request was succesful) or `error`
|
|
23
36
|
* (if not ).
|
|
24
37
|
*/
|
|
25
|
-
async function defaultProcessor(requests) {
|
|
26
|
-
const batchResponse = await (0, _apiFetch.default)({
|
|
27
|
-
path: '/batch/v1',
|
|
28
|
-
method: 'POST',
|
|
29
|
-
data: {
|
|
30
|
-
validation: 'require-all-validate',
|
|
31
|
-
requests: requests.map(request => ({
|
|
32
|
-
path: request.path,
|
|
33
|
-
body: request.data,
|
|
34
|
-
// Rename 'data' to 'body'.
|
|
35
|
-
method: request.method,
|
|
36
|
-
headers: request.headers
|
|
37
|
-
}))
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
async function defaultProcessor(requests) {
|
|
40
|
+
if (maxItems === null) {
|
|
41
|
+
const preflightResponse = await (0, _apiFetch.default)({
|
|
42
|
+
path: '/batch/v1',
|
|
43
|
+
method: 'OPTIONS'
|
|
44
|
+
});
|
|
45
|
+
maxItems = preflightResponse.endpoints[0].args.requests.maxItems;
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
const result = {};
|
|
48
|
+
const results = [];
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
for (const batchRequests of (0, _lodash.chunk)(requests, maxItems)) {
|
|
51
|
+
const batchResponse = await (0, _apiFetch.default)({
|
|
52
|
+
path: '/batch/v1',
|
|
53
|
+
method: 'POST',
|
|
54
|
+
data: {
|
|
55
|
+
validation: 'require-all-validate',
|
|
56
|
+
requests: batchRequests.map(request => ({
|
|
57
|
+
path: request.path,
|
|
58
|
+
body: request.data,
|
|
59
|
+
// Rename 'data' to 'body'.
|
|
60
|
+
method: request.method,
|
|
61
|
+
headers: request.headers
|
|
62
|
+
}))
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
let batchResults;
|
|
66
|
+
|
|
67
|
+
if (batchResponse.failed) {
|
|
68
|
+
batchResults = batchResponse.responses.map(response => ({
|
|
69
|
+
error: response === null || response === void 0 ? void 0 : response.body
|
|
70
|
+
}));
|
|
52
71
|
} else {
|
|
53
|
-
|
|
72
|
+
batchResults = batchResponse.responses.map(response => {
|
|
73
|
+
const result = {};
|
|
74
|
+
|
|
75
|
+
if (response.status >= 200 && response.status < 300) {
|
|
76
|
+
result.output = response.body;
|
|
77
|
+
} else {
|
|
78
|
+
result.error = response.body;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return result;
|
|
82
|
+
});
|
|
54
83
|
}
|
|
55
84
|
|
|
56
|
-
|
|
57
|
-
}
|
|
85
|
+
results.push(...batchResults);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return results;
|
|
58
89
|
}
|
|
59
90
|
//# sourceMappingURL=default-processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/core-data/src/batch/default-processor.js"],"names":["defaultProcessor","requests","
|
|
1
|
+
{"version":3,"sources":["@wordpress/core-data/src/batch/default-processor.js"],"names":["maxItems","defaultProcessor","requests","preflightResponse","path","method","endpoints","args","results","batchRequests","batchResponse","data","validation","map","request","body","headers","batchResults","failed","responses","response","error","result","status","output","push"],"mappings":";;;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIA,QAAQ,GAAG,IAAf;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,eAAeC,gBAAf,CAAiCC,QAAjC,EAA4C;AAC1D,MAAKF,QAAQ,KAAK,IAAlB,EAAyB;AACxB,UAAMG,iBAAiB,GAAG,MAAM,uBAAU;AACzCC,MAAAA,IAAI,EAAE,WADmC;AAEzCC,MAAAA,MAAM,EAAE;AAFiC,KAAV,CAAhC;AAIAL,IAAAA,QAAQ,GAAGG,iBAAiB,CAACG,SAAlB,CAA6B,CAA7B,EAAiCC,IAAjC,CAAsCL,QAAtC,CAA+CF,QAA1D;AACA;;AAED,QAAMQ,OAAO,GAAG,EAAhB;;AAEA,OAAM,MAAMC,aAAZ,IAA6B,mBAAOP,QAAP,EAAiBF,QAAjB,CAA7B,EAA2D;AAC1D,UAAMU,aAAa,GAAG,MAAM,uBAAU;AACrCN,MAAAA,IAAI,EAAE,WAD+B;AAErCC,MAAAA,MAAM,EAAE,MAF6B;AAGrCM,MAAAA,IAAI,EAAE;AACLC,QAAAA,UAAU,EAAE,sBADP;AAELV,QAAAA,QAAQ,EAAEO,aAAa,CAACI,GAAd,CAAqBC,OAAF,KAAiB;AAC7CV,UAAAA,IAAI,EAAEU,OAAO,CAACV,IAD+B;AAE7CW,UAAAA,IAAI,EAAED,OAAO,CAACH,IAF+B;AAEzB;AACpBN,UAAAA,MAAM,EAAES,OAAO,CAACT,MAH6B;AAI7CW,UAAAA,OAAO,EAAEF,OAAO,CAACE;AAJ4B,SAAjB,CAAnB;AAFL;AAH+B,KAAV,CAA5B;AAcA,QAAIC,YAAJ;;AAEA,QAAKP,aAAa,CAACQ,MAAnB,EAA4B;AAC3BD,MAAAA,YAAY,GAAGP,aAAa,CAACS,SAAd,CAAwBN,GAAxB,CAA+BO,QAAF,KAAkB;AAC7DC,QAAAA,KAAK,EAAED,QAAF,aAAEA,QAAF,uBAAEA,QAAQ,CAAEL;AAD4C,OAAlB,CAA7B,CAAf;AAGA,KAJD,MAIO;AACNE,MAAAA,YAAY,GAAGP,aAAa,CAACS,SAAd,CAAwBN,GAAxB,CAA+BO,QAAF,IAAgB;AAC3D,cAAME,MAAM,GAAG,EAAf;;AACA,YAAKF,QAAQ,CAACG,MAAT,IAAmB,GAAnB,IAA0BH,QAAQ,CAACG,MAAT,GAAkB,GAAjD,EAAuD;AACtDD,UAAAA,MAAM,CAACE,MAAP,GAAgBJ,QAAQ,CAACL,IAAzB;AACA,SAFD,MAEO;AACNO,UAAAA,MAAM,CAACD,KAAP,GAAeD,QAAQ,CAACL,IAAxB;AACA;;AACD,eAAOO,MAAP;AACA,OARc,CAAf;AASA;;AAEDd,IAAAA,OAAO,CAACiB,IAAR,CAAc,GAAGR,YAAjB;AACA;;AAED,SAAOT,OAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { chunk } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Maximum number of requests to place in a single batch request. Obtained by\n * sending a preflight OPTIONS request to /batch/v1/.\n *\n * @type {number?}\n */\nlet maxItems = null;\n\n/**\n * Default batch processor. Sends its input requests to /batch/v1.\n *\n * @param {Array} requests List of API requests to perform at once.\n *\n * @return {Promise} Promise that resolves to a list of objects containing\n * either `output` (if that request was succesful) or `error`\n * (if not ).\n */\nexport default async function defaultProcessor( requests ) {\n\tif ( maxItems === null ) {\n\t\tconst preflightResponse = await apiFetch( {\n\t\t\tpath: '/batch/v1',\n\t\t\tmethod: 'OPTIONS',\n\t\t} );\n\t\tmaxItems = preflightResponse.endpoints[ 0 ].args.requests.maxItems;\n\t}\n\n\tconst results = [];\n\n\tfor ( const batchRequests of chunk( requests, maxItems ) ) {\n\t\tconst batchResponse = await apiFetch( {\n\t\t\tpath: '/batch/v1',\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\tvalidation: 'require-all-validate',\n\t\t\t\trequests: batchRequests.map( ( request ) => ( {\n\t\t\t\t\tpath: request.path,\n\t\t\t\t\tbody: request.data, // Rename 'data' to 'body'.\n\t\t\t\t\tmethod: request.method,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t} ) ),\n\t\t\t},\n\t\t} );\n\n\t\tlet batchResults;\n\n\t\tif ( batchResponse.failed ) {\n\t\t\tbatchResults = batchResponse.responses.map( ( response ) => ( {\n\t\t\t\terror: response?.body,\n\t\t\t} ) );\n\t\t} else {\n\t\t\tbatchResults = batchResponse.responses.map( ( response ) => {\n\t\t\t\tconst result = {};\n\t\t\t\tif ( response.status >= 200 && response.status < 300 ) {\n\t\t\t\t\tresult.output = response.body;\n\t\t\t\t} else {\n\t\t\t\t\tresult.error = response.body;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} );\n\t\t}\n\n\t\tresults.push( ...batchResults );\n\t}\n\n\treturn results;\n}\n"]}
|
package/build/entities.js
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.getKindEntities =
|
|
7
|
-
exports.getMethodName = exports.prePersistPostType = exports.kinds = exports.defaultEntities = exports.DEFAULT_ENTITY_KEY = void 0;
|
|
8
|
+
exports.getKindEntities = exports.getMethodName = exports.prePersistPostType = exports.kinds = exports.defaultEntities = exports.DEFAULT_ENTITY_KEY = void 0;
|
|
8
9
|
|
|
9
10
|
var _lodash = require("lodash");
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
var _dataControls = require("@wordpress/data-controls");
|
|
12
|
+
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
14
13
|
|
|
15
14
|
var _i18n = require("@wordpress/i18n");
|
|
16
15
|
|
|
17
16
|
var _actions = require("./actions");
|
|
18
17
|
|
|
19
|
-
var _name = require("./name");
|
|
20
|
-
|
|
21
18
|
/**
|
|
22
19
|
* External dependencies
|
|
23
20
|
*/
|
|
@@ -31,11 +28,12 @@ var _name = require("./name");
|
|
|
31
28
|
*/
|
|
32
29
|
const DEFAULT_ENTITY_KEY = 'id';
|
|
33
30
|
exports.DEFAULT_ENTITY_KEY = DEFAULT_ENTITY_KEY;
|
|
31
|
+
const POST_RAW_ATTRIBUTES = ['title', 'excerpt', 'content'];
|
|
34
32
|
const defaultEntities = [{
|
|
35
33
|
label: (0, _i18n.__)('Base'),
|
|
36
34
|
name: '__unstableBase',
|
|
37
35
|
kind: 'root',
|
|
38
|
-
baseURL: ''
|
|
36
|
+
baseURL: '/'
|
|
39
37
|
}, {
|
|
40
38
|
label: (0, _i18n.__)('Site'),
|
|
41
39
|
name: 'site',
|
|
@@ -52,7 +50,8 @@ const defaultEntities = [{
|
|
|
52
50
|
baseURL: '/wp/v2/types',
|
|
53
51
|
baseURLParams: {
|
|
54
52
|
context: 'edit'
|
|
55
|
-
}
|
|
53
|
+
},
|
|
54
|
+
rawAttributes: POST_RAW_ATTRIBUTES
|
|
56
55
|
}, {
|
|
57
56
|
name: 'media',
|
|
58
57
|
kind: 'root',
|
|
@@ -137,7 +136,8 @@ const defaultEntities = [{
|
|
|
137
136
|
context: 'edit'
|
|
138
137
|
},
|
|
139
138
|
plural: 'menuItems',
|
|
140
|
-
label: (0, _i18n.__)('Menu Item')
|
|
139
|
+
label: (0, _i18n.__)('Menu Item'),
|
|
140
|
+
rawAttributes: ['title', 'content']
|
|
141
141
|
}, {
|
|
142
142
|
name: 'menuLocation',
|
|
143
143
|
kind: 'root',
|
|
@@ -148,6 +148,41 @@ const defaultEntities = [{
|
|
|
148
148
|
plural: 'menuLocations',
|
|
149
149
|
label: (0, _i18n.__)('Menu Location'),
|
|
150
150
|
key: 'name'
|
|
151
|
+
}, {
|
|
152
|
+
name: 'navigationArea',
|
|
153
|
+
kind: 'root',
|
|
154
|
+
baseURL: '/__experimental/block-navigation-areas',
|
|
155
|
+
baseURLParams: {
|
|
156
|
+
context: 'edit'
|
|
157
|
+
},
|
|
158
|
+
plural: 'navigationAreas',
|
|
159
|
+
label: (0, _i18n.__)('Navigation Area'),
|
|
160
|
+
key: 'name',
|
|
161
|
+
getTitle: record => record === null || record === void 0 ? void 0 : record.description
|
|
162
|
+
}, {
|
|
163
|
+
label: (0, _i18n.__)('Global Styles'),
|
|
164
|
+
name: 'globalStyles',
|
|
165
|
+
kind: 'root',
|
|
166
|
+
baseURL: '/wp/v2/global-styles',
|
|
167
|
+
baseURLParams: {
|
|
168
|
+
context: 'edit'
|
|
169
|
+
},
|
|
170
|
+
plural: 'globalStylesVariations',
|
|
171
|
+
// should be different than name
|
|
172
|
+
getTitle: record => {
|
|
173
|
+
var _record$title;
|
|
174
|
+
|
|
175
|
+
return (record === null || record === void 0 ? void 0 : (_record$title = record.title) === null || _record$title === void 0 ? void 0 : _record$title.rendered) || (record === null || record === void 0 ? void 0 : record.title);
|
|
176
|
+
}
|
|
177
|
+
}, {
|
|
178
|
+
label: (0, _i18n.__)('Themes'),
|
|
179
|
+
name: 'theme',
|
|
180
|
+
kind: 'root',
|
|
181
|
+
baseURL: '/wp/v2/themes',
|
|
182
|
+
baseURLParams: {
|
|
183
|
+
context: 'edit'
|
|
184
|
+
},
|
|
185
|
+
key: 'stylesheet'
|
|
151
186
|
}];
|
|
152
187
|
exports.defaultEntities = defaultEntities;
|
|
153
188
|
const kinds = [{
|
|
@@ -193,15 +228,18 @@ const prePersistPostType = (persistedRecord, edits) => {
|
|
|
193
228
|
|
|
194
229
|
exports.prePersistPostType = prePersistPostType;
|
|
195
230
|
|
|
196
|
-
function
|
|
197
|
-
const postTypes =
|
|
231
|
+
async function loadPostTypeEntities() {
|
|
232
|
+
const postTypes = await (0, _apiFetch.default)({
|
|
198
233
|
path: '/wp/v2/types?context=edit'
|
|
199
234
|
});
|
|
200
235
|
return (0, _lodash.map)(postTypes, (postType, name) => {
|
|
236
|
+
var _postType$rest_namesp;
|
|
237
|
+
|
|
201
238
|
const isTemplate = ['wp_template', 'wp_template_part'].includes(name);
|
|
239
|
+
const namespace = (_postType$rest_namesp = postType === null || postType === void 0 ? void 0 : postType.rest_namespace) !== null && _postType$rest_namesp !== void 0 ? _postType$rest_namesp : 'wp/v2';
|
|
202
240
|
return {
|
|
203
241
|
kind: 'postType',
|
|
204
|
-
baseURL:
|
|
242
|
+
baseURL: `/${namespace}/${postType.rest_base}`,
|
|
205
243
|
baseURLParams: {
|
|
206
244
|
context: 'edit'
|
|
207
245
|
},
|
|
@@ -214,10 +252,11 @@ function* loadPostTypeEntities() {
|
|
|
214
252
|
mergedEdits: {
|
|
215
253
|
meta: true
|
|
216
254
|
},
|
|
255
|
+
rawAttributes: POST_RAW_ATTRIBUTES,
|
|
217
256
|
getTitle: record => {
|
|
218
|
-
var _record$
|
|
257
|
+
var _record$title2;
|
|
219
258
|
|
|
220
|
-
return (record === null || record === void 0 ? void 0 : (_record$
|
|
259
|
+
return (record === null || record === void 0 ? void 0 : (_record$title2 = record.title) === null || _record$title2 === void 0 ? void 0 : _record$title2.rendered) || (record === null || record === void 0 ? void 0 : record.title) || (isTemplate ? (0, _lodash.startCase)(record.slug) : String(record.id));
|
|
221
260
|
},
|
|
222
261
|
__unstablePrePersist: isTemplate ? undefined : prePersistPostType,
|
|
223
262
|
__unstable_rest_base: postType.rest_base
|
|
@@ -231,14 +270,17 @@ function* loadPostTypeEntities() {
|
|
|
231
270
|
*/
|
|
232
271
|
|
|
233
272
|
|
|
234
|
-
function
|
|
235
|
-
const taxonomies =
|
|
273
|
+
async function loadTaxonomyEntities() {
|
|
274
|
+
const taxonomies = await (0, _apiFetch.default)({
|
|
236
275
|
path: '/wp/v2/taxonomies?context=edit'
|
|
237
276
|
});
|
|
238
277
|
return (0, _lodash.map)(taxonomies, (taxonomy, name) => {
|
|
278
|
+
var _taxonomy$rest_namesp;
|
|
279
|
+
|
|
280
|
+
const namespace = (_taxonomy$rest_namesp = taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_namespace) !== null && _taxonomy$rest_namesp !== void 0 ? _taxonomy$rest_namesp : 'wp/v2';
|
|
239
281
|
return {
|
|
240
282
|
kind: 'taxonomy',
|
|
241
|
-
baseURL:
|
|
283
|
+
baseURL: `/${namespace}/${taxonomy.rest_base}`,
|
|
242
284
|
baseURLParams: {
|
|
243
285
|
context: 'edit'
|
|
244
286
|
},
|
|
@@ -280,8 +322,11 @@ const getMethodName = (kind, name, prefix = 'get', usePlural = false) => {
|
|
|
280
322
|
|
|
281
323
|
exports.getMethodName = getMethodName;
|
|
282
324
|
|
|
283
|
-
|
|
284
|
-
|
|
325
|
+
const getKindEntities = kind => async ({
|
|
326
|
+
select,
|
|
327
|
+
dispatch
|
|
328
|
+
}) => {
|
|
329
|
+
let entities = select.getEntitiesByKind(kind);
|
|
285
330
|
|
|
286
331
|
if (entities && entities.length !== 0) {
|
|
287
332
|
return entities;
|
|
@@ -295,8 +340,10 @@ function* getKindEntities(kind) {
|
|
|
295
340
|
return [];
|
|
296
341
|
}
|
|
297
342
|
|
|
298
|
-
entities =
|
|
299
|
-
|
|
343
|
+
entities = await kindConfig.loadEntities();
|
|
344
|
+
dispatch((0, _actions.addEntities)(entities));
|
|
300
345
|
return entities;
|
|
301
|
-
}
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
exports.getKindEntities = getKindEntities;
|
|
302
349
|
//# sourceMappingURL=entities.js.map
|
package/build/entities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","defaultEntities","label","name","kind","baseURL","getTitle","record","key","baseURLParams","context","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","entities","controls","select","STORE_NAME","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 { controls } from '@wordpress/data';\nimport { apiFetch } from '@wordpress/data-controls';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\nimport { STORE_NAME } from './name';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\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},\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 */\nfunction* loadPostTypeEntities() {\n\tconst postTypes = yield 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\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 */\nfunction* loadTaxonomyEntities() {\n\tconst taxonomies = yield 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 function* getKindEntities( kind ) {\n\tlet entities = yield controls.select(\n\t\tSTORE_NAME,\n\t\t'getEntitiesByKind',\n\t\tkind\n\t);\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 = yield kindConfig.loadEntities();\n\tyield 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","description","title","rendered","kinds","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","postTypes","path","postType","isTemplate","includes","namespace","rest_namespace","rest_base","labels","singular_name","selection","mergedEdits","meta","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\t{\n\t\tname: 'navigationArea',\n\t\tkind: 'root',\n\t\tbaseURL: '/__experimental/block-navigation-areas',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'navigationAreas',\n\t\tlabel: __( 'Navigation Area' ),\n\t\tkey: 'name',\n\t\tgetTitle: ( record ) => record?.description,\n\t},\n\t{\n\t\tlabel: __( 'Global Styles' ),\n\t\tname: 'globalStyles',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/global-styles',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'globalStylesVariations', // should be different than name\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\n\t},\n\t{\n\t\tlabel: __( 'Themes' ),\n\t\tname: 'theme',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/themes',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tkey: 'stylesheet',\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\tconst namespace = postType?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: `/${ namespace }/${ 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\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: `/${ namespace }/${ 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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/core-data/src/fetch/__experimental-fetch-url-data.js"],"names":["CACHE","Map","fetchUrlData","url","options","endpoint","args","Promise","reject","protocol","startsWith","test","has","get","path","then","res","set"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMA,KAAK,GAAG,IAAIC,GAAJ,EAAd;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,OAAQC,GAAR,EAAaC,OAAO,GAAG,EAAvB,KAA+B;AACnD,QAAMC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/core-data/src/fetch/__experimental-fetch-url-data.js"],"names":["CACHE","Map","fetchUrlData","url","options","endpoint","args","Promise","reject","protocol","startsWith","test","has","get","path","then","res","set"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMA,KAAK,GAAG,IAAIC,GAAJ,EAAd;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,OAAQC,GAAR,EAAaC,OAAO,GAAG,EAAvB,KAA+B;AACnD,QAAMC,QAAQ,GAAG,iCAAjB;AAEA,QAAMC,IAAI,GAAG;AACZH,IAAAA,GAAG,EAAE,sBAAaA,GAAb;AADO,GAAb;;AAIA,MAAK,CAAE,gBAAOA,GAAP,CAAP,EAAsB;AACrB,WAAOI,OAAO,CAACC,MAAR,CAAiB,GAAGL,GAAK,sBAAzB,CAAP;AACA,GATkD,CAWnD;AACA;;;AACA,QAAMM,QAAQ,GAAG,sBAAaN,GAAb,CAAjB;;AAEA,MACC,CAAE,0BAAiBM,QAAjB,CAAF,IACA,CAAEA,QAAQ,CAACC,UAAT,CAAqB,MAArB,CADF,IAEA,CAAE,uBAAuBC,IAAvB,CAA6BR,GAA7B,CAHH,EAIE;AACD,WAAOI,OAAO,CAACC,MAAR,CACL,GAAGL,GAAK,4DADH,CAAP;AAGA;;AAED,MAAKH,KAAK,CAACY,GAAN,CAAWT,GAAX,CAAL,EAAwB;AACvB,WAAOH,KAAK,CAACa,GAAN,CAAWV,GAAX,CAAP;AACA;;AAED,SAAO,uBAAU;AAChBW,IAAAA,IAAI,EAAE,uBAAcT,QAAd,EAAwBC,IAAxB,CADU;AAEhB,OAAGF;AAFa,GAAV,EAGHW,IAHG,CAGKC,GAAF,IAAW;AACpBhB,IAAAA,KAAK,CAACiB,GAAN,CAAWd,GAAX,EAAgBa,GAAhB;AACA,WAAOA,GAAP;AACA,GANM,CAAP;AAOA,CApCD;;eAsCed,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n\taddQueryArgs,\n\tprependHTTP,\n\tisURL,\n\tgetProtocol,\n\tisValidProtocol,\n} from '@wordpress/url';\n\n/**\n * A simple in-memory cache for requests.\n * This avoids repeat HTTP requests which may be beneficial\n * for those wishing to preserve low-bandwidth.\n */\nconst CACHE = new Map();\n\n/**\n * @typedef WPRemoteUrlData\n *\n * @property {string} title contents of the remote URL's `<title>` tag.\n */\n\n/**\n * Fetches data about a remote URL.\n * eg: <title> tag, favicon...etc.\n *\n * @async\n * @param {string} url the URL to request details from.\n * @param {Object?} options any options to pass to the underlying fetch.\n * @example\n * ```js\n * import { __experimentalFetchUrlData as fetchUrlData } from '@wordpress/core-data';\n *\n * //...\n *\n * export function initialize( id, settings ) {\n *\n * settings.__experimentalFetchUrlData = (\n * url\n * ) => fetchUrlData( url );\n * ```\n * @return {Promise< WPRemoteUrlData[] >} Remote URL data.\n */\nconst fetchUrlData = async ( url, options = {} ) => {\n\tconst endpoint = '/wp-block-editor/v1/url-details';\n\n\tconst args = {\n\t\turl: prependHTTP( url ),\n\t};\n\n\tif ( ! isURL( url ) ) {\n\t\treturn Promise.reject( `${ url } is not a valid URL.` );\n\t}\n\n\t// Test for \"http\" based URL as it is possible for valid\n\t// yet unusable URLs such as `tel:123456` to be passed.\n\tconst protocol = getProtocol( url );\n\n\tif (\n\t\t! isValidProtocol( protocol ) ||\n\t\t! protocol.startsWith( 'http' ) ||\n\t\t! /^https?:\\/\\/[^\\/\\s]/i.test( url )\n\t) {\n\t\treturn Promise.reject(\n\t\t\t`${ url } does not have a valid protocol. URLs must be \"http\" based`\n\t\t);\n\t}\n\n\tif ( CACHE.has( url ) ) {\n\t\treturn CACHE.get( url );\n\t}\n\n\treturn apiFetch( {\n\t\tpath: addQueryArgs( endpoint, args ),\n\t\t...options,\n\t} ).then( ( res ) => {\n\t\tCACHE.set( url, res );\n\t\treturn res;\n\t} );\n};\n\nexport default fetchUrlData;\n"]}
|