UNPKG

@webda/postgres

Version:

Implements Postgres on webda

78 lines (77 loc) 2.42 kB
import { CoreModel, ModelLink, Store, StoreParameters, WebdaQL } from "@webda/core"; export interface SQLDatabase { name: string; } export declare class SQLStoreParameters extends StoreParameters { table: string; database: SQLDatabase; } export interface SQLClient { query: () => Promise<void>; } export interface SQLResult<T> { rows: T[]; rowCount: number; } export declare class SQLComparisonExpression extends WebdaQL.ComparisonExpression { toStringValue(value: (string | number | boolean) | (string | number | boolean)[]): string; toStringAttribute(): string; } export declare abstract class SQLStore<T extends CoreModel, K extends SQLStoreParameters = SQLStoreParameters> extends Store<T, K> { sqlQuery(q: string, values?: any[]): Promise<SQLResult<T>>; /** * Execute a SQL query * @param q the query * @param values to be added to the query */ abstract executeQuery(q: string, values?: any[]): Promise<SQLResult<T>>; /** * Add the SELECT * FROM table if the query is not a full query * @param q query to complete * @returns */ completeQuery(q: string): string; /** * @override */ _delete(uid: string, writeCondition: any, writeConditionField: string): Promise<void>; abstract mapExpressionAttribute(attribute: string[], asString?: boolean): string; duplicateExpression(expression: WebdaQL.Expression): WebdaQL.Expression; /** * @override */ find(query: WebdaQL.Query): Promise<{ results: T[]; continuationToken: string; filter: WebdaQL.Expression; }>; /** * @override */ _exists(uid: string): Promise<boolean>; /** * @override */ _get(uid: string, raiseIfNotFound?: boolean): Promise<T>; /** * @override */ getAll(list?: string[]): Promise<T[]>; /** * * @param itemWriteCondition * @param itemWriteConditionField * @param offset parameter offset */ abstract getQueryCondition(itemWriteCondition: any, itemWriteConditionField: string, values: any[]): any; /** * @override */ _update(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>; getUuid(object: T | string | ModelLink<T>): string; /** * @override */ _save(object: T): Promise<any>; __clean(): Promise<void>; }