Experimental SQLite support
This commit is contained in:
@@ -4,7 +4,7 @@ import {DatabaseService} from '../DatabaseService'
|
||||
import {ModelBuilder} from './ModelBuilder'
|
||||
import {getFieldsMeta, ModelField} from './Field'
|
||||
import {deepCopy, Collection, uuid4, isKeyof, Pipeline, hasOwnProperty} from '../../util'
|
||||
import {EscapeValueObject} from '../dialect/SQLDialect'
|
||||
import {EscapeValueObject, QuerySafeValue} from '../dialect/SQLDialect'
|
||||
import {Logging} from '../../service/Logging'
|
||||
import {Connection} from '../connection/Connection'
|
||||
import {ModelRetrievedEvent} from './events/ModelRetrievedEvent'
|
||||
@@ -162,7 +162,7 @@ export abstract class Model<T extends Model<T>> extends LocalBus<ModelEvent<T>>
|
||||
|
||||
builder.connection(this.getConnection())
|
||||
|
||||
if ( typeof source === 'string' ) {
|
||||
if ( typeof source === 'string' || source instanceof QuerySafeValue ) {
|
||||
builder.from(source)
|
||||
} else {
|
||||
builder.from(source.table, source.alias)
|
||||
@@ -368,7 +368,7 @@ export abstract class Model<T extends Model<T>> extends LocalBus<ModelEvent<T>>
|
||||
|
||||
builder.connection(ModelClass.getConnection())
|
||||
|
||||
if ( typeof source === 'string' ) {
|
||||
if ( typeof source === 'string' || source instanceof QuerySafeValue ) {
|
||||
builder.from(source)
|
||||
} else {
|
||||
builder.from(source.table, source.alias)
|
||||
|
||||
@@ -2,9 +2,10 @@ import {Model} from './Model'
|
||||
import {AbstractResultIterable} from '../builder/result/AbstractResultIterable'
|
||||
import {Connection} from '../connection/Connection'
|
||||
import {ModelBuilder} from './ModelBuilder'
|
||||
import {Container, Instantiable} from '../../di'
|
||||
import {Instantiable} from '../../di'
|
||||
import {QueryRow} from '../types'
|
||||
import {collect, Collection} from '../../util'
|
||||
import {getFieldsMeta} from './Field'
|
||||
|
||||
/**
|
||||
* Implementation of the result iterable that returns query results as instances of the defined model.
|
||||
@@ -60,8 +61,11 @@ export class ModelResultIterable<T extends Model<T>> extends AbstractResultItera
|
||||
* @protected
|
||||
*/
|
||||
protected async inflateRow(row: QueryRow): Promise<T> {
|
||||
return Container.getContainer().make<T>(this.ModelClass)
|
||||
.assumeFromSource(row)
|
||||
const model = this.make<T>(this.ModelClass)
|
||||
const fields = getFieldsMeta(model)
|
||||
return model.assumeFromSource(
|
||||
this.connection.normalizeRow(row, fields),
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user