Plugin for adding a `pkg` method that exposes pkg-store to your base application.
npm install base-pkg> 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 :heart: and support.
Install with npm:
``sh`
$ npm install --save base-pkg
`js
var pkg = require('base-pkg');
var Base = require('base');
var app = new Base();
app.use(pkg());
console.log(app.pkg.data);
//=> {"name": "my-project", ...}
`
Visit pkg-store for additional API details and documentation.
`js`
app.pkg.set(key, value);
Set property key with the given value.
Example
`js
// given {"name": "my-project"}
app.pkg.set('bin.foo', 'bar');
console.log(app.pkg.data);
//=> {"name": "my-project", "bin": {"foo": "bar"}}
`
Persist package.json to the file system at app.pkg.path.
`js`
app.pkg.save();
`js`
app.pkg.get(key);
Get property key from package.json.
Example
`js
// given {"name": "my-project"}
app.pkg.set('bin.foo', 'bar');
console.log(app.pkg.get('bin'));
//=> {"foo": "bar"}
`
`js`
app.pkg.has(key);
Returns true if package.json has property key.
Example
`js`
// given: {"name": "my-project"}
console.log(app.pkg.has('name'));
//=> true
console.log(app.pkg.has('zzzzzzz'));
//=> false
`js`
app.pkg.union(key, val);
Create array key, or concatenate values to array key. Also uniquifies the array.
Example
`js
app.pkg.union('keywords', 'foo');
app.pkg.union('keywords', ['bar', 'baz']);
console.log(app.pkg.get('keywords'));
//=> ['foo', 'bar', 'baz']
`
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
`js
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'}
`
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:
`sh`
$ 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:
`sh`
$ npm install -g verbose/verb#dev verb-generate-readme && verb
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 | optionget, enable and disable. See the readme for the full API."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">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 , set, del, and has methods for node.js/javascript projects. | get, set, del, and has` methods for node.js/javascript projects."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">homepage
* pkg-store: Use package.json as a config store. | homepage
Jon Schlinkert
* linkedin/in/jonschlinkert
* github/jonschlinkert
* twitter/jonschlinkert
Copyright © 2017, Jon Schlinkert.
Released under the MIT License.
*
_This file was generated by verb-generate-readme, v0.6.0, on December 21, 2017._