Skip to content

Commit b53a3c4

Browse files
authored
Merge pull request #86 from alpha0010/patch-1
Add flow typings
2 parents ef660de + 44e91af commit b53a3c4

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

src/main.js.flow

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
// @flow strict
2+
3+
export type DataType = number | string;
4+
5+
export type MigrateOptions = {|
6+
force?: 'last',
7+
migrationsPath?: string,
8+
table?: string
9+
|};
10+
11+
export type Params = DataType[] | { [param: string]: DataType };
12+
13+
export type RowCallback<T> = (err: ?Error, row: T) => void;
14+
15+
export type SqliteOpenFlag = {|
16+
OPEN_READONLY: 0x01,
17+
OPEN_READWRITE: 0x02,
18+
OPEN_READWRITE_CREATE: 0x06 // 0x02 | 0x04
19+
|};
20+
21+
export type OpenOptions = {|
22+
cached?: boolean,
23+
mode?: $Values<SqliteOpenFlag>,
24+
promise?: typeof Promise,
25+
verbose?: boolean
26+
|};
27+
28+
declare class Statement {
29+
+sql: string;
30+
+lastID: number;
31+
+changes: number;
32+
33+
all<T: Object>(params?: Params): Promise<T[]>;
34+
all<T: Object>(...params: DataType[]): Promise<T[]>;
35+
36+
bind(params: Params): Promise<Statement>;
37+
bind(...params: DataType[]): Promise<Statement>;
38+
39+
each<T: Object>(callback: RowCallback<T>): Promise<number>;
40+
each<T: Object>(params: Params | DataType, callback: RowCallback<T>): Promise<number>;
41+
each<T: Object>(param1: DataType, param2: DataType, ...params: Array<DataType | RowCallback<T>>): Promise<number>;
42+
43+
get<T: Object>(params?: Params): Promise<?T>;
44+
get<T: Object>(...params: DataType[]): Promise<?T>;
45+
46+
finalize(): Promise<void>;
47+
48+
reset(): Promise<Statement>;
49+
50+
run(params: Params): Promise<Statement>;
51+
run(...params: DataType[]): Promise<Statement>;
52+
};
53+
54+
declare class Database {
55+
all<T: Object>(sql: string, params?: Params): Promise<T[]>;
56+
all<T: Object>(sql: string, ...params: DataType[]): Promise<T[]>;
57+
58+
close(): Promise<void>;
59+
60+
configure(option: 'busyTimeout', value: number): void;
61+
configure(option: 'profile', value: (sql: string) => void): void;
62+
configure(option: 'trace', value: (sql: string, nsecs: number) => void): void;
63+
64+
each<T: Object>(sql: string, callback: RowCallback<T>): Promise<number>;
65+
each<T: Object>(sql: string, params: Params | DataType, callback: RowCallback<T>): Promise<number>;
66+
each<T: Object>(sql: string, param1: DataType, param2: DataType, ...params: Array<DataType | RowCallback<T>>): Promise<number>;
67+
68+
exec(sql: string): Promise<Database>;
69+
70+
get<T: Object>(sql: string, params?: Params): Promise<?T>;
71+
get<T: Object>(sql: string, ...params: DataType[]): Promise<?T>;
72+
73+
migrate(options?: MigrateOptions): Promise<Database>;
74+
75+
prepare(sql: string, params?: Params): Promise<Statement>;
76+
prepare(sql: string, ...params: DataType[]): Promise<Statement>;
77+
78+
run(sql: string, params?: Params): Promise<Statement>;
79+
run(sql: string, ...params: DataType[]): Promise<Statement>;
80+
};
81+
82+
declare export function open(filename: string, options?: OpenOptions): Promise<Database>;

tools/build.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ promise = promise.then(() => {
5757
delete pkg.babel;
5858
fs.writeFileSync('build/package.json', JSON.stringify(pkg, null, ' '), 'utf-8');
5959
fs.writeFileSync('build/main.d.ts', fs.readFileSync('src/main.d.ts', 'utf-8'), 'utf-8');
60+
fs.writeFileSync('build/main.js.flow', fs.readFileSync('src/main.js.flow', 'utf-8'), 'utf-8');
6061
fs.writeFileSync('build/LICENSE.txt', fs.readFileSync('LICENSE.txt', 'utf-8'), 'utf-8');
6162
fs.writeFileSync('build/README.md', fs.readFileSync('README.md', 'utf-8'), 'utf-8');
6263
});

0 commit comments

Comments
 (0)