Comparing version 1.1.0 to 1.2.0
@@ -27,15 +27,11 @@ import { Dict, MaybeArray } from 'cosmokit'; | ||
} | ||
declare type DriverConstructor<T = any> = new (database: Database, config?: T) => Driver; | ||
export declare class Database<S = any> { | ||
mapper: Dict<string>; | ||
tables: { | ||
[K in Keys<S>]?: Model<S[K]>; | ||
}; | ||
drivers: Dict<Driver>; | ||
drivers: Record<keyof any, Driver>; | ||
private tasks; | ||
private stashed; | ||
constructor(mapper?: Dict<string>); | ||
connect<T>(constructor: DriverConstructor<T>, config?: T): Promise<void>; | ||
connect(constructor: string, config?: any): Promise<void>; | ||
setDriver(name: string, driver: Driver): void; | ||
connect<T>(constructor: Driver.Constructor<T>, config?: T, name?: string): Promise<void>; | ||
connect(constructor: string, config?: any, name?: string): Promise<void>; | ||
private getDriver; | ||
@@ -57,5 +53,9 @@ private prepare; | ||
} | ||
export declare namespace Driver { | ||
type Constructor<T = any> = new (database: Database, config?: T) => Driver; | ||
} | ||
export declare abstract class Driver { | ||
database: Database; | ||
name: string; | ||
abstract start(): Promise<void>; | ||
abstract stop(): Promise<void>; | ||
abstract drop(): Promise<void>; | ||
@@ -70,8 +70,5 @@ abstract stats(): Promise<Driver.Stats>; | ||
abstract upsert(sel: Executable, data: any[], keys: string[]): Promise<void>; | ||
constructor(database: Database, name: string); | ||
start(): Promise<void>; | ||
stop(): Promise<void>; | ||
constructor(database: Database); | ||
model(name: string): Model<any>; | ||
execute(executable: Executable): any; | ||
} | ||
export {}; |
@@ -34,2 +34,3 @@ import { MaybeArray } from 'cosmokit'; | ||
interface Config<O = {}> { | ||
driver?: keyof any; | ||
autoInc?: boolean; | ||
@@ -36,0 +37,0 @@ primary?: MaybeArray<Keys<O>>; |
@@ -12,3 +12,3 @@ import { Intersect } from 'cosmokit'; | ||
[K in P]?: S; | ||
} | (S extends Atomic | T ? never : string extends keyof S ? never : FlatMap<S, T, `${P}.`>); | ||
} | (S extends Atomic | T ? never : S extends any[] ? never : string extends keyof S ? never : FlatMap<S, T, `${P}.`>); | ||
declare type FlatMap<S, T = never, P extends string = ''> = Values<{ | ||
@@ -19,2 +19,3 @@ [K in keyof S & string as `${P}${K}`]: FlatWrap<S[K], S | T, `${P}${K}`>; | ||
export declare function isPlain(value: any): boolean; | ||
export declare function randomId(): string; | ||
export {}; |
{ | ||
"name": "minato", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Type Driven Database Framework", | ||
@@ -5,0 +5,0 @@ "main": "lib/node.js", |
105959
1047