app-etc-load
v1.0.1
Published
Loads a configuration file.
Downloads
910
Maintainers
Readme
Load
Loads a configuration file.
Installation
$ npm install app-etc-load
Usage
var load = require( 'app-etc-load' );
load( filename[, fmt] )
Loads a configuration file.
var config = load( '/path/to/configuration/file.<ext>' );
// returns {...}
If provided a relative path, the filename is resolved relative to the current working directory.
var config = load( './file.<ext>' );
// returns {...}
The following configuration file formats (extensions) are supported (see the ./test/fixtures
directory for file examples):
- TOML:
*.toml
- YAML:
*.yaml
or*.yml
- JSON:
*.json
- CJSON:
*.cjson
- HJSON:
*.hjson
- JSON5:
*.json5
- ALCE:
*.alce
- INI:
*.ini
- .properties:
*.properties
- js:
*.js
By default, the method infers the file format from the filename extension. To explicitly specify the file format, provide a fmt
argument.
var config = load( './file.txt', 'toml' );
// returns {...}
Specifying the file format as a filename extension is also supported.
var config = load( './file.txt', '.toml' );
// returns {...}
load.exts()
Returns a list of supported filename extensions.
var exts = load.exts();
// returns ['.json','.toml',...]
load.parser( extname[, parser] )
Returns a parser for the specified extension.
var parser = load.parser( '.json' );
Including the .
when specifying an extension is optional.
var parser = load.parser( 'json' );
To extend the main load
function or to override a parser, provide a parser
function for an associated extension.
var parser = require( 'my-special-fmt-parser' );
load.parser( '<my-ext>', parser );
Once a parser is set, the main load
function will parse provided files accordingly.
var config = load( './file.<my-ext>' );
Note: the only parser which cannot be overridden is for .js
configuration files.
Examples
var load = require( 'app-etc-load' );
var config = load( './.travis.yml' );
console.dir( config );
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2015. Athan Reines.