1.0.1 • Published 9 years ago

app-etc-load v1.0.1

Weekly downloads
51
License
MIT
Repository
github
Last release
9 years ago

Load

NPM version Build Status Coverage Status Dependencies

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):

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

MIT license.

Copyright

Copyright © 2015. Athan Reines.