fs-read-data
v1.0.4
Published
Reads files in multiple formats (json, yaml, toml, ini, js) into a JavaScript object
Downloads
14
Readme
fs-read-data
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
Dependencies
This is an aggregation module, much like fs-extra. It's built upon the shoulders of libraries that provide it's core functionality.
Support cast: awaiting commander
License
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!