Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
/**
|
|
* This is used for the Select API to determine the select level of a block.
|
|
* It will ensure that `id` and `blockType` are always included in the select object.
|
|
* @returns { blockSelect: boolean | SelectType, blockSelectMode: SelectMode }
|
|
*/ export const getBlockSelect = ({ block, select, selectMode })=>{
|
|
if (typeof select === 'object') {
|
|
let blockSelectMode = selectMode;
|
|
const blocksSelect = {
|
|
...select
|
|
};
|
|
let blockSelect = blocksSelect[block.slug];
|
|
// sanitize `{ blocks: { cta: false }}` to `{ blocks: { cta: { id: true, blockType: true }}}`
|
|
if (selectMode === 'exclude' && blockSelect === false) {
|
|
blockSelectMode = 'include';
|
|
blockSelect = {
|
|
id: true,
|
|
blockType: true
|
|
};
|
|
} else if (selectMode === 'include') {
|
|
if (!blockSelect) {
|
|
blockSelect = {};
|
|
}
|
|
if (typeof blockSelect === 'object') {
|
|
blockSelect = {
|
|
...blockSelect
|
|
};
|
|
blockSelect['id'] = true;
|
|
blockSelect['blockType'] = true;
|
|
}
|
|
}
|
|
return {
|
|
blockSelect: blockSelect,
|
|
blockSelectMode
|
|
};
|
|
}
|
|
return {
|
|
blockSelect: select,
|
|
blockSelectMode: selectMode
|
|
};
|
|
};
|
|
|
|
//# sourceMappingURL=getBlockSelect.js.map |