function assignProperties(target, ...sources) { sources.forEach(source => { Object.defineProperties( target, Object.keys(source).reduce((descriptors, key) => { descriptors[key] = Object.getOwnPropertyDescriptor(source, key); return descriptors; }, {}) ); }); return target; } export default assignProperties;