1.0.3 • Published 7 years ago

objects-to-file v1.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

objects-to-file Travis XO code style

Create a delimited value, output file from an array of objects

objectsToFile({}, {}, {}) => :page_facing_up:

Install

$ npm install --save objects-to-file OR $ yarn add objects-to-file

Usage

Basic

const fs = require('fs');
const objectsToFile = require('objects-to-file');

const cats = [
    { name: 'Bubbles', breed: 'Persian', age: '24', color: 'honey-brown' },
    { name: 'Garfield', breed: 'Tabby', age: '33', color: 'orange with stripes' }
];
objectsToFile(cats, './cat_data.txt', { header: true })
    .then(file => console.log(`data: ${file}`)
    .catch(console.log);

// ./cat_data.txt:
// name,breed,age,color
// Bubbles,Persian,24,honey-brown
// Garfield,Tabby,33,orange with stripes

Advance

const fs = require('fs');
const objectsToFile = require('objects-to-file');

const dogData = [
    './data/dogs/german_sheperd',
    './data/dogs/pug',
    './data/dogs/beagle'
];

let dogOutput = dogsPaths
                    .map((filePath) => require(dogPaths))
                    .map((dog, index) => objectsToFile(dog, `./output/DATA_${index}.csv`);

Promise
    .all(dogOutput)
    .then((files) => {
        const paths = files.toString().replace(/,/g, ', ');
        console.log(`Files stored at: ${paths}`);
        // Files stored at: ./output/DATA_0.csv,  ./output/DATA_1.csv, ./output/DATA_2.csv
     })
     .catch(console.log);

API

objectsToFile(data, outputPath, options)

Creates a file based on an array of objects. Unless specified, it will use the first object as a mapping for subsequent objects.

Returns a {Promise}, when resolved returns the file location path

data | <array>

The input array of objects.

outputPath | <string>

The output file location

options | <object>

options.keys | <array>[<string> | <int>]

A list of keys to map and dictate the order of the value output. Any non-existent fields will be omitted.

options.header | <bool>

Set true to print the key on the first chunk of the file. Note: this will not work with options.raw = true

options.count | <int>

Number of desired objects to be written.

options.bar | <object>

Assign a progress bar instance to be bar.tick() per each chunk written.

options.delimiter | <string>

The delimiter to be used to seperate values. Default: ","

options.EOL | <string>

The End of Line character to be used. Default: "\n"

options.encoding | <string>

The encoding to be used for the output file. Default: "utf8"

options.raw | <bool>

Set true to print all the values within the objects, ignoring keys or first object key mapping.

options.encoding | <string>

The encoding to be used for the output file. Default: "utf8"

Related

:repeat: file-line-parse - Parse a file, line by line, to an array of objects.

License

MIT