Repository URL to install this package:
|
Version:
1.0.0-1 ▾
|
vending-octopus-trigger-dep
/
usr
/
local
/
lib
/
vending
/
octopus
/
trigger
/
node_modules
/
define-properties
|
|---|
| .. |
| test |
| index.js |
| CHANGELOG.md |
| package.json |
| .eslintrc |
| LICENSE |
| .editorconfig |
| README.md |
| .jscs.json |
| .travis.yml |
Define multiple non-enumerable properties at once. Uses Object.defineProperty when available; falls back to standard assignment in older engines.
Existing properties are not overridden. Accepts a map of property names to a predicate that, when true, force-overrides.
var define = require('define-properties'); var assert = require('assert'); var obj = define({ a: 1, b: 2 }, { a: 10, b: 20, c: 30 }); assert(obj.a === 1); assert(obj.b === 2); assert(obj.c === 30); if (define.supportsDescriptors) { assert.deepEqual(Object.keys(obj), ['a', 'b']); assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'c'), { configurable: true, enumerable: false, value: 30, writable: false }); }
Then, with predicates:
var define = require('define-properties'); var assert = require('assert'); var obj = define({ a: 1, b: 2, c: 3 }, { a: 10, b: 20, c: 30 }, { a: function () { return false; }, b: function () { return true; } }); assert(obj.a === 1); assert(obj.b === 20); assert(obj.c === 3); if (define.supportsDescriptors) { assert.deepEqual(Object.keys(obj), ['a', 'c']); assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'b'), { configurable: true, enumerable: false, value: 20, writable: false }); }
Simply clone the repo, npm install, and run npm test