@sqb/connect
Version:
Multi-dialect database connection framework written with TypeScript
44 lines (43 loc) • 1.74 kB
TypeScript
import type { SqbConnection } from '../../client/sqb-connection.js';
import { AssociationNode } from '../model/association-node.js';
import { EntityMetadata } from '../model/entity-metadata.js';
import type { Repository } from '../repository.class.js';
import { FieldsProjection } from '../util/parse-fields-projection.js';
import { RowConverter } from './row-converter.js';
export type FindCommandArgs = {
entity: EntityMetadata;
connection: SqbConnection;
} & Repository.FindManyOptions;
export declare class FindCommand {
maxEagerFetch: number;
maxSubQueries: number;
readonly mainEntity: EntityMetadata;
readonly resultEntity: EntityMetadata;
readonly converter: RowConverter;
readonly mainAlias: string;
resultAlias: string;
private _joins;
private _selectColumns;
private _filter;
private _sort?;
protected constructor(selectEntity: EntityMetadata, outputEntity: EntityMetadata);
static create(source: EntityMetadata | AssociationNode, opts?: {
maxSubQueries?: number;
maxEagerFetch?: number;
}): Promise<FindCommand>;
static execute(args: FindCommandArgs): Promise<any[]>;
addFields(opts?: {
tableAlias?: string;
converter?: RowConverter;
entity?: EntityMetadata;
projection?: FieldsProjection | string | string[];
sort?: string[];
prefix?: string;
suffix?: string;
}): Promise<void>;
private _selectColumn;
filter(filter: any): Promise<void>;
sort(sortFields: string[]): Promise<void>;
execute(args: Pick<FindCommandArgs, 'connection' | 'distinct' | 'offset' | 'limit' | 'params' | 'onTransformRow' | 'prettyPrint'>): Promise<any[]>;
private _getEntityFromAlias;
}