2.0.0 • Published 10 months ago
load-config-file v2.0.0
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
import { Config as loadConfig } from 'load-config-file'
import { parse as parseYaml } from 'yaml'
import * as cson from 'cson';
loadConfig.register(['.yaml', '.yml'], parseYaml); //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'));
const result = await 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
10 months ago
2.0.0-alpha.3
1 year ago
2.0.0-alpha.2
1 year ago
2.0.0-alpha.0
1 year ago
2.0.0-alpha.1
1 year ago
1.0.8
5 years ago
1.0.7
5 years ago
1.0.6
5 years ago
1.0.5
5 years ago
1.0.4
5 years ago
1.0.3
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago
0.3.6
8 years ago
0.3.5
8 years ago
0.3.4
8 years ago
0.3.3
9 years ago
0.3.2
9 years ago
0.3.1
9 years ago
0.3.0
9 years ago
0.2.5
9 years ago
0.2.4
9 years ago
0.2.3
10 years ago
0.2.2
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago
0.1.4
10 years ago
0.1.3
10 years ago
0.1.2
10 years ago
0.1.1
10 years ago
0.1.0
10 years ago