@jakub.knejzlik/ts-query-server
Version:
TypeScript library for executing SQL queries built with ts-query across diverse server environments.
40 lines (34 loc) • 1.04 kB
text/typescript
import {
ISQLFlavor,
ISequelizable,
ISerializable,
} from "@jakub.knejzlik/ts-query";
import {
IMetadata,
ISequelizableOptions,
} from "@jakub.knejzlik/ts-query/dist/interfaces";
export interface Query extends ISequelizable, ISerializable, IMetadata {}
export interface IQueryRouterClient<Result = any> {
executeQueries(queries: Query[]): Promise<Result>;
executeRawQueries(queries: string[]): Promise<Result>;
}
export interface QueryRouterClientOpts {
flavor: ISQLFlavor;
sequelizeOptions?: ISequelizableOptions;
}
export class QueryRouterClient<
T extends Partial<QueryRouterClientOpts> = QueryRouterClientOpts
> implements IQueryRouterClient
{
constructor(protected opts: T & QueryRouterClientOpts) {}
executeQueries(queries: Query[]): Promise<any> {
return this.executeRawQueries(
queries.map((query) =>
query.toSQL(this.opts.flavor, this.opts.sequelizeOptions)
)
);
}
executeRawQueries(_: string[]): Promise<any> {
throw new Error("Method not implemented.");
}
}