feat: добавил управление трансформацией данных для репозитория
This commit is contained in:
parent
8e619112cd
commit
017f735613
@ -15,6 +15,8 @@ export abstract class Repo<T extends Entity<any>> {
|
||||
protected _limit = 0
|
||||
protected _offset = 0
|
||||
|
||||
private _transformer: (obj: any) => any
|
||||
|
||||
/**
|
||||
* Возвращает объект соотв. сущности, например new App()
|
||||
*/
|
||||
@ -25,21 +27,24 @@ export abstract class Repo<T extends Entity<any>> {
|
||||
*/
|
||||
abstract Name(): string
|
||||
|
||||
_transformer: (object: any) => any
|
||||
|
||||
constructor(storage: Storage) {
|
||||
constructor(storage: Storage, transformer?: (obj: any) => any) {
|
||||
this._storage = storage
|
||||
this._entity = this.Entity()
|
||||
this.resetTransformer()
|
||||
this.setTransformer(transformer)
|
||||
}
|
||||
|
||||
resetTransformer() {
|
||||
this._transformer = function (object: any): any {
|
||||
const entity = this.Entity()
|
||||
entity.data.fromObject(object)
|
||||
entity._id = object._id
|
||||
return entity
|
||||
setTransformer(transformer?: (obj: any) => any): this {
|
||||
if (transformer) {
|
||||
this._transformer = transformer
|
||||
} else {
|
||||
this._transformer = function (object: any): any {
|
||||
const entity = this.Entity()
|
||||
entity.data.fromObject(object)
|
||||
entity._id = object._id
|
||||
return entity
|
||||
}
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
get storage(): Storage {
|
||||
|
Loading…
Reference in New Issue
Block a user