import {ErrorWithContext} from '../../util' import {Container, Injectable} from '../../di' import {ResultIterable} from './result/ResultIterable' import {QueryRow} from '../types' import {AbstractBuilder} from './AbstractBuilder' import {AbstractResultIterable} from './result/AbstractResultIterable' /** * Implementation of the abstract builder class that returns simple QueryRow objects. */ @Injectable() export class Builder extends AbstractBuilder { public getNewInstance(): AbstractBuilder { return Container.getContainer().make(Builder) } public getResultIterable(): AbstractResultIterable { if ( !this.registeredConnection ) { throw new ErrorWithContext(`No connection specified to fetch iterator for query.`) } return Container.getContainer().make(ResultIterable, this.finalize(), this.registeredConnection) } }