rjweb-server
Version:
Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS
25 lines (24 loc) • 960 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function mergeClasses(target, ...sources) {
sources.forEach((s) => {
const source = s?.prototype ?? {};
const descriptors = Object.keys(source).reduce((descriptors, key) => {
descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
return descriptors;
}, {});
Object.getOwnPropertyNames(source).forEach((key) => {
descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
return descriptors;
});
Object.getOwnPropertySymbols(source).forEach((sym) => {
const descriptor = Object.getOwnPropertyDescriptor(source, sym);
if (descriptor.enumerable) {
descriptors[sym] = descriptor;
}
});
Object.defineProperties(target.prototype, descriptors);
});
return target;
}
exports.default = mergeClasses;