kapsul

2.0.0 • Public • Published

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...

Package Sidebar

Install

npm i kapsul

Weekly Downloads

1

Version

2.0.0

License

MIT

Last publish

Collaborators

  • elmasgunes