@newesissrl/payload-exportcollections-plugin
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

payload-exportcollections-plugin

Extends payloadcms with the ability to export all collection's data to CSV or JSON

Install

yarn add @newesissrl/payload-exportcollections-plugin

Get Started

payload.config.ts

import { exportCollectionsPlugin } from "@newesissrl/payload-exportcollections-plugin";

export default buildConfig({
    ....
    plugins: [exportCollectionsPlugin(config?)],
    i18n: {
      resources: {
        // to localize the buttons' labels
        en: {
          general: {
            "export-list-csv": "Export list (CSV)",
            "export-list-json": "Export list (JSON)",
          },
        },
        it: {
          general: {
            "export-list-csv": "Esporta lista (CSV)",
            "export-list-json": "Esporta lista (JSON)",
          },
        },
      },
    }
    ....
})

The plugin may expects a config object defined like this:

export type ExportCollectionsPluginConfig = {
  disabledCollections?: string[];
  rootDir?: string;
  jsonReplacer?: (key: string, value: any) => any;
  csvOptions?: Json2CsvOptions;
  componentPlacement?:
    | "AfterList"
    | "AfterListTable"
    | "BeforeList"
    | "BeforeListTable";
};

where:

  • disabledCollections is a list of collections' slugs that you want to exclude from the plugin's enrichment.
  • rootDir is the directory where to temporarily store the exported files
  • componentPlacement identify where to place the component
  • jsonReplacer is a function useful to replace fields (and/or omit them in the final result). see here
  • csvOptions is the same implementation as per the core json-2-csv package. see here

Notes

If you followed the above guide and still cannot see the buttons, it may be needed to update your webpack config as per below:

export default buildConfig({
  admin: {
    webpack: (config: any) => {
      return {
        ...config,
        resolve: {
          ...config.resolve,
          alias: {
            ...config.resolve.alias,
            payload: path.resolve("./node_modules/payload"), // this will fix the components usage of `useConfig` hook
          }
        }
      }
    }
  }
})

Package Sidebar

Install

npm i @newesissrl/payload-exportcollections-plugin

Weekly Downloads

109

Version

0.1.4

License

Apache-2.0

Unpacked Size

171 kB

Total Files

20

Last publish

Collaborators

  • raunodepasquale
  • amaghini