@eggjs/dal-runtime
Version:
tegg dal decorator
29 lines (28 loc) • 1.23 kB
TypeScript
import { TableModel } from '@eggjs/tegg/dal';
import type { DataSource as IDataSource, PaginateData, SqlType } from '@eggjs/tegg-types';
import { MysqlDataSource } from './MySqlDataSource';
import { TableSqlMap } from './TableSqlMap';
export interface ExecuteSql {
sql: string;
template: string;
sqlType: SqlType;
}
export declare class DataSource<T> implements IDataSource<T> {
#private;
private readonly tableModel;
private readonly mysqlDataSource;
private readonly sqlMap;
constructor(tableModel: TableModel<T>, mysqlDataSource: MysqlDataSource, sqlMap: TableSqlMap);
/**
* public for aop execute to implement sql hint append
* @param sqlName
* @param data
*/
generateSql(sqlName: string, data: object): Promise<ExecuteSql>;
count(sqlName: string, data?: any): Promise<number>;
execute(sqlName: string, data?: any): Promise<Array<T>>;
executeRaw(sqlName: string, data?: any): Promise<Array<any>>;
executeScalar(sqlName: string, data?: any): Promise<T | null>;
executeRawScalar(sqlName: string, data?: any): Promise<any | null>;
paginate(sqlName: string, data: any, currentPage: number, perPageCount: number): Promise<PaginateData<T>>;
}