diff --git a/lib/sqlite3.d.ts b/lib/sqlite3.d.ts new file mode 100644 index 00000000..30d81ba9 --- /dev/null +++ b/lib/sqlite3.d.ts @@ -0,0 +1,108 @@ +// Type definitions for sqlite3 3.1 +// Source: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/sqlite3/index.d.ts +// Definitions by: Nick Malaguti +// Sumant Manne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import events = require("events"); + +export const OPEN_READONLY: number; +export const OPEN_READWRITE: number; +export const OPEN_CREATE: number; +export const OPEN_SHAREDCACHE: number; +export const OPEN_PRIVATECACHE: number; +export const OPEN_URI: number; + +export const cached: { + Database(filename: string, callback?: (this: Database, err: Error | null) => void): Database; + Database(filename: string, mode?: number, callback?: (this: Database, err: Error | null) => void): Database; +}; + +export interface RunResult extends Statement { + lastID: number; + changes: number; +} + +export class Statement { + bind(callback?: (err: Error | null) => void): this; + bind(...params: any[]): this; + + reset(callback?: (err: null) => void): this; + + finalize(callback?: (err: Error) => void): Database; + + run(callback?: (err: Error | null) => void): this; + run(params: any, callback?: (this: RunResult, err: Error | null) => void): this; + run(...params: any[]): this; + + get(callback?: (err: Error | null, row?: any) => void): this; + get(params: any, callback?: (this: RunResult, err: Error | null, row?: any) => void): this; + get(...params: any[]): this; + + all(callback?: (err: Error | null, rows: any[]) => void): this; + all(params: any, callback?: (this: RunResult, err: Error | null, rows: any[]) => void): this; + all(...params: any[]): this; + + each(callback?: (err: Error | null, row: any) => void, complete?: (err: Error | null, count: number) => void): this; + each(params: any, callback?: (this: RunResult, err: Error | null, row: any) => void, complete?: (err: Error | null, count: number) => void): this; + each(...params: any[]): this; +} + +export class Database extends events.EventEmitter { + constructor(filename: string, callback?: (err: Error | null) => void); + constructor(filename: string, mode?: number, callback?: (err: Error | null) => void); + + close(callback?: (err: Error | null) => void): void; + + run(sql: string, callback?: (this: RunResult, err: Error | null) => void): this; + run(sql: string, params: any, callback?: (this: RunResult, err: Error | null) => void): this; + run(sql: string, ...params: any[]): this; + + get(sql: string, callback?: (this: Statement, err: Error | null, row: any) => void): this; + get(sql: string, params: any, callback?: (this: Statement, err: Error | null, row: any) => void): this; + get(sql: string, ...params: any[]): this; + + all(sql: string, callback?: (this: Statement, err: Error | null, rows: any[]) => void): this; + all(sql: string, params: any, callback?: (this: Statement, err: Error | null, rows: any[]) => void): this; + all(sql: string, ...params: any[]): this; + + each(sql: string, callback?: (this: Statement, err: Error | null, row: any) => void, complete?: (err: Error | null, count: number) => void): this; + each(sql: string, params: any, callback?: (this: Statement, err: Error | null, row: any) => void, complete?: (err: Error | null, count: number) => void): this; + each(sql: string, ...params: any[]): this; + + exec(sql: string, callback?: (this: Statement, err: Error | null) => void): this; + + prepare(sql: string, callback?: (this: Statement, err: Error | null) => void): Statement; + prepare(sql: string, params: any, callback?: (this: Statement, err: Error | null) => void): Statement; + prepare(sql: string, ...params: any[]): Statement; + + serialize(callback?: () => void): void; + parallelize(callback?: () => void): void; + + on(event: "trace", listener: (sql: string) => void): this; + on(event: "profile", listener: (sql: string, time: number) => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "open" | "close", listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + + configure(option: "busyTimeout", value: number): void; + interrupt(): void; +} + +export function verbose(): sqlite3; + +export interface sqlite3 { + OPEN_READONLY: number; + OPEN_READWRITE: number; + OPEN_CREATE: number; + OPEN_SHAREDCACHE: number; + OPEN_PRIVATECACHE: number; + OPEN_URI: number; + cached: typeof cached; + RunResult: RunResult; + Statement: typeof Statement; + Database: typeof Database; + verbose(): this; +} diff --git a/package.json b/package.json index 4d38d372..4ba78468 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "database" ], "main": "./lib/sqlite3", + "types": "./lib/sqlite3.d.ts", "files": [ "lib/**/*.js", "sqlite3.js",