UNPKG

dom-factory

Version:

Enhance HTML elements using plain JavaScript objects.

25 lines 691 B
/** * Assign descriptors * @param {Object} target * @param {...Object} sources * @return {Object} */ export const assign = (target, ...sources) => { sources.forEach(source => { if (!source) { return } let descriptors = Object.keys(source).reduce((descriptors, key) => { descriptors[key] = Object.getOwnPropertyDescriptor(source, key) return descriptors }, {}) Object.getOwnPropertySymbols(source).forEach(sym => { let descriptor = Object.getOwnPropertyDescriptor(source, sym) if (descriptor.enumerable) { descriptors[sym] = descriptor } }) Object.defineProperties(target, descriptors) }) return target }