D - Property descriptor factory
Originally derived from es5-ext package.
Defining properties with descriptors is very verbose:
var Account = function () {};
Object.defineProperties(Account.prototype, {
deposit: { value: function () {
}, configurable: true, enumerable: false, writable: true },
whithdraw: { value: function () {
}, configurable: true, enumerable: false, writable: true },
balance: { get: function () {
}, configurable: true, enumerable: false }
});
D cuts that to:
var d = require('d');
var Account = function () {};
Object.defineProperties(Account.prototype, {
deposit: d(function () {
}),
whithdraw: d(function () {
}),
balance: d.gs(function () {
})
});
By default, created descriptor follow characteristics of native ES5 properties, and defines values as:
{ configurable: true, enumerable: false, writable: true }
You can overwrite it by preceding value argument with instruction:
d('c', value);
d('ce', value);
d('e', value);
d.gs('e', value);
Installation
NPM
In your project path:
$ npm install d
Browser
You can easily bundle D for browser with modules-webmake
Tests
$ npm test