payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
60 lines (59 loc) • 3.02 kB
JavaScript
import { genImportMapIterateFields } from './iterateFields.js';
export function iterateCollections({ addToImportMap, baseDir, collections, config, importMap, imports }) {
for (const collection of collections){
genImportMapIterateFields({
addToImportMap,
baseDir,
config,
fields: collection.fields,
importMap,
imports
});
addToImportMap(collection.admin?.components?.afterList);
addToImportMap(collection.admin?.components?.listMenuItems);
addToImportMap(collection.admin?.components?.afterListTable);
addToImportMap(collection.admin?.components?.beforeList);
addToImportMap(collection.admin?.components?.beforeListTable);
addToImportMap(collection.admin?.components?.Description);
addToImportMap(collection.admin?.components?.edit?.beforeDocumentControls);
addToImportMap(collection.admin?.components?.edit?.editMenuItems);
addToImportMap(collection.admin?.components?.edit?.PreviewButton);
addToImportMap(collection.admin?.components?.edit?.PublishButton);
addToImportMap(collection.admin?.components?.edit?.SaveButton);
addToImportMap(collection.admin?.components?.edit?.SaveDraftButton);
addToImportMap(collection.admin?.components?.edit?.Status);
addToImportMap(collection.admin?.components?.edit?.UnpublishButton);
addToImportMap(collection.admin?.components?.edit?.Upload);
if (collection.upload?.admin?.components?.controls) {
addToImportMap(collection.upload?.admin?.components?.controls);
}
if (collection.admin?.components?.views?.edit) {
for (const editViewConfig of Object.values(collection.admin?.components?.views?.edit)){
if ('Component' in editViewConfig) {
addToImportMap(editViewConfig?.Component);
}
if ('actions' in editViewConfig) {
addToImportMap(editViewConfig?.actions);
}
if ('tab' in editViewConfig) {
addToImportMap(editViewConfig?.tab?.Component);
addToImportMap(editViewConfig?.tab?.Pill);
}
}
}
addToImportMap(collection.admin?.components?.views?.list?.Component);
addToImportMap(collection.admin?.components?.views?.list?.actions);
// Register custom collection view components (any key other than 'edit' and 'list')
if (collection.admin?.components?.views) {
for (const [key, view] of Object.entries(collection.admin.components.views)){
if (key === 'edit' || key === 'list') {
continue;
}
if (view && typeof view === 'object' && 'Component' in view && 'path' in view) {
addToImportMap(view.Component);
}
}
}
}
}
//# sourceMappingURL=iterateCollections.js.map