lambdaorm
Version:
68 lines (67 loc) • 2.23 kB
TypeScript
import { MetadataParameter, MetadataModel, MetadataConstraint, Metadata, QueryPlan, Schema, Dialect, SchemaFacade, SchemaState, QueryOptions } from 'lambdaorm-base';
import { StageFacade } from '../../stage/application';
import { QueryTransaction } from '../../expressions/application';
import { Expressions } from '3xpr';
export interface IOrm {
stage: StageFacade;
schema: SchemaFacade;
state: SchemaState;
exp: Expressions;
dialect(source: string): Dialect;
init(configPath?: string, connect?: boolean): Promise<Schema>;
end(): Promise<void>;
/**
* Normalize query
* @returns Expression normalized
*/
normalize(query: Function): string;
normalize(query: string): string;
/**
* Get model of query
* @returns Model of query
*/
model(query: Function): MetadataModel[];
model(query: string): MetadataModel[];
/**
* Get parameters of query
* @returns Parameters of query
*/
parameters(query: Function): MetadataParameter[];
parameters(query: string): MetadataParameter[];
/**
* Get constraints of query
* @returns Constraints of query
*/
constraints(query: Function): MetadataConstraint;
constraints(query: string): MetadataConstraint;
/**
* Get metadata of query
* @returns metadata of query
*/
metadata(query: Function): Metadata;
metadata(query: string): Metadata;
/**
*
* @param query
* @param options
*/
plan(query: Function, options?: QueryOptions): QueryPlan;
plan(query: string, options?: QueryOptions): QueryPlan;
/**
* Execute query
* @param query Query to execute
* @param data Data with variables
* @param options query options
* @returns Result of execution
*/
execute(query: Function, data?: any, options?: QueryOptions): Promise<any>;
execute(query: string, data?: any, options?: QueryOptions): Promise<any>;
/**
* transaction
* @param options query options
* @param callback
*/
transaction(options: QueryOptions | undefined, callback: {
(tr: QueryTransaction): Promise<void>;
}): Promise<void>;
}