@frctl/dayglo

1.0.1 • Public • Published

Dayglo

Adapter-based data file loader/parser for Node.

Build Status NPM Version

Dayglo provides a simple, promise-based API to load and parse config/data files from the filesystem.

const dayglo = require('@frctl/dayglo');

dayglo('/path/to/data.tml').then(data => console.log(data)); // { foo: "bar" }

It comes with a set of loaders for some common config file formats (JSON/JSON5, YAML, TOML, CommonJS-style modules) but it's also very easy to define your own if you have other requirements.

Install

npm install @frctl/dayglo --save

Dayglo requires Node >= v6.0.

Usage

The default export is a standalone loader function with the default adapters pre-registered for the following file extensions:

  • JSON/JSON5 - .json, .json5
  • YAML - .yml, .yaml
  • TOML - .tml, .toml
  • CommonJS-style modules - .js
const dayglo = require('@frctl/dayglo');

dayglo('/path/to/data.json').then(data => {
    console.log(data);
});

dayglo('/path/to/data.yml').then(data => {
    console.log(data);
});

You can also create a new Loader instance and register your own adapters, if you prefer:

const Loader = require('@frctl/dayglo').Loader;
const yamlAdapter = require('@frctl/dayglo').yaml;

const loader = new Loader();

// use one of the bundled adapters
loader.addAdapter(['.yml', '.yaml'], yamlAdapter);

// use a custom adapter to parse .ini files
// via the `ini` package - https://github.com/npm/ini
loader.addAdapter('.ini', function(contents, filename){
    return require('ini').parse(contents);
});

loader.load('/path/to/data.yml').then(data => {
    console.log(data);
});

loader.load('/path/to/data.ini').then(data => {
    console.log(data);
});

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.1
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.1
    1
  • 1.0.0
    0

Package Sidebar

Install

npm i @frctl/dayglo

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • mihkeleidast
  • chapabu
  • tomdavies
  • allmarkedup
  • dkhuntrods