diff options
Diffstat (limited to 'node_modules/define-property/index.js')
| -rw-r--r-- | node_modules/define-property/index.js | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/define-property/index.js b/node_modules/define-property/index.js new file mode 100644 index 0000000..0efa0a9 --- /dev/null +++ b/node_modules/define-property/index.js @@ -0,0 +1,38 @@ +/*! + * define-property <https://github.com/jonschlinkert/define-property> + * + * Copyright (c) 2015-2018, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +var isobject = require('isobject'); +var isDescriptor = require('is-descriptor'); +var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) +  ? Reflect.defineProperty +  : Object.defineProperty; + +module.exports = function defineProperty(obj, key, val) { +  if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) { +    throw new TypeError('expected an object, function, or array'); +  } + +  if (typeof key !== 'string') { +    throw new TypeError('expected "key" to be a string'); +  } + +  if (isDescriptor(val)) { +    define(obj, key, val); +    return obj; +  } + +  define(obj, key, { +    configurable: true, +    enumerable: false, +    writable: true, +    value: val +  }); + +  return obj; +};  | 
