Dayglo
Adapter-based data file loader/parser for Node.
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);
});