1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | type VariableArgFunction = (...params: any[]) => any;
|
16 | type ArgumentTypes<F extends VariableArgFunction> = F extends (...args: infer A) => any ? A : never;
|
17 |
|
18 | declare namespace BetterSqlite3 {
|
19 | interface Statement<BindParameters extends any[]> {
|
20 | database: Database;
|
21 | source: string;
|
22 | reader: boolean;
|
23 | busy: boolean;
|
24 |
|
25 | run(...params: BindParameters): Database.RunResult;
|
26 | get(...params: BindParameters): any;
|
27 | all(...params: BindParameters): any[];
|
28 | iterate(...params: BindParameters): IterableIterator<any>;
|
29 | pluck(toggleState?: boolean): this;
|
30 | expand(toggleState?: boolean): this;
|
31 | raw(toggleState?: boolean): this;
|
32 | bind(...params: BindParameters): this;
|
33 | columns(): ColumnDefinition[];
|
34 | safeIntegers(toggleState?: boolean): this;
|
35 | }
|
36 |
|
37 | interface ColumnDefinition {
|
38 | name: string;
|
39 | column: string | null;
|
40 | table: string | null;
|
41 | database: string | null;
|
42 | type: string | null;
|
43 | }
|
44 |
|
45 | interface Transaction<F extends VariableArgFunction> {
|
46 | (...params: ArgumentTypes<F>): ReturnType<F>;
|
47 | default(...params: ArgumentTypes<F>): ReturnType<F>;
|
48 | deferred(...params: ArgumentTypes<F>): ReturnType<F>;
|
49 | immediate(...params: ArgumentTypes<F>): ReturnType<F>;
|
50 | exclusive(...params: ArgumentTypes<F>): ReturnType<F>;
|
51 | }
|
52 |
|
53 | interface VirtualTableOptions {
|
54 | rows: () => Generator;
|
55 | columns: string[];
|
56 | parameters?: string[] | undefined;
|
57 | safeIntegers?: boolean | undefined;
|
58 | directOnly?: boolean | undefined;
|
59 | }
|
60 |
|
61 | interface Database {
|
62 | memory: boolean;
|
63 | readonly: boolean;
|
64 | name: string;
|
65 | open: boolean;
|
66 | inTransaction: boolean;
|
67 |
|
68 | prepare<BindParameters extends any[] | {} = any[]>(
|
69 | source: string,
|
70 | ): BindParameters extends any[] ? Statement<BindParameters> : Statement<[BindParameters]>;
|
71 | transaction<F extends VariableArgFunction>(fn: F): Transaction<F>;
|
72 | exec(source: string): this;
|
73 | pragma(source: string, options?: Database.PragmaOptions): any;
|
74 | function(name: string, cb: (...params: any[]) => any): this;
|
75 | function(name: string, options: Database.RegistrationOptions, cb: (...params: any[]) => any): this;
|
76 | aggregate(name: string, options: Database.AggregateOptions): this;
|
77 | loadExtension(path: string): this;
|
78 | close(): this;
|
79 | defaultSafeIntegers(toggleState?: boolean): this;
|
80 | backup(destinationFile: string, options?: Database.BackupOptions): Promise<Database.BackupMetadata>;
|
81 | table(name: string, options: VirtualTableOptions): this;
|
82 | unsafeMode(unsafe?: boolean): this;
|
83 | serialize(options?: Database.SerializeOptions): Buffer;
|
84 | }
|
85 |
|
86 | interface DatabaseConstructor {
|
87 | new (filename: string, options?: Database.Options): Database;
|
88 | (filename: string, options?: Database.Options): Database;
|
89 | prototype: Database;
|
90 |
|
91 | SqliteError: typeof SqliteError;
|
92 | }
|
93 | }
|
94 |
|
95 | declare class SqliteError implements Error {
|
96 | name: string;
|
97 | message: string;
|
98 | code: string;
|
99 | constructor(message: string, code: string);
|
100 | }
|
101 |
|
102 | declare namespace Database {
|
103 | interface RunResult {
|
104 | changes: number;
|
105 | lastInsertRowid: number | bigint;
|
106 | }
|
107 |
|
108 | interface Options {
|
109 | readonly?: boolean | undefined;
|
110 | fileMustExist?: boolean | undefined;
|
111 | timeout?: number | undefined;
|
112 | verbose?: ((message?: any, ...additionalArgs: any[]) => void) | undefined;
|
113 | nativeBinding?: string | undefined;
|
114 | }
|
115 |
|
116 | interface SerializeOptions {
|
117 | attached?: string;
|
118 | }
|
119 |
|
120 | interface PragmaOptions {
|
121 | simple?: boolean | undefined;
|
122 | }
|
123 |
|
124 | interface RegistrationOptions {
|
125 | varargs?: boolean | undefined;
|
126 | deterministic?: boolean | undefined;
|
127 | safeIntegers?: boolean | undefined;
|
128 | directOnly?: boolean | undefined;
|
129 | }
|
130 |
|
131 | interface AggregateOptions extends RegistrationOptions {
|
132 | start?: any;
|
133 | step: (total: any, next: any) => any;
|
134 | inverse?: ((total: any, dropped: any) => any) | undefined;
|
135 | result?: ((total: any) => any) | undefined;
|
136 | }
|
137 |
|
138 | interface BackupMetadata {
|
139 | totalPages: number;
|
140 | remainingPages: number;
|
141 | }
|
142 | interface BackupOptions {
|
143 | progress: (info: BackupMetadata) => number;
|
144 | }
|
145 |
|
146 | type SqliteError = typeof SqliteError;
|
147 | type Statement<BindParameters extends any[] | {} = any[]> = BindParameters extends any[]
|
148 | ? BetterSqlite3.Statement<BindParameters>
|
149 | : BetterSqlite3.Statement<[BindParameters]>;
|
150 | type ColumnDefinition = BetterSqlite3.ColumnDefinition;
|
151 | type Transaction = BetterSqlite3.Transaction<VariableArgFunction>;
|
152 | type Database = BetterSqlite3.Database;
|
153 | }
|
154 |
|
155 | declare const Database: BetterSqlite3.DatabaseConstructor;
|
156 | export = Database;
|