aboutsummaryrefslogtreecommitdiff
path: root/node_modules/merge-descriptors/index.js
diff options
context:
space:
mode:
authorgrant-kun <[email protected]>2022-09-26 07:14:29 -0500
committergrant-kun <[email protected]>2022-09-26 07:14:29 -0500
commit86feb9e6403cfa6198ffb6895877c1c00d2a738a (patch)
treecf29210132c5ffb2be80afe04eb0fa231dac3382 /node_modules/merge-descriptors/index.js
parent47e3ae49258f9ddfb91b570745fedeaef4f0fc8f (diff)
update (not working)
Diffstat (limited to 'node_modules/merge-descriptors/index.js')
-rw-r--r--node_modules/merge-descriptors/index.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/node_modules/merge-descriptors/index.js b/node_modules/merge-descriptors/index.js
new file mode 100644
index 0000000..573b132
--- /dev/null
+++ b/node_modules/merge-descriptors/index.js
@@ -0,0 +1,60 @@
+/*!
+ * merge-descriptors
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+'use strict'
+
+/**
+ * Module exports.
+ * @public
+ */
+
+module.exports = merge
+
+/**
+ * Module variables.
+ * @private
+ */
+
+var hasOwnProperty = Object.prototype.hasOwnProperty
+
+/**
+ * Merge the property descriptors of `src` into `dest`
+ *
+ * @param {object} dest Object to add descriptors to
+ * @param {object} src Object to clone descriptors from
+ * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties
+ * @returns {object} Reference to dest
+ * @public
+ */
+
+function merge(dest, src, redefine) {
+ if (!dest) {
+ throw new TypeError('argument dest is required')
+ }
+
+ if (!src) {
+ throw new TypeError('argument src is required')
+ }
+
+ if (redefine === undefined) {
+ // Default to true
+ redefine = true
+ }
+
+ Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) {
+ if (!redefine && hasOwnProperty.call(dest, name)) {
+ // Skip desriptor
+ return
+ }
+
+ // Copy descriptor
+ var descriptor = Object.getOwnPropertyDescriptor(src, name)
+ Object.defineProperty(dest, name, descriptor)
+ })
+
+ return dest
+}