payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
77 lines (76 loc) • 3.44 kB
JavaScript
// @ts-strict-ignore
/* eslint-disable @typescript-eslint/no-unused-expressions */ function hasKey(obj, key) {
return obj != null && Object.prototype.hasOwnProperty.call(obj, key);
}
const defaultUIFieldComponentKeys = [
'Cell',
'Description',
'Field',
'Filter'
];
export function genImportMapIterateFields({ addToImportMap, baseDir, config, fields, importMap, imports }) {
for (const field of fields){
if ('fields' in field) {
genImportMapIterateFields({
addToImportMap,
baseDir,
config,
fields: field.fields,
importMap,
imports
});
} else if (field.type === 'blocks') {
genImportMapIterateFields({
addToImportMap,
baseDir,
config,
fields: field.blocks.filter((block)=>typeof block !== 'string'),
importMap,
imports
});
} else if (field.type === 'tabs') {
genImportMapIterateFields({
addToImportMap,
baseDir,
config,
fields: field.tabs,
importMap,
imports
});
} else if (field.type === 'richText') {
if (field?.editor && typeof field.editor === 'object' && field.editor.generateImportMap && typeof field.editor.generateImportMap === 'function') {
field.editor.generateImportMap({
addToImportMap,
baseDir,
config,
importMap,
imports
});
}
} else if (field.type === 'ui') {
if (field?.admin?.components) {
// Render any extra, untyped components
for(const key in field.admin.components){
if (key in defaultUIFieldComponentKeys) {
continue;
}
addToImportMap(field.admin.components[key]);
}
}
}
hasKey(field?.admin, 'jsx') && addToImportMap(field.admin.jsx) // For Blocks
;
hasKey(field?.admin?.components, 'Label') && addToImportMap(field.admin.components.Label);
hasKey(field?.admin?.components, 'Block') && addToImportMap(field.admin.components.Block);
hasKey(field?.admin?.components, 'Cell') && addToImportMap(field?.admin?.components?.Cell);
hasKey(field?.admin?.components, 'Description') && addToImportMap(field?.admin?.components?.Description);
hasKey(field?.admin?.components, 'Field') && addToImportMap(field?.admin?.components?.Field);
hasKey(field?.admin?.components, 'Filter') && addToImportMap(field?.admin?.components?.Filter);
hasKey(field?.admin?.components, 'Error') && addToImportMap(field?.admin?.components?.Error);
hasKey(field?.admin?.components, 'afterInput') && addToImportMap(field?.admin?.components?.afterInput);
hasKey(field?.admin?.components, 'beforeInput') && addToImportMap(field?.admin?.components?.beforeInput);
hasKey(field?.admin?.components, 'RowLabel') && addToImportMap(field?.admin?.components?.RowLabel);
hasKey(field?.admin?.components, 'Diff') && addToImportMap(field?.admin?.components?.Diff);
}
}
//# sourceMappingURL=iterateFields.js.map