UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

60 lines (59 loc) 1.93 kB
import { deepMerge, withCollectionHook } from '@websolutespa/payload-utils'; import 'isomorphic-fetch'; import { options } from '../../options'; import { afterCollectionReadHook, collectionDetailGet, collectionIndexGet } from '../api/collection.service'; import { staticCollections } from '../api/static.service'; import { translateCollection } from '../translations'; export const StaticCollectionDefault = { admin: { group: options.group.i18n, useAsTitle: 'name', defaultColumns: [ 'name', 'id' ], listSearchableFields: [ 'name', 'id' ] }, access: { read: ()=>true, create: ()=>false, update: ()=>false, delete: ()=>false, admin: ()=>true, unlock: ()=>false }, versions: false }; const DEFAULT_DURATION = 24 * 60 * 60; /** * @param {CollectionConfig & StaticCollectionConfig} config * @returns {CollectionConfig} Return a `CollectionConfig` from static or remote dataset. */ export const withStaticCollection = ({ src, map, duration = DEFAULT_DURATION, ...config })=>{ staticCollections.push(config.slug); const staticConfig = deepMerge(StaticCollectionDefault, config); staticConfig.custom = { ...staticConfig.custom, type: 'static', src, map, duration }; staticConfig.fields.forEach((field)=>{ const admin = field.admin || {}; admin.readOnly = true; field.admin = admin; }); if (!staticConfig.endpoints) { staticConfig.endpoints = [ collectionIndexGet(staticConfig.slug), collectionDetailGet(staticConfig.slug) ]; } withCollectionHook(staticConfig, 'afterRead', afterCollectionReadHook(staticConfig)); translateCollection(staticConfig); return staticConfig; }; //# sourceMappingURL=withStaticCollection.js.map