import ResultOperator from '../builder/type/result/ResultOperator.ts' import {Model} from './Model.ts' import {Injectable} from '../../../di/src/decorator/Injection.ts' import {Container} from '../../../di/src/Container.ts' import {QueryRow} from '../db/types.ts' import Instantiable from '../../../di/src/type/Instantiable.ts' @Injectable() export default class ModelResultOperator extends ResultOperator { constructor( protected injector: Container, protected ModelClass: Instantiable, ) { super(); } inflate_row(row: QueryRow): Model { return this.injector.make(this.ModelClass).assume_from_source(row) } deflate_row(item: Model): QueryRow { return item.to_row() } }