1.0.0 • Published 9 years ago
defp v1.0.0
defp.js
Define object properties in an easier way. Inspired by prr.
Install
npm i defpRequirements
defpwritten in ES2015, use transpiler when needed- Add
Object.assignpolyfill if it's not available
Usage
const defp = require('defp')
defp(TARGET_OBJECT, KEY, [VALUE, [DESCRIPTOR_OPTIONS]])defp(obj, 'foo', 'baz')Equals to:
Object.defineProperty(obj, 'foo', {
configurable: false,
enumerable: false,
writable: false,
value: 'baz'
})Descriptor options
defp(obj, 'foo', 'baz', 'cew')
// c === configurable
// e === enumerable
// w === writable
defp(obj, 'foo', {
configurable: true,
enumerable: true,
writable: true,
value: 'baz'
})Equals:
Object.defineProperty(obj, 'foo', {
configurable: true,
enumerable: true,
writable: true,
value: 'baz'
})getter and setter:
defp(obj, 'foo', {
get () { return this._foo },
set (val) { this._foo = val }
})Overriding descriptor options for special key:
defp(obj, {
privateVar: {
enumerable: false,
value: 'privateVar'
},
publicVar: 'publicVar'
}, 'ew')Note:
- If
VALUEcontains one of these keys:get,set,value,enumerable,configurable,defpwill treatVALUEas a descriptor.
1.0.0
9 years ago