UNPKG

lambdaorm-base

Version:
321 lines (320 loc) 13.3 kB
import { QueryActions } from './actions'; import { MetadataConstraint, MetadataModel, MetadataParameter, Metadata } from '../../sentence/domain'; import { QueryPlan } from '../../query/domain'; export declare class QueryAction { protected actions: any; protected query: any; constructor(actions: QueryActions, query: string); execute(data: any): Promise<any>; normalize(): string; model(): Promise<MetadataModel[]>; constraints(): Promise<MetadataConstraint>; parameters(): Promise<MetadataParameter[]>; sentence(): Promise<QueryPlan>; metadata(): Promise<Metadata>; } export declare class PageClauses extends QueryAction { /** */ page(page: number, records: number): QueryAction; } export declare class MapClauses<T> extends PageClauses { /** */ sort(predicate: (value: T, index: number, array: T[]) => unknown): PageClauses; } export declare class Map2Clauses<T> extends QueryAction { /** */ sort(predicate: (value: T, index: number, array: T[]) => unknown): PageClauses; } export declare class HavingClauses<T> extends MapClauses<T> { /** */ map<U>(predicate: (value: T, index: number, array: T[]) => U): MapClauses<U>; /** */ first<U>(predicate: (value: T, index: number, array: T[]) => U): Map2Clauses<U>; /** */ last<U>(predicate: (value: T, index: number, array: T[]) => U): Map2Clauses<U>; /** */ distinct<U>(predicate: (value: T, index: number, array: T[]) => U): MapClauses<U>; } export declare class FilterIncludeClauses<T> extends HavingClauses<T> { /** */ having(predicate: (value: T, index: number, array: T[]) => unknown): HavingClauses<T>; } export declare class IncludeClauses<T> extends HavingClauses<T> { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown): FilterIncludeClauses<T>; /** */ having(predicate: (value: T, index: number, array: T[]) => unknown): HavingClauses<T>; } export declare class FilterClauses<T> extends HavingClauses<T> { /** */ include(predicate: (value: T, index: number, array: T[]) => unknown): IncludeClauses<T>; /** */ having(predicate: (value: T, index: number, array: T[]) => unknown): HavingClauses<T>; } export declare class FilterAction<T> extends QueryAction { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown): QueryAction; } export declare class IncludeAction<T> extends QueryAction { /** */ include(predicate: (value: T, index: number, array: T[]) => unknown): QueryAction; } export declare class ModificableClauses<T> extends QueryAction { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown): FilterClauses<T>; /** */ include(predicate: (value: T, index: number, array: T[]) => unknown): FilterAction<T>; } export declare class Queryable<T> extends HavingClauses<T> { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown): FilterClauses<T>; /** */ include(predicate: (value: T, index: number, array: T[]) => unknown): IncludeClauses<T>; /** */ having(predicate: (value: T, index: number, array: T[]) => unknown): HavingClauses<T>; /** */ insert(predicate?: (value: T) => unknown | T): ModificableClauses<T>; upsert(predicate?: (value: T) => unknown | T): ModificableClauses<T>; /** */ bulkInsert(value?: T): ModificableClauses<T>; /** */ update(predicate?: (value: T, index: number, array: T[]) => unknown): ModificableClauses<T>; /** */ updateAll(predicate: (value: T, index: number, array: T[]) => unknown): IncludeAction<T>; merge(predicate?: (value: T) => unknown | T): ModificableClauses<T>; /** */ bulkMerge(value?: T): ModificableClauses<T>; /** */ bulkDelete(value?: T): ModificableClauses<T>; /** */ delete(predicate?: (value: T) => unknown): ModificableClauses<T>; /** */ deleteAll(): IncludeAction<T>; } export interface ModifyFilterClauses<T> { /** */ include(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): void; } export interface ModifyIncludeClauses<T> { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): ModifyFilterClauses<T>; } export interface ModifyClauses<T> { /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): ModifyFilterClauses<T>; /** */ include(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): ModifyIncludeClauses<T>; } export interface ModifyAllClauses<T> { /** */ include(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): ModifyIncludeClauses<T>; } export interface RelationMapClauses<T> { /** */ sort(predicate: (value: T, index: number, array: T[]) => unknown, ...args: any): void; /** */ filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): FilterClauses<T>; /** */ include(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): IncludeClauses<T>; } export interface RelationIncludeClauses<T> { /** */ map<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ first<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ last<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ distinct<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; } export interface IRelation<T> { /** */ map<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ first<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ last<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ distinct<U>(predicate: (value: T, index: number, array: T[]) => U, thisArg?: any): RelationMapClauses<T>; /** */ include(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): RelationIncludeClauses<T>; /** */ update(predicate?: (value: T) => unknown): void; /** */ insert(predicate?: (value: T) => unknown): void; /** */ upsert(predicate?: (value: T) => unknown): void; filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): FilterClauses<T>; } export type OneToMany<T> = IRelation<T>; export type OneToOne<T> = IRelation<T>; export type ManyToOne<T> = IRelation<T>; /** */ export declare function as(value: any, name: any): any; /** */ export declare function desc(value: any): void; /** */ export declare function asc(value: any): void; /** */ export declare function between(value: any, from: any, to: any): boolean; /** */ export declare function includes(value: any, list: any[]): boolean; /** */ export declare function distinct(value: any): any; /** Get the absolute value */ export declare function abs(value: number): number; /** Get the arc cosine */ export declare function acos(value: number): number; /** Get the arc sine */ export declare function asin(value: number): number; /** Get the arc tangent */ export declare function atan(value: number): number; /** Get the arc tangent of x and y */ export declare function atan2(x: number, y: number): number; /** Get the smallest following integer */ export declare function ceil(value: number): number; /** Get the cosine */ export declare function cos(value: number): number; /** Get hyperbolic cosine */ export declare function cosh(value: number): number; /** Raise e to the nth power */ export declare function exp(value: number): number; /** Get the largest preceding integer */ export declare function floor(value: number): number; /** Get natural logarithm of num */ export declare function ln(value: number): number; /** Get logarithm, base num1, of num2 */ export declare function log(num1: number, num2: number): number; /** Get remainder */ export declare function remainder(n1: number, n2: number): number; /** Get rounded value */ export declare function round(value: number, decimals: number): number; /** Get sign of exp */ export declare function sign(value: number): number; /** Get sine */ export declare function sin(value: number): number; /** Get hyperbolic sine */ export declare function sinh(value: number): number; /** Get tangent */ export declare function tan(value: number): number; /** Get hyperbolic tangent */ export declare function tanh(value: number): number; /** Truncate num */ export declare function trunc(value: number, decimals: number): number; /** Get character from ASCII code */ export declare function chr(value: string): string; /** Capitalize words */ /** Lowercase string */ export declare function lower(value: string): string; /** Pad the left-side of string */ export declare function lpad(value: string, len: number, pad: string): string; /** Remove leading chars */ export declare function ltrim(value: string): string; /** The replace() method searches a string for a specified value and returns a new string where the specified values are replaced. */ export declare function replace(value: string, source: string, target: string): string; /** Pad the right-side of string */ export declare function rpad(value: string, len: number, pad: string): string; /** Remove trailing spaces */ export declare function rtrim(value: string): string; /** Get a substring of string */ export declare function substr(value: string, from: number, count: number): string; /** Get a substring of string */ export declare function substring(value: string, from: number, count: number): string; /** Remove characters */ export declare function trim(value: string): string; /** Uppercase string */ export declare function upper(value: string): string; /** String concatenation */ export declare function concat(...values: string[]): string; /** Get the position of the first occurrence of substring */ export declare function like(field: string, searchString: string): string; /** * Returns true if the sequence of elements of searchString converted to a String is the * same as the corresponding elements of this object (converted to a String) starting at * position. Otherwise returns false. */ export declare function startsWith(field: string, searchString: string): string; /** Returns true if searchString appears as a substring of the result of converting this */ export declare function includes(field: string, searchString: string): string; /** Get the current time */ export declare function curTime(): Date; /** Get the current date */ export declare function today(): Date; /** Get the current dateTime */ export declare function now(): Date; /** */ export declare function time(value: any): Date; /** */ export declare function date(value: any): Date; /** */ export declare function dateTime(value: any): Date; /** */ export declare function year(value: Date): number; /** */ export declare function month(value: Date): number; /** */ export declare function day(value: Date): number; /** */ export declare function weekday(value: Date): number; /** */ export declare function hours(value: Date): number; /** */ export declare function minutes(value: Date): number; /** */ export declare function seconds(value: Date): number; /** */ export declare function addYear(date: Date, value: number): Date; /** */ export declare function addMonth(date: Date, value: number): Date; /** */ export declare function addDay(date: Date, value: number): Date; /** */ export declare function addHours(date: Date, value: number): Date; /** */ export declare function addMinutes(date: Date, value: number): Date; /** */ export declare function addSeconds(date: Date, value: number): Date; /** */ export declare function addTime(date: Date, value: number): Date; /** */ export declare function dateDiff(date: Date, date2: Date): Date; /** */ export declare function timeDiff(time: Date, time2: Date): Date; /** */ export declare function toString(value: any): string; /** */ export declare function toDate(value: any): Date; /** */ export declare function toDateTime(value: any): string; /** */ export declare function toTime(value: any): string; /** */ export declare function toJson(value: any): any; /** */ export declare function toNumber(value: any): number; /** */ export declare function user(): string; /** */ export declare function source(): string; /** */ export declare function nvl(value: any, _default: any): any; /** */ export declare function nvl2(value: any, a: any, b: any): any; /** */ export declare function isNull(value: any): boolean; /** */ export declare function isNotNull(value: any): boolean; /** */ export declare function avg(value: any): any; /** */ export declare function count(value: any): any; /** */ export declare function first(value: any): any; /** */ export declare function last(value: any): any; /** */ export declare function max(value: any): any; /** */ export declare function min(value: any): any; /** */ export declare function sum(value: any): any;