di-factory
Version:
The generic repository pattern implementation for NodeJS, aka `BaseCRUD`
35 lines (25 loc) • 734 B
JavaScript
;
const factory = (ClassCtor) => (...args) => {
function ClassActivator() {
const self = Reflect.construct(ClassCtor, args);
// @ts-ignore
self.init && self.init();
// @ts-ignore
Object.assign(this, self);
}
ClassActivator.prototype = Object.create(ClassCtor.prototype);
return ClassActivator;
};
/*
const Basecrud = factory(
class {
constructor(public name: string, public collectionId: string) {}
getName = () => this.name;
getCollectionId = () => this.collectionId;
}
);
class TestCrud extends Basecrud("test-crud", "collection-uuid") {}
const testCrud = new TestCrud();
console.log(testCrud.getName());
*/
exports.factory = factory;