Ghost/ghost/members-csv
Naz bc70835890
Increased test coverage
refs https://github.com/TryGhost/Toolbox/issues/430

- The bonus of using the module exports file is that it also gets included in the test coverage statistics ^_^
2022-10-19 18:10:40 +08:00
..
lib Moved csv parser utility method 2022-10-13 09:53:16 +08:00
test Increased test coverage 2022-10-19 18:10:40 +08:00
.eslintrc.js Removed trailing commas from .eslintrc.js 2021-07-14 12:04:46 +01:00
index.js Fixed module paths 2020-06-19 19:52:21 +12:00
package.json Update dependency mocha to v10.1.0 2022-10-17 08:41:28 +00:00
README.md Tidied up package READMEs 2022-07-25 15:17:12 +02:00

Members Csv

Usage

There are 2 parts to this package: CSV to JSON serialization and JSON to CSV serialization. The module exposes 2 methods to fullfil these: parse and unparse respectively.

To parse CSV file and convert it to JSON use parse method, e.g.:

const {parse} = require('@tryghost/members-csv');

const mapping = {
    email: 'csv_column_containing_email_data',
    name: 'csv_column_containing_names_data'
}
const membersJSON = await parse(csvFilePath, mapping);

csvFilePath - is a path to the CSV file that has to be processed mapping - optional parameter, it's a hash describing custom mapping for CSV columns to JSON properties

Example mapping for CSV having email under correo_electronico column would look like following:

{
    email: 'correo_electronico'
}

To unparse JSON to CSV compatible with members format use following:

const {unparse} = require('@tryghost/members-csv');

const members = [{
    email: 'email@example.com',
    name: 'Sam Memberino',
    note: 'Early supporter'
}];

const membersCSV = unparse(members);

console.log(membersCSV);
// -> "id,email,name,note,subscribed_to_emails,complimentary_plan,stripe_customer_id,created_at,deleted_at,labels\r\n,email@example.com,Sam Memberino,Early supporter,,,,,,"