base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like
set
,get
,del
anduse
.
(TOC generated by verb)
InstallInstall with npm
Usage$ npm i base-methods --save
var base = require('base-methods');
inherit
function App() {
  base.call(this);
}
base.extend(App);
Â
var app = new App();
app.set('a', 'b');
app.get('a');
instantiate
var app = base();
app.set('foo', 'bar');
console.log(app.foo);
Inherit or instantiate with a namespace
A .namespace()
method is exposed on the exported function to allow you to create a custom namespace for setting/getting on the instance.
API Basevar Base = require('base-methods')
var base = Base.namespace('cache');
Â
var app = base();
app.set('foo', 'bar');
console.log(app.cache.foo);
Create an instance of Base
with options
.
Params
options
{Object}Example
.usevar app = new Base();
app.set('foo', 'bar');
console.log(app.get('foo'));
Define a plugin function to be called immediately upon init. Plugins are chainable and the only parameter exposed to the plugin is the application instance.
Params
fn
{Function}: plugin function to callreturns
{Object}: Returns the item instance for chaining.Example
.setvar app = new Base()
  .use(foo)
  .use(bar)
  .use(baz)
Assign value
to key
. Also emits set
with the key and value.
Params
key
{String}value
{any}returns
{Object}: Returns the instance for chaining.Example
.getapp.on('set', function(key, val) {
 Â
});
Â
app.set(key, value);
Â
app.set({name:Â 'Halle'});
app.set([{foo: 'bar'}, {baz: 'quux'}]);
console.log(app);
Return the stored value of key
. Dot notation may be used to get [nested property values][get-value].
Params
key
{any}returns
{any}Example
.hasapp.set('a.b.c', 'd');
app.get('a.b');
Â
app.get(['a', 'b']);
Return true if app has a stored value for key
, false only if typeof
value is undefined
.
Params
key
{any}returns
{any}Example
.delapp.set('foo', 'bar');
app.has('foo');
Delete key
from the instance. Also emits del
with the key of the deleted item.
Params
key
{String}returns
{Object}: Returns the instance for chaining.Example
.defineapp.del();Â
app.del('foo');
app.del(['foo', 'bar']);
Define a non-enumerable property on the instance.
Params
key
{String}value
{any}returns
{Object}: Returns the instance for chaining.Example
.visitdefine('render', function(str, locals) {
  return _.template(str)(locals);
});
Visit method
over the items in the given object, or map visit over the objects in an array.
Params
method
{String}val
{Object|Array}returns
{Object}: Returns the instance for chaining.Mix property key
onto the Base prototype. If base-methods is inherited using Base.extend
this method will be overridden by a new mixin
method that will only add properties to the prototype of the inheriting application.
Params
key
{String}val
{Object|Array}returns
{Object}: Returns the instance for chaining.Static method for adding global plugin functions that will be added to an instance when created.
Params
fn
{Function}: Plugin function to use on each instance.Example
.extendBase.use(function(app)Â {
  app.foo = 'bar';
});
var app = new Base();
console.log(app.foo);
Static method for inheriting both the prototype and static methods of the Base
class. See [class-utils][] for more details.
Static method for adding mixins to the prototype. When a function is returned from the mixin plugin, it will be added to an array so it can be used on inheriting classes via Base.mixins(Child)
.
Params
fn
{Function}: Function to callExample
.Base.mixinsBase.mixin(function fn(proto) {
  proto.foo = function(msg) {
    return 'foo ' + msg;
  };
  return fn;
});
Static method for running currently saved global mixin functions against a child constructor.
Params
Child
{Function}: Constructor function of a child classExample
.inheritBase.extend(Child);
Base.mixins(Child);
Similar to util.inherit
, but copies all static properties, prototype properties, and descriptors from Provider
to Receiver
. [class-utils][] for more details.
There are a number of different plugins available for extending base-methods. Let us know if you create your own!
config
method for mapping declarative configuration values to other 'base'⦠more | homepagedata
method to base-methods. | homepageoption
, enable
and disable
. See the readme⦠more | homepageInstall dev dependencies:
Contributing$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
AuthorJon Schlinkert
LicenseCopyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb on December 20, 2015.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4