base-pkg

    1.0.0 • Public • Published

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

    Plugin for adding a pkg method that exposes pkg-store to your base application.

    Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your ❤️ and support.

    Install

    Install with npm:

    $ npm install --save base-pkg

    Usage

    var pkg = require('base-pkg');
    var Base = require('base');
    var app = new Base();
     
    app.use(pkg());
     
    console.log(app.pkg.data);
    //=> {"name": "my-project", ...}

    API

    Visit pkg-store for additional API details and documentation.

    .pkg.set

    app.pkg.set(key, value);

    Set property key with the given value.

    Example

    // given {"name": "my-project"}
    app.pkg.set('bin.foo', 'bar');
     
    console.log(app.pkg.data);
    //=> {"name": "my-project", "bin": {"foo": "bar"}}

    .pkg.save

    Persist package.json to the file system at app.pkg.path.

    app.pkg.save();

    .pkg.get

    app.pkg.get(key);

    Get property key from package.json.

    Example

    // given {"name": "my-project"}
    app.pkg.set('bin.foo', 'bar');
     
    console.log(app.pkg.get('bin'));
    //=> {"foo": "bar"}

    .pkg.has

    app.pkg.has(key);

    Returns true if package.json has property key.

    Example

    // given: {"name": "my-project"}
    console.log(app.pkg.has('name'));
    //=> true
    console.log(app.pkg.has('zzzzzzz'));
    //=> false

    .pkg.union

    app.pkg.union(key, val);

    Create array key, or concatenate values to array key. Also uniquifies the array.

    Example

    app.pkg.union('keywords', 'foo');
    app.pkg.union('keywords', ['bar', 'baz']);
     
    console.log(app.pkg.get('keywords'));
    //=> ['foo', 'bar', 'baz']

    .pkg.expand

    Creates a get/set API using cache-base, where the cache is populated with a shallow clone of package.json with values expanded by expand-pkg.

    Example

    console.log(app.pkg.get('author'));
    //=> 'Jon Schlinkert (https://github.com/jonschlinkert)'
     
    var expanded = app.pkg.expand();
    var author = expanded.get('author');
    //=> {name: 'Jon Schlinkert', url: 'https://github.com/jonschlinkert'}

    About

    Contributing

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

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

    Related projects

    You might also be interested in these projects:

    • base-options: Adds a few options methods to base-methods, like option, enable and disable. See the readme… more | homepage
    • base: Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | homepage
    • cache-base: Basic object cache with get, set, del, and has methods for node.js/javascript projects. | homepage
    • pkg-store: Use package.json as a config store. | homepage

    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 December 21, 2017.

    Install

    npm i base-pkg

    DownloadsWeekly Downloads

    25,261

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • jonschlinkert