UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

61 lines (60 loc) 2.26 kB
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