mirror of
https://github.com/laochan-eacnet/backend.git
synced 2026-10-02 19:47:59 +03:00
22 lines
496 B
TypeScript
22 lines
496 B
TypeScript
export function Combine(...modules: ({ new(): any })[]) {
|
|
class Modules {
|
|
constructor() {
|
|
modules.forEach(v => Object.assign(this, new v()));
|
|
}
|
|
}
|
|
|
|
modules.forEach(v => {
|
|
const descriptors = Object.getOwnPropertyDescriptors(v.prototype);
|
|
|
|
for (const name in descriptors) {
|
|
if (name === 'constructor')
|
|
continue;
|
|
|
|
const descriptor = descriptors[name];
|
|
Object.defineProperty(Modules.prototype, name, descriptor);
|
|
}
|
|
});
|
|
|
|
return Modules;
|
|
}
|