UNPKG

@payloadcms/plugin-import-export

Version:

Import-Export plugin for Payload

86 lines (85 loc) 2.62 kB
import { createExport } from './export/createExport.js'; import { download } from './export/download.js'; import { getFields } from './export/getFields.js'; export const getExportCollection = ({ config, pluginConfig })=>{ const { overrideExportCollection } = pluginConfig; const beforeOperation = []; const afterChange = []; let collection = { slug: 'exports', access: { update: ()=>false }, admin: { components: { edit: { SaveButton: '@payloadcms/plugin-import-export/rsc#ExportSaveButton' } }, custom: { disableDownload: pluginConfig.disableDownload ?? false, disableSave: pluginConfig.disableSave ?? false }, group: false, useAsTitle: 'name' }, disableDuplicate: true, endpoints: [ { handler: (req)=>{ return download(req, pluginConfig.debug); }, method: 'post', path: '/download' } ], fields: getFields(config, pluginConfig), hooks: { afterChange, beforeOperation }, upload: { filesRequiredOnCreate: false, hideFileInputOnCreate: true, hideRemoveFile: true } }; if (typeof overrideExportCollection === 'function') { collection = overrideExportCollection(collection); } if (pluginConfig.disableJobsQueue) { beforeOperation.push(async ({ args, operation, req })=>{ if (operation !== 'create') { return; } const { user } = req; const debug = pluginConfig.debug; await createExport({ input: { ...args.data, debug, user }, req }); }); } else { afterChange.push(async ({ doc, operation, req })=>{ if (operation !== 'create') { return; } const input = { ...doc, exportsCollection: collection.slug, user: req?.user?.id || req?.user?.user?.id, userCollection: 'users' }; await req.payload.jobs.queue({ input, task: 'createCollectionExport' }); }); } return collection; }; //# sourceMappingURL=getExportCollection.js.map