1.0.0 • Published 7 years ago
defp v1.0.0
defp.js
Define object properties in an easier way. Inspired by prr.
Install
npm i defp
Requirements
defp
written in ES2015, use transpiler when needed- Add
Object.assign
polyfill 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
VALUE
contains one of these keys:get
,set
,value
,enumerable
,configurable
,defp
will treatVALUE
as a descriptor.
1.0.0
7 years ago