base-option

    1.0.0 • Public • Published

    base-option NPM version NPM monthly downloads NPM total downloads Linux Build Status

    Adds a few options methods to base, like option, enable and disable. See the readme for the full API.

    Install

    Install with npm:

    $ npm install --save base-option

    Usage

    Use as a plugin with with your base application:

    var Base = require('base');
    var options = require('base-option');
     
    var base = new Base();
    base.use(options()); // plugin
     
    // set an option
    app.option('a', 'b');
     
    // set a nested property
    app.option('x.y', 'z');
     
    // get an option
    console.log(app.option('x'));
    //=> {y: 'z'}

    API

    .option

    Set or get an option.

    Params

    • key {String}: The option name.
    • value {any}: The value to set.
    • returns {any}: Returns a value when only key is defined.

    Example

    app.option('a', true);
    app.option('a');
    //=> true

    .hasOption

    Return true if options.hasOwnProperty(key)

    Params

    • prop {String}
    • returns {Boolean}: True if prop exists.

    Example

    app.hasOption('a');
    //=> false
    app.option('a', 'b');
    app.hasOption('a');
    //=> true

    .enable

    Enable key.

    Params

    • key {String}
    • returns {Object} Options: to enable chaining

    Example

    app.enable('a');

    .disable

    Disable key.

    Params

    • key {String}: The option to disable.
    • returns {Object} Options: to enable chaining

    Example

    app.disable('a');

    .enabled

    Check if prop is enabled (truthy).

    Params

    • prop {String}
    • returns {Boolean}

    Example

    app.enabled('a');
    //=> false
     
    app.enable('a');
    app.enabled('a');
    //=> true

    .disabled

    Check if prop is disabled (falsey).

    Params

    • prop {String}
    • returns {Boolean}: Returns true if prop is disabled.

    Example

    app.disabled('a');
    //=> true
     
    app.enable('a');
    app.disabled('a');
    //=> false

    .isTrue

    Returns true if the value of prop is strictly true.

    Params

    • prop {String}
    • returns {Boolean}: Uses strict equality for comparison.

    Example

    app.option('a', 'b');
    app.isTrue('a');
    //=> false
     
    app.option('c', true);
    app.isTrue('c');
    //=> true
     
    app.option({a: {b: {c: true}}});
    app.isTrue('a.b.c');
    //=> true

    .isFalse

    Returns true if the value of key is strictly false.

    Params

    • prop {String}
    • returns {Boolean}: Uses strict equality for comparison.

    Example

    app.option('a', null);
    app.isFalse('a');
    //=> false
     
    app.option('c', false);
    app.isFalse('c');
    //=> true
     
    app.option({a: {b: {c: false}}});
    app.isFalse('a.b.c');
    //=> true

    .isBoolean

    Return true if the value of key is either true or false.

    Params

    • key {String}
    • returns {Boolean}: True if true or false.

    Example

    app.option('a', 'b');
    app.isBoolean('a');
    //=> false
     
    app.option('c', true);
    app.isBoolean('c');
    //=> true

    .option.set

    Set option key on app.options with the given value

    Params

    • key {String}: Option key, dot-notation may be used.
    • value {any}

    Example

    app.option.set('a', 'b');
    console.log(app.option.get('a'));
    //=> 'b'

    .option.get

    Get option key from app.options

    Params

    • key {String}: Option key, dot-notation may be used.
    • returns {any}

    Example

    app.option({a: 'b'});
    console.log(app.option.get('a'));
    //=> 'b'

    .option.create

    Returns a shallow clone of app.options with all of the options methods, as well as a .merge method for merging options onto the cloned object.

    Params

    • options {Options}: Object to merge onto the returned options object.
    • returns {Object}

    Example

    var opts = app.option.create();
    opts.merge({foo: 'bar'});

    About

    Related projects

    Contributing

    Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

    Contributors

    Commits Contributor
    64 jonschlinkert
    4 doowb

    Building docs

    (This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)

    To generate the readme, run the following command:

    $ npm install -g verbose/verb#dev verb-generate-readme && verb

    Running tests

    Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

    $ npm install && npm test

    Author

    Jon Schlinkert

    License

    Copyright © 2017, Jon Schlinkert. Released under the MIT License.


    This file was generated by verb-generate-readme, v0.6.0, on May 30, 2017.

    Install

    npm i base-option

    DownloadsWeekly Downloads

    25,830

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • jonschlinkert
    • doowb