1.0.4 • Published 6 years ago

fs-read-data v1.0.4

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
6 years ago

fs-read-data

npm license travis status Build status Coverage Status David David Commitizen friendly NPM

fs-read-data is a simple mechanism to read files in this one of multiple formats {json, js, yaml, ini, toml}.

Provides a CLI and API interface to underlying capability, making conversion of data-formats a breeze, especially when coupled with fs-write-data

Why?

It's common to have data files in one of multiple well-known formats (json, yaml, ini, toml). Sometimes these are config files, sometimes they are just declartive definitions.

This is a tool to help work with such files without getting in your way.

Great for checking validity of hand-crafted data files.

Compared to a single spurious babel module installation, the additional weight of multiple file parsers was considered acceptable collateral-weight.

Installation

npm install fs-read-data
yarn install fs-read-data

Usage

CLI

  Usage: read-data [fname]

  reads [fname] in {json, yaml, ini, toml}, prints resulting json to stdout.


  Options:

    -V, --version  output the version number
    -h, --help     output usage information

API

Exposes a single function via the API

/**
 * Reads filename in one of the supported formats
 * and returns a promise that resolves to a JavaScript object.
 *
 * @async
 * @param fname file to read
 */
async readFile(fname);
const read = require('fs-read-data');

// one of these
const data = read(`/path/to/file/data`); // auto-detects available extension. Error if multiple found
const data = read(`/path/to/file/data.json`);
const data = read(`/path/to/file/data.yaml`);
const data = read(`/path/to/file/data.yml`);
const data = read(`/path/to/file/data.js`); // must return a single object
const data = read(`/path/to/file/data.ini`);
const data = read(`/path/to/file/data.toml`);

Development Tooling

Related

fs-write-data

Dependencies

This is an aggregation module, much like fs-extra. It's built upon the shoulders of libraries that provide it's core functionality.

js-yaml ini toml

Support cast: awaiting commander

License

Apache-2.0

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Support

Bugs, PRs, comments, suggestions welcomed!