UNPKG

payload

Version:

Node, React, Headless CMS and Application Framework built on Next.js

42 lines (41 loc) 1.42 kB
/** * 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, blockSelectMode }; } return { blockSelect: select, blockSelectMode: selectMode }; }; //# sourceMappingURL=getBlockSelect.js.map