0.1.3 • Published 1 day ago

@newesissrl/payload-exportcollections-plugin v0.1.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 day ago

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
          }
        }
      }
    }
  }
})
0.1.2

2 days ago

0.1.3

1 day ago

0.1.1

9 days ago

0.1.0

1 month ago

0.0.18

1 month ago

0.0.17

2 months ago

0.0.16

2 months ago

0.0.15

3 months ago

0.0.14

3 months ago

0.0.13

3 months ago

0.0.12

4 months ago

0.0.11

4 months ago

0.0.10

4 months ago

0.0.9

4 months ago

0.0.8

5 months ago

0.0.5

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago