payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
72 lines (71 loc) • 2.11 kB
JavaScript
import { populateFolderDataEndpoint } from './endpoints/populateFolderData.js';
import { deleteSubfoldersBeforeDelete } from './hooks/deleteSubfoldersAfterDelete.js';
import { dissasociateAfterDelete } from './hooks/dissasociateAfterDelete.js';
import { reparentChildFolder } from './hooks/reparentChildFolder.js';
export const createFolderCollection = ({ slug, collectionSlugs, debug, folderFieldName })=>({
slug,
admin: {
hidden: !debug,
useAsTitle: 'name'
},
endpoints: [
populateFolderDataEndpoint
],
fields: [
{
name: 'name',
type: 'text',
index: true,
required: true
},
{
name: folderFieldName,
type: 'relationship',
admin: {
hidden: !debug
},
index: true,
relationTo: slug
},
{
name: 'documentsAndFolders',
type: 'join',
admin: {
hidden: !debug
},
collection: [
slug,
...collectionSlugs
],
hasMany: true,
on: folderFieldName
}
],
hooks: {
afterChange: [
reparentChildFolder({
folderFieldName
})
],
afterDelete: [
dissasociateAfterDelete({
collectionSlugs,
folderFieldName
})
],
beforeDelete: [
deleteSubfoldersBeforeDelete({
folderFieldName,
folderSlug: slug
})
]
},
labels: {
plural: 'Folders',
singular: 'Folder'
},
typescript: {
interface: 'FolderInterface'
}
});
//# sourceMappingURL=createFolderCollection.js.map