1.0.8 • Published 9 days ago
load-config-file v1.0.8
load-config-file
Load the config file as a plain object.
- The config file format can be registered.
- The registered file format order is the search order.
- the virtual file system can be specfied:
loadConfig.setFileSystem(fs)
fs.path = require('path.js/lib/path').path
for the virtual POSIX path.- you must set the path first before call setFileSystem.
Usage
var loadConfig = require('load-config-file');
var yaml = require('js-yaml');
var cson = require('cson');
loadConfig.register(['.yaml', '.yml'], yaml.safeLoad); //first search.
loadConfig.register('.cson', cson.parseCSONString.bind(cson)); //second search
loadConfig.register('.json', JSON.parse); //third search.
//Synchronously load config from file.
//it will search config.yaml, config.yml, config.cson, config.json in the current folder.
//the first exist file will be loaded.
//the default encoding is "utf8" if no encoding.
//loadConfig('config', {encoding: 'ascii'})
//the non-enumerable "$cfgPath" property added.
console.log(loadConfig('config'));
//Asynchronously load config from file
loadConfig('config', function(err, result){
if (err) {
console.log('error:', err);
} else {
console.log(result);
}
})
API
var config = require('load-config-file');
config.register(extensionNames, parserFunc)
: register the configuration file format to load. return the configurators if successful.extensionNames
(Sting|ArrayOf String): the configuration file extension name(s) with dot.parserFunc
Function(context): the configuration context parser function:- parse the configuration context and return the plain object.
config.setFileSystem(fs)
: set your favour file system. defaults to 'fs'.- the "file system" must implement
readFile(path[, options], done)
andreadFileSync(path[, options])
- the "file system" must implement
load(path, options, done)
: Asynchronously load config from file- options
raiseError
(Boolean): raise error if nothing loaded defaults to false.exclude
(String|ArrayOf String): excludes some files.encoding
(String): the file encoding name. defaults to 'utf8'.
- return the plain object and the
$cfgPath
property added if successful.
- options
loadSync(path, options)
: Synchronously load config from file- return the plain object and the
$cfgPath
property added if successful.
- return the plain object and the
Changes
v0.2
- raiseError option to load function asynchronously.
- add the
$cfgPath
(String) non-enumerable property to the result. add object usage supports:
var cfgObj = new Config(aPath, aOptions) //create a configuration object. result = cfgObj.loadSync()
TODO
- ! how to use the specified promise library via any-promise?
- currently use the bluebird by default.
License
MIT
2.0.0-alpha.2
9 days ago
2.0.0-alpha.0
10 days ago
2.0.0-alpha.1
9 days ago
1.0.8
4 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
0.3.6
7 years ago
0.3.5
7 years ago
0.3.4
7 years ago
0.3.3
8 years ago
0.3.2
8 years ago
0.3.1
8 years ago
0.3.0
8 years ago
0.2.5
8 years ago
0.2.4
8 years ago
0.2.3
9 years ago
0.2.2
9 years ago
0.2.1
9 years ago
0.2.0
9 years ago
0.1.4
9 years ago
0.1.3
9 years ago
0.1.2
9 years ago
0.1.1
9 years ago
0.1.0
9 years ago