fix(core): update
This commit is contained in:
		| @@ -13,13 +13,23 @@ export interface IDocValidationFunc<T> { | ||||
|   (doc: T): boolean; | ||||
| } | ||||
|  | ||||
| export type TDelayedDbCreation = () => SmartdataDb; | ||||
|  | ||||
| /** | ||||
|  * This is a decorator that will tell the decorated class what dbTable to use | ||||
|  * @param db | ||||
|  * @param dbArg | ||||
|  */ | ||||
| export function Collection(db: SmartdataDb) { | ||||
| export function Collection(dbArg: SmartdataDb | TDelayedDbCreation) { | ||||
|   return function(constructor) { | ||||
|     constructor['smartdataCollection'] = new SmartdataCollection(constructor, db); | ||||
|     if (dbArg instanceof SmartdataDb) { | ||||
|       // tslint:disable-next-line: no-string-literal | ||||
|       constructor['smartdataCollection'] = new SmartdataCollection(constructor, dbArg); | ||||
|     } else { | ||||
|       constructor['smartdataDelayedDatabase'] = () => { | ||||
|         return new SmartdataCollection(constructor, dbArg());  | ||||
|       }; | ||||
|     } | ||||
|      | ||||
|   }; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -77,7 +77,16 @@ export class SmartDataDbDoc<T> { | ||||
|    */ | ||||
|   constructor() { | ||||
|     this.name = this.constructor['name']; | ||||
|     this.collection = this.constructor['smartdataCollection']; | ||||
|     if(this.constructor['smartdataCollection']) { | ||||
|       // tslint:disable-next-line: no-string-literal | ||||
|       this.collection = this.constructor['smartdataCollection']; | ||||
|       // tslint:disable-next-line: no-string-literal | ||||
|     } else if (typeof this.constructor['smartdataDelayedDatabase'] === 'function') { | ||||
|       // tslint:disable-next-line: no-string-literal | ||||
|       this.collection = this.constructor['smartdataDelayedDatabase'](); | ||||
|     } else { | ||||
|       console.error('Could not determine collection for DbDoc'); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   static async getInstances<T>(filterArg): Promise<T[]> { | ||||
| @@ -109,6 +118,7 @@ export class SmartDataDbDoc<T> { | ||||
|    * may lead to data inconsistencies, but is faster | ||||
|    */ | ||||
|   async save() { | ||||
|     // tslint:disable-next-line: no-this-assignment | ||||
|     let self: any = this; | ||||
|     switch (this.creationStatus) { | ||||
|       case 'db': | ||||
|   | ||||
		Reference in New Issue
	
	Block a user