2.0.0 • Published 8 years ago
kapsul v2.0.0
kapsul
Store your values in a capsule with validation.
Installation
$ npm install kapsul --save
Usage
const Kapsul = require('kapsul')
let kapsul = new Kapsul();
// set values.
kapsul.set('database', {
host: 'localhost',
port: 123
});
kapsul.set('database.username', 'root');
kapsul.set('database.password', 'hi!');
kapsul.set('database.password', 'bad', true); // doesn't replace value because of "doNotReplace" flag!
kapsul.set('database.password', 'secret'); // replaces value.
// check values.
kapsul.has('database.host'); // true
kapsul.has('database.ip'); // false
// get values.
kapsul.get('database.host'); // 'localhost'
kapsul.get('database.port'); // 123
kapsul.get('database.username'); // 'root'
kapsul.get('database.password'); // 'secret'
kapsul.get('database.schema', 'test'); // 'database.schema' is not set, returns 'test' as default value.
// enable / disable.
kapsul.enable('database.connection');
kapsul.enabled('database.connection'); // true
kapsul.disabled('database.connection'); // false
kapsul.disable('database.connection');
kapsul.enabled('database.connection'); // false
kapsul.disabled('database.connection'); // true
// push values.
kapsul.push('database.tables', 'blog');
kapsul.push('database.tables', 'writers');
kapsul.get('database.tables'); //['blog', 'writers']
// delete values.
kapsul.del('database.password');
kapsul.has('database.password'); // false
Initialize with values.
let kapsul = new Kapsul({
title: 'Kapsul'
});
Initialize using environment value.
$ KAPSUL=/path/to/config node app.js
let kapsul = Kapsul.initEnvironment();
Initialize from file.
let kapsul = Kapsul.initFile('/path/to/config');
Usage with Validation
kapsul may validate your values using Tasdik rules. Please check the available rules at Tasdik's readme or extend Tasdik using your custom validators.
let kapsul = new Kapsul();
// set rules.
kapsul.setRule('loaded', 'boolean');
// check rules.
kapsul.hasRule('loaded'); // true
kapsul.hasRule('sample'); // false
// test rules.
kapsul.testRule('loaded', true); // true
kapsul.testRule('loaded', 'yes'); // throws error.
// set values that have validation rules.
kapsul.set('loaded', true); // sets the value.
kapsul.set('loaded', 'yes'); // throws error because it's not a boolean.
// push rules.
kapsul.pushRule('array', 'array');
kapsul.pushRule('array', 'hasChild');
kapsul.getRule('array'); // ['array', 'hasChild']
// delete rules.
kapsul.delRule('loaded');
kapsul.hasRule('loaded'); // false
Initialize with validation.
// rules object.
let rules = {loaded: 'boolean'};
// all of the following are same.
// set rule by coding.
let kapsul = new Kapsul({...});
kapsul.setRule('loaded', 'boolean');
// initalize within values.
let kapsul = new Kapsul({..., _rules: rules});
// initialize using environment value.
let kapsul = Kapsul.initEnvironment(rules);
// initialize from file.
let kapsul = Kapsul.initFile('/path/to/config', rules);
// initialize using rules object.
let kapsul = new Kapsul({...}, rules);
Usage with Default Values, Required Flag and Validation Rules
let kapsul = new Kapsul({
sample: 'simple'
}, {
loaded: {
default: true
},
sample: {
default: 'not simple',
required: true,
rules: ['string']
}
});
kapsul.get('loaded'); // true
kapsul.get('sample'); // simple
kapsul.getRule('sample'); // ['string']
More...
- GitHub Repository: http://dev.tc/kapsul
- API Docs: http://dev.tc/kapsul/docs
- Self-Hosted Repository: http://dev.tc/kapsul/repo