mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-22 20:39:17 +08:00
708 lines
23 KiB
TypeScript
708 lines
23 KiB
TypeScript
// Type definitions for Knex.js 0.14
|
|
// Project: https://github.com/tgriesser/knex
|
|
// Definitions by: Qubo <https://github.com/tkQubo>
|
|
// Baronfel <https://github.com/baronfel>
|
|
// Pablo Rodríguez <https://github.com/MeLlamoPablo>
|
|
// Matt R. Wilson <https://github.com/mastermatt>
|
|
// Satana Charuwichitratana <https://github.com/micksatana>
|
|
// Shrey Jain <https://github.com/shreyjain1994>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.3
|
|
|
|
/// <reference types="node" />
|
|
|
|
import events = require("events");
|
|
import stream = require ("stream");
|
|
import Bluebird = require("bluebird");
|
|
|
|
type Callback = Function;
|
|
type Client = Function;
|
|
type Value = string | number | boolean | Date | Array<string> | Array<number> | Array<Date> | Array<boolean> | Buffer | Knex.Raw;
|
|
type ColumnName = string | Knex.Raw | Knex.QueryBuilder | {[key: string]: string };
|
|
type TableName = string | Knex.Raw | Knex.QueryBuilder;
|
|
|
|
interface Knex extends Knex.QueryInterface {
|
|
(tableName?: string): Knex.QueryBuilder;
|
|
VERSION: string;
|
|
__knex__: string;
|
|
|
|
raw: Knex.RawBuilder;
|
|
transaction<T>(transactionScope: (trx: Knex.Transaction) => Promise<T> | Bluebird<T> | void): Bluebird<T>;
|
|
destroy(callback: Function): void;
|
|
destroy(): Bluebird<void>;
|
|
batchInsert(tableName: TableName, data: any[], chunkSize?: number): Knex.QueryBuilder;
|
|
schema: Knex.SchemaBuilder;
|
|
queryBuilder(): Knex.QueryBuilder;
|
|
|
|
client: any;
|
|
migrate: Knex.Migrator;
|
|
seed: any;
|
|
fn: Knex.FunctionHelper;
|
|
on(eventName: string, callback: Function): Knex.QueryBuilder;
|
|
}
|
|
|
|
declare function Knex(config: Knex.Config): Knex;
|
|
|
|
declare namespace Knex {
|
|
//
|
|
// QueryInterface
|
|
//
|
|
|
|
interface QueryInterface {
|
|
select: Select;
|
|
as: As;
|
|
columns: Select;
|
|
column: Select;
|
|
from: Table;
|
|
into: Table;
|
|
table: Table;
|
|
distinct: Distinct;
|
|
|
|
// Joins
|
|
join: Join;
|
|
joinRaw: JoinRaw;
|
|
innerJoin: Join;
|
|
leftJoin: Join;
|
|
leftOuterJoin: Join;
|
|
rightJoin: Join;
|
|
rightOuterJoin: Join;
|
|
outerJoin: Join;
|
|
fullOuterJoin: Join;
|
|
crossJoin: Join;
|
|
|
|
// Withs
|
|
with: With;
|
|
withRaw: WithRaw;
|
|
withSchema: WithSchema;
|
|
withWrapped: WithWrapped;
|
|
|
|
// Wheres
|
|
where: Where;
|
|
andWhere: Where;
|
|
orWhere: Where;
|
|
whereNot: Where;
|
|
andWhereNot: Where;
|
|
orWhereNot: Where;
|
|
whereRaw: WhereRaw;
|
|
orWhereRaw: WhereRaw;
|
|
andWhereRaw: WhereRaw;
|
|
whereWrapped: WhereWrapped;
|
|
havingWrapped: WhereWrapped;
|
|
whereExists: WhereExists;
|
|
orWhereExists: WhereExists;
|
|
whereNotExists: WhereExists;
|
|
orWhereNotExists: WhereExists;
|
|
whereIn: WhereIn;
|
|
orWhereIn: WhereIn;
|
|
whereNotIn: WhereIn;
|
|
orWhereNotIn: WhereIn;
|
|
whereNull: WhereNull;
|
|
orWhereNull: WhereNull;
|
|
whereNotNull: WhereNull;
|
|
orWhereNotNull: WhereNull;
|
|
whereBetween: WhereBetween;
|
|
orWhereBetween: WhereBetween;
|
|
andWhereBetween: WhereBetween;
|
|
whereNotBetween: WhereBetween;
|
|
orWhereNotBetween: WhereBetween;
|
|
andWhereNotBetween: WhereBetween;
|
|
|
|
// Group by
|
|
groupBy: GroupBy;
|
|
groupByRaw: RawQueryBuilder;
|
|
|
|
// Order by
|
|
orderBy: OrderBy;
|
|
orderByRaw: RawQueryBuilder;
|
|
|
|
// Union
|
|
union: Union;
|
|
unionAll(callback: QueryCallback): QueryBuilder;
|
|
|
|
// Having
|
|
having: Having;
|
|
andHaving: Having;
|
|
havingRaw: RawQueryBuilder;
|
|
orHaving: Having;
|
|
orHavingRaw: RawQueryBuilder;
|
|
|
|
// Clear
|
|
clearSelect(): QueryBuilder;
|
|
clearWhere(): QueryBuilder;
|
|
|
|
// Paging
|
|
offset(offset: number): QueryBuilder;
|
|
limit(limit: number): QueryBuilder;
|
|
|
|
// Aggregation
|
|
count(columnName?: string): QueryBuilder;
|
|
countDistinct(columnName?: string): QueryBuilder;
|
|
min(columnName: string): QueryBuilder;
|
|
max(columnName: string): QueryBuilder;
|
|
sum(columnName: string): QueryBuilder;
|
|
sumDistinct(columnName: string): QueryBuilder;
|
|
avg(columnName: string): QueryBuilder;
|
|
avgDistinct(columnName: string): QueryBuilder;
|
|
increment(columnName: string, amount?: number): QueryBuilder;
|
|
decrement(columnName: string, amount?: number): QueryBuilder;
|
|
|
|
// Others
|
|
first: Select;
|
|
|
|
debug(enabled?: boolean): QueryBuilder;
|
|
pluck(column: string): QueryBuilder;
|
|
|
|
insert(data: any, returning?: string | string[]): QueryBuilder;
|
|
update(data: any, returning?: string | string[]): QueryBuilder;
|
|
update(columnName: string, value: Value, returning?: string | string[]): QueryBuilder;
|
|
returning(column: string | string[]): QueryBuilder;
|
|
|
|
del(returning?: string | string[]): QueryBuilder;
|
|
delete(returning?: string | string[]): QueryBuilder;
|
|
truncate(): QueryBuilder;
|
|
|
|
transacting(trx?: Transaction): QueryBuilder;
|
|
connection(connection: any): QueryBuilder;
|
|
|
|
clone(): QueryBuilder;
|
|
}
|
|
|
|
interface As {
|
|
(columnName: string): QueryBuilder;
|
|
}
|
|
|
|
interface Select extends ColumnNameQueryBuilder {
|
|
(aliases: { [alias: string]: string }): QueryBuilder;
|
|
}
|
|
|
|
interface Table {
|
|
(tableName: string): QueryBuilder;
|
|
(callback: Function): QueryBuilder;
|
|
(raw: Raw): QueryBuilder;
|
|
}
|
|
|
|
interface Distinct extends ColumnNameQueryBuilder {
|
|
}
|
|
|
|
interface Join {
|
|
(raw: Raw): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, clause: (this: JoinClause, join: JoinClause) => void): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, columns: { [key: string]: string | number | Raw }): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, raw: Raw): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, column1: string, column2: string): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, column1: string, raw: Raw): QueryBuilder;
|
|
(tableName: TableName | QueryCallback, column1: string, operator: string, column2: string): QueryBuilder;
|
|
}
|
|
|
|
interface JoinClause {
|
|
on(raw: Raw): JoinClause;
|
|
on(callback: QueryCallback): JoinClause;
|
|
on(columns: { [key: string]: string | Raw }): JoinClause;
|
|
on(column1: string, column2: string): JoinClause;
|
|
on(column1: string, raw: Raw): JoinClause;
|
|
on(column1: string, operator: string, column2: string | Raw): JoinClause;
|
|
andOn(raw: Raw): JoinClause;
|
|
andOn(callback: QueryCallback): JoinClause;
|
|
andOn(columns: { [key: string]: string | Raw }): JoinClause;
|
|
andOn(column1: string, column2: string): JoinClause;
|
|
andOn(column1: string, raw: Raw): JoinClause;
|
|
andOn(column1: string, operator: string, column2: string | Raw): JoinClause;
|
|
orOn(raw: Raw): JoinClause;
|
|
orOn(callback: QueryCallback): JoinClause;
|
|
orOn(columns: { [key: string]: string | Raw }): JoinClause;
|
|
orOn(column1: string, column2: string): JoinClause;
|
|
orOn(column1: string, raw: Raw): JoinClause;
|
|
orOn(column1: string, operator: string, column2: string | Raw): JoinClause;
|
|
onIn(column1: string, values: any[]): JoinClause;
|
|
andOnIn(column1: string, values: any[]): JoinClause;
|
|
orOnIn(column1: string, values: any[]): JoinClause;
|
|
onNotIn(column1: string, values: any[]): JoinClause;
|
|
andOnNotIn(column1: string, values: any[]): JoinClause;
|
|
orOnNotIn(column1: string, values: any[]): JoinClause;
|
|
onNull(column1: string): JoinClause;
|
|
andOnNull(column1: string): JoinClause;
|
|
orOnNull(column1: string): JoinClause;
|
|
onNotNull(column1: string): JoinClause;
|
|
andOnNotNull(column1: string): JoinClause;
|
|
orOnNotNull(column1: string): JoinClause;
|
|
onExists(callback: QueryCallback): JoinClause;
|
|
andOnExists(callback: QueryCallback): JoinClause;
|
|
orOnExists(callback: QueryCallback): JoinClause;
|
|
onNotExists(callback: QueryCallback): JoinClause;
|
|
andOnNotExists(callback: QueryCallback): JoinClause;
|
|
orOnNotExists(callback: QueryCallback): JoinClause;
|
|
onBetween(column1: string, range: [any, any]): JoinClause;
|
|
andOnBetween(column1: string, range: [any, any]): JoinClause;
|
|
orOnBetween(column1: string, range: [any, any]): JoinClause;
|
|
onNotBetween(column1: string, range: [any, any]): JoinClause;
|
|
andOnNotBetween(column1: string, range: [any, any]): JoinClause;
|
|
orOnNotBetween(column1: string, range: [any, any]): JoinClause;
|
|
using(column: string | string[] | Raw | { [key: string]: string | Raw }): JoinClause;
|
|
type(type: string): JoinClause;
|
|
}
|
|
|
|
interface JoinRaw {
|
|
(tableName: string, binding?: Value): QueryBuilder;
|
|
}
|
|
|
|
interface With extends WithRaw, WithWrapped {
|
|
}
|
|
|
|
interface WithRaw {
|
|
(alias: string, raw: Raw): QueryBuilder;
|
|
(alias: string, sql: string, bindings?: Value[] | Object): QueryBuilder;
|
|
}
|
|
|
|
interface WithSchema {
|
|
(schema: string): QueryBuilder;
|
|
}
|
|
|
|
interface WithWrapped {
|
|
(alias: string, callback: (queryBuilder: QueryBuilder) => any): QueryBuilder;
|
|
}
|
|
|
|
interface Where extends WhereRaw, WhereWrapped, WhereNull {
|
|
(raw: Raw): QueryBuilder;
|
|
(callback: QueryCallback): QueryBuilder;
|
|
(object: Object): QueryBuilder;
|
|
(columnName: string, value: Value | null): QueryBuilder;
|
|
(columnName: string, operator: string, value: Value | null): QueryBuilder;
|
|
(columnName: string, operator: string, query: QueryBuilder): QueryBuilder;
|
|
}
|
|
|
|
interface WhereRaw extends RawQueryBuilder {
|
|
(condition: boolean): QueryBuilder;
|
|
}
|
|
|
|
interface WhereWrapped {
|
|
(callback: QueryCallback): QueryBuilder;
|
|
}
|
|
|
|
interface WhereNull {
|
|
(columnName: string): QueryBuilder;
|
|
}
|
|
|
|
interface WhereIn {
|
|
(columnName: string, values: Value[]): QueryBuilder;
|
|
(columnName: string, callback: QueryCallback): QueryBuilder;
|
|
(columnName: string, query: QueryBuilder): QueryBuilder;
|
|
}
|
|
|
|
interface WhereBetween {
|
|
(columnName: string, range: [Value, Value]): QueryBuilder;
|
|
}
|
|
|
|
interface WhereExists {
|
|
(callback: QueryCallback): QueryBuilder;
|
|
(query: QueryBuilder): QueryBuilder;
|
|
}
|
|
|
|
interface WhereNull {
|
|
(columnName: string): QueryBuilder;
|
|
}
|
|
|
|
interface WhereIn {
|
|
(columnName: string, values: Value[]): QueryBuilder;
|
|
}
|
|
|
|
interface GroupBy extends RawQueryBuilder, ColumnNameQueryBuilder {
|
|
}
|
|
|
|
interface OrderBy {
|
|
(columnName: string, direction?: string): QueryBuilder;
|
|
}
|
|
|
|
interface Union {
|
|
(callback: QueryCallback, wrap?: boolean): QueryBuilder;
|
|
(callbacks: QueryCallback[], wrap?: boolean): QueryBuilder;
|
|
(...callbacks: QueryCallback[]): QueryBuilder;
|
|
// (...callbacks: QueryCallback[], wrap?: boolean): QueryInterface;
|
|
}
|
|
|
|
interface Having extends RawQueryBuilder, WhereWrapped {
|
|
(tableName: string, column1: string, operator: string, column2: string): QueryBuilder;
|
|
}
|
|
|
|
// commons
|
|
|
|
interface ColumnNameQueryBuilder {
|
|
(...columnNames: ColumnName[]): QueryBuilder;
|
|
(columnNames: ColumnName[]): QueryBuilder;
|
|
}
|
|
|
|
interface RawQueryBuilder {
|
|
(sql: string, ...bindings: Value[]): QueryBuilder;
|
|
(sql: string, bindings: Value[]): QueryBuilder;
|
|
(raw: Raw): QueryBuilder;
|
|
}
|
|
|
|
// Raw
|
|
|
|
interface Raw extends events.EventEmitter, ChainableInterface {
|
|
wrap(before: string, after: string): Raw;
|
|
}
|
|
|
|
interface RawBuilder {
|
|
(value: Value): Raw;
|
|
(sql: string, ...bindings: Value[]): Raw;
|
|
(sql: string, bindings: Value[]): Raw;
|
|
(sql: string, bindings: Object): Raw;
|
|
}
|
|
|
|
//
|
|
// QueryBuilder
|
|
//
|
|
|
|
type QueryCallback = (this: QueryBuilder, builder: QueryBuilder) => void;
|
|
interface QueryBuilder extends QueryInterface, ChainableInterface {
|
|
or: QueryBuilder;
|
|
and: QueryBuilder;
|
|
|
|
//TODO: Promise?
|
|
columnInfo(column?: string): Bluebird<ColumnInfo>;
|
|
|
|
forUpdate(): QueryBuilder;
|
|
forShare(): QueryBuilder;
|
|
|
|
toSQL(): Sql;
|
|
|
|
on(event: string, callback: Function): QueryBuilder;
|
|
}
|
|
|
|
interface Sql {
|
|
method: string;
|
|
options: any;
|
|
bindings: Value[];
|
|
sql: string;
|
|
}
|
|
|
|
//
|
|
// Chainable interface
|
|
//
|
|
|
|
interface ChainableInterface extends Bluebird<any> {
|
|
toQuery(): string;
|
|
options(options: any): QueryBuilder;
|
|
stream(callback: (readable: stream.PassThrough) => any): Bluebird<any>;
|
|
stream(options?: { [key: string]: any }): stream.PassThrough;
|
|
stream(options: { [key: string]: any }, callback: (readable: stream.PassThrough) => any): Bluebird<any>;
|
|
pipe(writable: any): stream.PassThrough;
|
|
exec(callback: Function): QueryBuilder;
|
|
}
|
|
|
|
interface Transaction extends Knex {
|
|
savepoint(transactionScope: (trx: Transaction) => any): Bluebird<any>;
|
|
commit(value?: any): QueryBuilder;
|
|
rollback(error?: any): QueryBuilder;
|
|
}
|
|
|
|
//
|
|
// Schema builder
|
|
//
|
|
|
|
interface SchemaBuilder extends Bluebird<any> {
|
|
createTable(tableName: string, callback: (tableBuilder: CreateTableBuilder) => any): SchemaBuilder;
|
|
createTableIfNotExists(tableName: string, callback: (tableBuilder: CreateTableBuilder) => any): SchemaBuilder;
|
|
renameTable(oldTableName: string, newTableName: string): Bluebird<void>;
|
|
dropTable(tableName: string): SchemaBuilder;
|
|
hasTable(tableName: string): Bluebird<boolean>;
|
|
hasColumn(tableName: string, columnName: string): Bluebird<boolean>;
|
|
table(tableName: string, callback: (tableBuilder: AlterTableBuilder) => any): Bluebird<void>;
|
|
dropTableIfExists(tableName: string): SchemaBuilder;
|
|
raw(statement: string): SchemaBuilder;
|
|
withSchema(schemaName: string): SchemaBuilder;
|
|
}
|
|
|
|
interface TableBuilder {
|
|
increments(columnName?: string): ColumnBuilder;
|
|
bigIncrements(columnName?: string): ColumnBuilder;
|
|
dropColumn(columnName: string): TableBuilder;
|
|
dropColumns(...columnNames: string[]): TableBuilder;
|
|
renameColumn(from: string, to: string): ColumnBuilder;
|
|
integer(columnName: string): ColumnBuilder;
|
|
bigInteger(columnName: string): ColumnBuilder;
|
|
text(columnName: string, textType?: string): ColumnBuilder;
|
|
string(columnName: string, length?: number): ColumnBuilder;
|
|
float(columnName: string, precision?: number, scale?: number): ColumnBuilder;
|
|
decimal(columnName: string, precision?: number, scale?: number): ColumnBuilder;
|
|
boolean(columnName: string): ColumnBuilder;
|
|
date(columnName: string): ColumnBuilder;
|
|
dateTime(columnName: string): ColumnBuilder;
|
|
time(columnName: string): ColumnBuilder;
|
|
timestamp(columnName: string, standard?: boolean): ColumnBuilder;
|
|
timestamps(useTimestampType?: boolean, makeDefaultNow?: boolean): ColumnBuilder;
|
|
binary(columnName: string, length?: number): ColumnBuilder;
|
|
enum(columnName: string, values: Value[]): ColumnBuilder;
|
|
enu(columnName: string, values: Value[]): ColumnBuilder;
|
|
json(columnName: string): ColumnBuilder;
|
|
jsonb(columnName: string): ColumnBuilder;
|
|
uuid(columnName: string): ColumnBuilder;
|
|
comment(val: string): TableBuilder;
|
|
specificType(columnName: string, type: string): ColumnBuilder;
|
|
primary(columnNames: string[]): TableBuilder;
|
|
index(columnNames: (string | Raw)[], indexName?: string, indexType?: string): TableBuilder;
|
|
unique(columnNames: (string | Raw)[], indexName?: string): TableBuilder;
|
|
foreign(column: string, foreignKeyName?: string): ForeignConstraintBuilder;
|
|
foreign(columns: string[], foreignKeyName?: string): MultikeyForeignConstraintBuilder;
|
|
dropForeign(columnNames: string[], foreignKeyName?: string): TableBuilder;
|
|
dropUnique(columnNames: (string | Raw)[], indexName?: string): TableBuilder;
|
|
dropPrimary(constraintName?: string): TableBuilder;
|
|
dropIndex(columnNames: (string | Raw)[], indexName?: string): TableBuilder;
|
|
dropTimestamps(): ColumnBuilder;
|
|
}
|
|
|
|
interface CreateTableBuilder extends TableBuilder {
|
|
}
|
|
|
|
interface MySqlTableBuilder extends CreateTableBuilder {
|
|
engine(val: string): CreateTableBuilder;
|
|
charset(val: string): CreateTableBuilder;
|
|
collate(val: string): CreateTableBuilder;
|
|
}
|
|
|
|
interface AlterTableBuilder extends TableBuilder {
|
|
}
|
|
|
|
interface MySqlAlterTableBuilder extends AlterTableBuilder {
|
|
}
|
|
|
|
interface ColumnBuilder {
|
|
index(indexName?: string): ColumnBuilder;
|
|
primary(constraintName?: string): ColumnBuilder;
|
|
unique(indexName?: string): ColumnBuilder;
|
|
references(columnName: string): ReferencingColumnBuilder;
|
|
onDelete(command: string): ColumnBuilder;
|
|
onUpdate(command: string): ColumnBuilder;
|
|
defaultTo(value: Value): ColumnBuilder;
|
|
unsigned(): ColumnBuilder;
|
|
notNullable(): ColumnBuilder;
|
|
nullable(): ColumnBuilder;
|
|
comment(value: string): ColumnBuilder;
|
|
alter(): ColumnBuilder;
|
|
}
|
|
|
|
interface ForeignConstraintBuilder {
|
|
references(columnName: string): ReferencingColumnBuilder;
|
|
}
|
|
|
|
interface MultikeyForeignConstraintBuilder {
|
|
references(columnNames: string[]): ReferencingColumnBuilder;
|
|
}
|
|
|
|
interface PostgreSqlColumnBuilder extends ColumnBuilder {
|
|
index(indexName?: string, indexType?: string): ColumnBuilder;
|
|
}
|
|
|
|
interface ReferencingColumnBuilder extends ColumnBuilder {
|
|
inTable(tableName: string): ColumnBuilder;
|
|
}
|
|
|
|
interface AlterColumnBuilder extends ColumnBuilder {
|
|
}
|
|
|
|
interface MySqlAlterColumnBuilder extends AlterColumnBuilder {
|
|
first(): AlterColumnBuilder;
|
|
after(columnName: string): AlterColumnBuilder;
|
|
}
|
|
|
|
//
|
|
// Configurations
|
|
//
|
|
|
|
interface ColumnInfo {
|
|
defaultValue: Value;
|
|
type: string;
|
|
maxLength: number;
|
|
nullable: boolean;
|
|
}
|
|
|
|
interface Config {
|
|
debug?: boolean;
|
|
client?: string | typeof Client;
|
|
dialect?: string;
|
|
version?: string;
|
|
connection?: string | ConnectionConfig | MariaSqlConnectionConfig |
|
|
MySqlConnectionConfig | MsSqlConnectionConfig | Sqlite3ConnectionConfig | SocketConnectionConfig;
|
|
pool?: PoolConfig;
|
|
migrations?: MigratorConfig;
|
|
postProcessResponse?: (result: any, queryContext: any) => any;
|
|
wrapIdentifier?: (value: string, origImpl: (value: string) => string, queryContext: any) => string;
|
|
seeds?: SeedsConfig;
|
|
acquireConnectionTimeout?: number;
|
|
useNullAsDefault?: boolean;
|
|
searchPath?: string | string[];
|
|
}
|
|
|
|
interface ConnectionConfig {
|
|
host: string;
|
|
user: string;
|
|
password: string;
|
|
database: string;
|
|
domain?: string;
|
|
instanceName?: string;
|
|
debug?: boolean;
|
|
requestTimeout?: number;
|
|
}
|
|
|
|
interface MsSqlConnectionConfig {
|
|
user: string;
|
|
password: string;
|
|
server: string;
|
|
database: string;
|
|
options: MsSqlOptionsConfig;
|
|
}
|
|
|
|
// Config object for mariasql: https://github.com/mscdex/node-mariasql#client-methods
|
|
interface MariaSqlConnectionConfig {
|
|
user?: string;
|
|
password?: string;
|
|
host?: string;
|
|
port?: number;
|
|
unixSocket?: string;
|
|
protocol?: string;
|
|
db?: string;
|
|
keepQueries?: boolean;
|
|
multiStatements?: boolean;
|
|
connTimeout?: number;
|
|
pingInterval?: number;
|
|
secureAuth?: boolean;
|
|
compress?: boolean;
|
|
ssl?: boolean | MariaSslConfiguration;
|
|
local_infile?: boolean;
|
|
read_default_file?: string;
|
|
read_default_group?: string;
|
|
charset?: string;
|
|
streamHWM?: number;
|
|
}
|
|
|
|
interface MariaSslConfiguration {
|
|
key?: string;
|
|
cert?: string;
|
|
ca?: string;
|
|
capath?: string;
|
|
cipher?: string;
|
|
rejectUnauthorized?: boolean;
|
|
}
|
|
|
|
// Config object for mysql: https://github.com/mysqljs/mysql#connection-options
|
|
interface MySqlConnectionConfig {
|
|
host?: string;
|
|
port?: number;
|
|
localAddress?: string;
|
|
socketPath?: string;
|
|
user?: string;
|
|
password?: string;
|
|
database?: string;
|
|
charset?: string;
|
|
timezone?: string;
|
|
connectTimeout?: number;
|
|
stringifyObjects?: boolean;
|
|
insecureAuth?: boolean;
|
|
typeCast?: any;
|
|
queryFormat?: (query: string, values: any) => string;
|
|
supportBigNumbers?: boolean;
|
|
bigNumberStrings?: boolean;
|
|
dateStrings?: boolean;
|
|
debug?: boolean;
|
|
trace?: boolean;
|
|
multipleStatements?: boolean;
|
|
flags?: string;
|
|
ssl?: string | MariaSslConfiguration;
|
|
}
|
|
|
|
/** Used with SQLite3 adapter */
|
|
interface Sqlite3ConnectionConfig {
|
|
filename: string;
|
|
debug?: boolean;
|
|
}
|
|
|
|
interface MsSqlOptionsConfig {
|
|
encrypt?: boolean;
|
|
port?: number;
|
|
domain?: string;
|
|
connectionTimeout?: number;
|
|
requestTimeout?: number;
|
|
stream?: boolean;
|
|
parseJSON?: boolean;
|
|
pool?: PoolConfig;
|
|
}
|
|
|
|
interface SocketConnectionConfig {
|
|
socketPath: string;
|
|
user: string;
|
|
password: string;
|
|
database: string;
|
|
debug?: boolean;
|
|
}
|
|
|
|
interface PoolConfig {
|
|
name?: string;
|
|
create?: Function;
|
|
afterCreate?: Function;
|
|
destroy?: Function;
|
|
beforeDestroy?: Function;
|
|
min?: number;
|
|
max?: number;
|
|
refreshIdle?: boolean;
|
|
idleTimeoutMillis?: number;
|
|
reapIntervalMillis?: number;
|
|
returnToHead?: boolean;
|
|
priorityRange?: number;
|
|
validate?: Function;
|
|
log?: boolean;
|
|
|
|
// generic-pool v3 configs
|
|
maxWaitingClients?: number;
|
|
testOnBorrow?: boolean;
|
|
acquireTimeoutMillis?: number;
|
|
fifo?: boolean;
|
|
autostart?: boolean;
|
|
evictionRunIntervalMillis?: number;
|
|
numTestsPerRun?: number;
|
|
softIdleTimeoutMillis?: number;
|
|
Promise?: any;
|
|
}
|
|
|
|
interface MigratorConfig {
|
|
database?: string;
|
|
directory?: string;
|
|
extension?: string;
|
|
tableName?: string;
|
|
disableTransactions?: boolean;
|
|
}
|
|
|
|
interface SeedsConfig {
|
|
directory?: string;
|
|
}
|
|
|
|
interface Migrator {
|
|
make(name: string, config?: MigratorConfig): Bluebird<string>;
|
|
latest(config?: MigratorConfig): Bluebird<any>;
|
|
rollback(config?: MigratorConfig): Bluebird<any>;
|
|
status(config?: MigratorConfig): Bluebird<number>;
|
|
currentVersion(config?: MigratorConfig): Bluebird<string>;
|
|
}
|
|
|
|
interface FunctionHelper {
|
|
now(): Raw;
|
|
}
|
|
|
|
//
|
|
// Clients
|
|
//
|
|
|
|
class Client extends events.EventEmitter {
|
|
constructor(config: Config);
|
|
config: Config;
|
|
dialect: string;
|
|
driverName: string;
|
|
connectionSettings: object;
|
|
|
|
acquireRawConnection(): Promise<any>;
|
|
destroyRawConnection(connection: any): Promise<void>;
|
|
validateConnection(connection: any): Promise<boolean>;
|
|
}
|
|
}
|
|
|
|
export = Knex;
|