fix(core): update

This commit is contained in:
2021-09-17 22:34:15 +02:00
parent 236c8c6551
commit aeb35705d4
4 changed files with 27 additions and 31 deletions

View File

@ -45,16 +45,22 @@ export interface IManager {
db: SmartdataDb
}
export const setDefaultManagerForDoc = (managerArg: IManager, dbDoc: any) => {
dbDoc.prototype.defaultManager = managerArg;
}
/**
* This is a decorator that will tell the decorated class what dbTable to use
* @param dbArg
*/
export function Manager<TManager extends IManager>(managerArg?: TManager | TDelayed<TManager>) {
return function classDecorator<T extends { new (...args: any[]): {} }>(constructor: T) {
return function classDecorator<T extends { new (...args: any[]): any }>(constructor: T) {
return class extends constructor {
public static get collection() {
let dbArg: SmartdataDb;
if (managerArg['db']) {
if (!managerArg) {
dbArg = this.prototype.defaultManager.db;
} else if (managerArg['db']) {
dbArg = (managerArg as TManager).db
} else {
dbArg = (managerArg as TDelayed<TManager>)().db;
@ -63,7 +69,11 @@ export interface IManager {
}
public get collection() {
let dbArg: SmartdataDb;
if (managerArg['db']) {
if (!managerArg) {
//console.log(this.defaultManager.db);
//process.exit(0)
dbArg = this.defaultManager.db;
} else if (managerArg['db']) {
dbArg = (managerArg as TManager).db
} else {
dbArg = (managerArg as TDelayed<TManager>)().db;

View File

@ -47,6 +47,7 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
*/
public static collection: SmartdataCollection<any>;
public collection: SmartdataCollection<any>;
public static defaultManager;
public static manager;
public manager: TManager;