bh-property-helpers

0.0.4 • Public • Published

bh-property-helpers NPM version Build Status Coveralls Status

This is helper for fast and nice property setter/getter creation in context object.

Usage

var Method = require('bh-property-helpers');
 
method = new Method({ protected: false });
 
funciton Context() {
    function pickModsProperty() {
        return '_object.' + (this._context.get('object').elem ? 'elemMods' : 'mods');
    }
 
    method(this)
        .before(function () {
            this._object = this._context.get('object');
        })
        .named('attr').changes('_object.attrs').property()
        .named('attrs').changes('_object.attrs').property()
        .named('bem').changes('_object.bem').value()
        .named('cls').changes('_object.cls').value()
        .named('content').changes('_object.content').value()
        .named('js').changes('_object.js').value()
        .named('param').changes('_object').property()
        .named('tag').changes('_object.tag').value()
        .named('mix').changes('_object.mix').array()
        .named('mod').changes(pickModsProperty).property()
        .named('mods').changes(pickModsProperty).object();
}

API

Method([options])

Constructor of method builder. Returns Builder.

Builder(context)

Returns builder for context object. All methods will be defined on this object. Returns Builder.

.named(name)

Defines name for the method. Returns Builder.

.changes(propertyPath)

Points created method to propertyPath, which can be String or Function. In case of Function property path will be resolved each time method is called. Returns Builder.

.value() / .property() / .array() / .object()

This methods tells builder about value type, with which created method will be working.

Type What it does Setter/getter signature
value() Just sets passed value to property function (value, force)
property() Sets key-value in property object function (key, value, force)
array() Appends passed value to Array property function (array, force)
object() Extends property with passed object function (object, force)

By default this setters will not override previous property value (unless force is true).

Returns Builder.

Package Sidebar

Install

npm i bh-property-helpers

Weekly Downloads

2

Version

0.0.4

License

MIT

Last publish

Collaborators

  • floatdrop