database-builder
Version:
Library to assist in creating and maintaining SQL commands.
41 lines (40 loc) • 2.36 kB
TypeScript
import { ReturnExpression } from "lambda-expression";
import { ValueTypeToParse } from "./core/utils";
import { DatabaseHelper } from "./database-helper";
import { FieldType } from "./core/enums/field-type";
import { PrimaryKeyType } from "./core/enums/primary-key-type";
import { GetMapper } from "./mapper/interface-get-mapper";
import { MetadataTableBase } from "./metadata-table-base";
import { WhereBuilder } from "./crud/where-builder";
import { DatabaseTypes } from "./definitions";
export declare class MetadataTable<T> extends MetadataTableBase<T> {
private _databaseHelper;
private _getMapper;
readOnly: boolean;
tableName: string;
instance: T;
private _autoMapperCalled;
private _expressionUtils;
constructor(_newable: new () => T, _databaseHelper: DatabaseHelper, _getMapper: GetMapper, readOnly?: boolean, tableName?: string);
column<TReturn>(expression: ReturnExpression<TReturn, T>, type?: (new () => TReturn) | DatabaseTypes, primaryKeyType?: PrimaryKeyType): MetadataTable<T>;
hasQueryFilter(whereCallback: (where: WhereBuilder<T>) => void): MetadataTable<T>;
hasMany<TArray, TReturn extends TArray[]>(expression: ReturnExpression<TReturn, T>, type: new () => TArray, tableName: string): MetadataTable<T>;
referenceKey<TKey, TReturn>(expression: ReturnExpression<TKey, T>, expressionKey: ReturnExpression<TReturn, TKey>, type?: new () => TReturn): MetadataTable<T>;
reference<TReturn>(expression: ReturnExpression<TReturn, T>, type?: new () => TReturn): MetadataTable<T>;
key<TReturn>(expression: ReturnExpression<TReturn, T>, primaryKeyType?: PrimaryKeyType, type?: new () => TReturn): MetadataTable<T>;
ignore<TReturn>(expression: ReturnExpression<TReturn, T>): MetadataTable<T>;
autoMapper(references?: boolean, referencesId?: boolean, referencesIdRecursive?: boolean): MetadataTable<T>;
protected getTypeByValue(value: ValueTypeToParse): FieldType;
private validInstanceMapper;
private validExpressionMapper;
private columnName;
private getTypeByExpression;
private getMapper;
private isKeyColumn;
private autoMapperColumns;
private addReference;
private mapperReference;
private getMapperColumnReference;
private autoColumnsModelReferencesRecursive;
private addDependencyArray;
}