UNPKG

@fxjs/db-driver

Version:

[![NPM version](https://img.shields.io/npm/v/@fxjs/db-driver.svg)](https://www.npmjs.org/package/@fxjs/db-driver) [![Build Status](https://travis-ci.org/fxjs-modules/db-driver.svg)](https://travis-ci.org/fxjs-modules/db-driver) [![Build status](https://

121 lines (120 loc) 3.56 kB
/// <reference types="fib-pool" /> /// <reference types="@fibjs/types" /> import { FxOrmCoreCallbackNS } from "@fxjs/orm-core"; export declare namespace FxDbDriverNS { type DriverType = 'mysql' | 'sqlite' | 'psql' | 'redis' | 'unknown'; interface ConnectionInputArgs { protocol?: string; /** * * prioty: hasOwnProperty('hostname') > host */ hostname?: string; host?: string; port?: number | string; /** * if auth existed, user/password would be overwritten */ auth?: string; username?: string; password?: string; database?: string; pool?: boolean | ConnectionPoolOptions; debug?: boolean; pathname?: string; query?: Record<string, any>; href?: string; [extra: string]: any; } interface ConnectionPoolOptions { maxsize?: FibPoolNS.FibPoolOptionArgs['maxsize']; timeout?: FibPoolNS.FibPoolOptionArgs['timeout']; retry?: FibPoolNS.FibPoolOptionArgs['retry']; } /** * @description plain object, not Url Object */ interface DBConnectionConfig { protocol: ConnectionInputArgs['protocol']; slashes: Class_UrlObject['slashes']; query: ConnectionInputArgs['query']; database: ConnectionInputArgs['database']; username: ConnectionInputArgs['username']; password: ConnectionInputArgs['password']; host: ConnectionInputArgs['host']; href: ConnectionInputArgs['href']; pathname: ConnectionInputArgs['pathname']; [extra: string]: any; } interface DriverBuiltInExtConfig { pool: false | ConnectionPoolOptions; debug: boolean; } interface DriverExtendTransaction { begin: { <T = any>(): void; }; commit: { <T = any>(): void; }; rollback: { <T = any>(): void; }; trans: { <T = any>(cb: FxOrmCoreCallbackNS.ExecutionCallback<T>): boolean; }; } interface DriverConfig { database: string; [ext_cfg_name: string]: any; } } export declare namespace FxDbDriverNS { type DriverUidType = string; interface QueryDataPayload { [key: string]: any; } interface QueriedCountDataPayload { c: number; } } export declare namespace FxDbDriver__Driver_SQLShared { interface SyncOptions { id: string[]; table: string; } interface DropOptions { table: string; } } export declare namespace FxDbDriverNS { interface SQLDriver extends DriverExtendTransaction { currentDb: string; /** * * @param dbname dbname, expected to be escaped */ dbExists(dbname: string): boolean; execute: { <T = any>(sql: string): T; }; } interface CommandDriverCommandOptions { parallel?: boolean; } interface CommandDriver { command: { <T = any>(cmd: string, ...args: any[]): T; }; commands: { <T = any>(cmds: Record<string, any>, opts?: CommandDriverCommandOptions): T; }; } interface ServiceDriver { /** * @description is this service support rest api * @sample elasticsearch, tdengine */ readonly isRest: boolean; } }