@e-mc/db
TypeScript icon, indicating that this package has built-in type declarations

0.8.7 • Public • Published

@e-mc/db

  • NodeJS 14
  • ES2020

General Usage

Interface

import type { DbDataSource } from "./squared";

import type { IHost } from "./index";
import type { ClientDbConstructor, IClientDb } from "./core";
import type { DB_TYPE, SQL_COMMAND, BatchQueryResult, ExecuteBatchQueryOptions, ExecuteQueryOptions, HandleFailOptions, PoolConfig, ProcessRowsOptions, QueryResult } from "./db";
import type { DbCoerceSettings, DbModule, DbSourceOptions } from "./settings";

import type { SecureContextOptions } from "tls";

interface IDb extends IClientDb<IHost, DbModule, DbDataSource, DbSourceOptions, DbCoerceSettings> {
    setCredential(item: DbDataSource): Promise<void>;
    getCredential(item: DbDataSource): Record<string | number | symbol, unknown>;
    hasSource(source: string, ...type: number[]): boolean;
    applyCommand(...items: DbDataSource[]): void;
    executeQuery(item: DbDataSource, sessionKey: string): Promise<QueryResult>;
    executeQuery(item: DbDataSource, options?: ExecuteQueryOptions | string): Promise<QueryResult>;
    executeBatchQuery(batch: DbDataSource[], sessionKey: string, outResult?: BatchQueryResult): Promise<BatchQueryResult>;
    executeBatchQuery(batch: DbDataSource[], options?: ExecuteBatchQueryOptions | string, outResult?: BatchQueryResult): Promise<BatchQueryResult>;
    processRows(batch: DbDataSource[], tasks: Promise<QueryResult | null>[], parallel: boolean): Promise<BatchQueryResult>;
    processRows(batch: DbDataSource[], tasks: Promise<QueryResult | null>[], options?: ProcessRowsOptions, outResult?: BatchQueryResult): Promise<BatchQueryResult>;
    handleFail(err: unknown, item: DbDataSource, options?: HandleFailOptions): boolean;
    readTLSCert(value: unknown, cache?: boolean): string;
    readTLSConfig(options: SecureContextOptions, cache?: boolean): void;
    settingsOf(source: string, name: keyof Omit<DbSourceOptions, "coerce">): unknown;
    settingsOf(source: string, name: "coerce", component: keyof DbCoerceSettings): unknown;
    settingsKey(source: string, name: keyof Omit<DbSourceOptions, "coerce">): unknown;
    settingsKey(source: string, name: "coerce", component: keyof DbCoerceSettings): unknown;
    getPoolConfig(source: string, uuidKey?: string): Required<PoolConfig> | undefined;
    get sourceType(): DB_TYPE;
    get commandType(): SQL_COMMAND;
}

interface DbConstructor extends ClientDbConstructor<IHost> {
    setPoolConfig(value: Record<string, PoolConfig>): void;
    getPoolConfig(source: string): Required<PoolConfig> | undefined;
    readonly prototype: IDb;
    new(module?: DbModule, database?: DbDataSource[], ...args: unknown[]): IDb;
}

interface IDbSourceClient {
    DB_SOURCE_NAME: string;
    DB_SOURCE_CLIENT: boolean;
    DB_SOURCE_TYPE: number;
    setCredential(this: IDb, item: DbDataSource): Promise<void>;
    executeQuery(this: IDb, item: DbDataSource, options?: ExecuteQueryOptions | string): Promise<QueryResult>;
    executeBatchQuery(this: IDb, batch: DbDataSource[], options?: ExecuteBatchQueryOptions | string, outResult?: BatchQueryResult): Promise<BatchQueryResult>;
    checkTimeout?(this: IDbSourceClient, value: number, limit?: number): Promise<number>;
}

interface IDbPool {
    client: unknown;
    lastAccessed: number;
    success: number;
    failed: number;
    poolKey: string;
    uuidKey: AuthValue | null;
    add(item: DbDataSource, uuidKey?: string): this;
    has(item: DbDataSource): boolean;
    getConnection(): Promise<unknown>;
    remove(): void;
    detach(force?: boolean): Promise<void>;
    close(): Promise<void>;
    isIdle(timeout: number): boolean;
    isEmpty(): boolean;
    set connected(value: boolean);
    get persist(): boolean;
    get closed(): boolean;
    get closeable(): boolean;
    set parent(value: Record<string, IDbPool>);
}

interface DbPoolConstructor {
    findKey(pools: Record<string, IDbPool>, uuidKey: unknown, poolKey: string | undefined, ...items: DbDataSource[]): Record<string, IDbPool> | null;
    validateKey(pools: Record<string, IDbPool>, username: string, uuidKey: unknown): [string, Record<string, IDbPool> | null];
    checkTimeout(pools: Record<string, IDbPool>, value: number, limit?: number): Promise<number>;
    readonly prototype: IDbPool;
    new(pool: unknown, poolKey: string, uuidKey?: AuthValue | null): IDbPool;
}

References

LICENSE

BSD 3-Clause

Package Sidebar

Install

npm i @e-mc/db

Weekly Downloads

4

Version

0.8.7

License

BSD 3-Clause

Unpacked Size

28.7 kB

Total Files

10

Last publish

Collaborators

  • anpham6