@websolutespa/payload-plugin-bowl
Version:
Bowl PayloadCms plugin of the BOM Repository
61 lines (60 loc) • 2.26 kB
JavaScript
import { deepMerge, withCollectionHook } from '@websolutespa/payload-utils';
import { options } from '../../options';
import { roles } from '../../types';
import { isRole } from '../access';
import { afterCollectionReadHook, collectionBulkPatch, collectionDetailGet, collectionExportGet, collectionImportPost, collectionIndexGet, collectionUpdatePatch } from '../api/collection.service';
import { translateCollection } from '../translations';
export const CollectionDefault = {
admin: {
group: options.group.config,
useAsTitle: 'id',
defaultColumns: [
'id',
'title'
]
},
access: {
create: isRole(roles.Admin, roles.Contributor, roles.Editor),
read: isRole(roles.Admin, roles.Contributor, roles.Editor, roles.Guest, roles.User),
// readVersions: isRole(roles.Admin, roles.Contributor, roles.Editor, roles.Guest, roles.User),
update: isRole(roles.Admin, roles.Contributor, roles.Editor),
delete: isRole(roles.Admin, roles.Contributor, roles.Editor)
}
};
/**
*
* @param {CollectionConfig} config
* @returns {CollectionConfig} Return a `CollectionConfig` with inherited fields: `id`, `createdAt`, `updatedAt`.
*/ export const withCollection = (config)=>{
const collectionConfig = deepMerge(CollectionDefault, config);
/*
collectionConfig.fields = [
withOrder({
slug: config.slug,
admin: {
position: 'sidebar',
},
}),
...collectionConfig.fields,
];
*/ // !!! todo check if
if (!collectionConfig.endpoints) {
collectionConfig.endpoints = [
collectionIndexGet(config.slug),
collectionUpdatePatch(config.slug),
collectionBulkPatch(config.slug),
collectionImportPost(config.slug),
collectionExportGet(config.slug),
collectionDetailGet(config.slug)
];
}
withCollectionHook(collectionConfig, 'afterRead', afterCollectionReadHook(collectionConfig));
/*
!!! removed on v3
collectionConfig.admin.hooks = {
beforeDuplicate: beforeDuplicateCollectionHook,
};
*/ translateCollection(collectionConfig);
return collectionConfig;
};
//# sourceMappingURL=withCollection.js.map