|
1 | 1 | // TypeScript Version: 2.9 |
2 | 2 |
|
3 | | -declare namespace sqlElements { |
4 | | - interface QueryConfig { |
5 | | - _sql?: SqlContainer |
6 | | - text: string |
7 | | - values: any[] |
8 | | - } |
9 | | - |
10 | | - class SqlContainer { |
11 | | - constructor(chains: ReadonlyArray<string>, expressions: any[]) |
12 | | - readonly chains: ReadonlyArray<string> |
13 | | - readonly expressions: any[] |
14 | | - } |
15 | | -} |
16 | | - |
17 | 3 | declare module '@sequencework/sql' { |
18 | 4 | function sql( |
19 | 5 | chains: ReadonlyArray<string>, |
20 | 6 | ...expressions: any[] |
21 | | - ): sqlElements.QueryConfig |
| 7 | + ): sql.QueryConfig |
| 8 | + |
| 9 | + namespace sql { |
| 10 | + interface QueryConfig { |
| 11 | + _sql?: SqlContainer |
| 12 | + text: string |
| 13 | + values: any[] |
| 14 | + } |
| 15 | + |
| 16 | + class SqlContainer { |
| 17 | + constructor(chains: ReadonlyArray<string>, expressions: any[]) |
| 18 | + readonly chains: ReadonlyArray<string> |
| 19 | + readonly expressions: any[] |
| 20 | + } |
| 21 | + } |
22 | 22 |
|
23 | 23 | export = sql |
24 | 24 | } |
25 | 25 |
|
26 | 26 | declare module '@sequencework/sql/pg' { |
27 | | - function sqlPG(chains: { |
28 | | - readonly query: ( |
29 | | - queryExpression: sqlElements.QueryConfig |
30 | | - ) => Promise<{ |
| 27 | + import _sql = require('@sequencework/sql') |
| 28 | + |
| 29 | + function sql( |
| 30 | + chains: ReadonlyArray<string>, |
| 31 | + ...expressions: any[] |
| 32 | + ): sql.QueryConfig |
| 33 | + |
| 34 | + namespace sql { |
| 35 | + type QueryConfig = _sql.QueryConfig |
| 36 | + |
| 37 | + interface PGQueryResult { |
| 38 | + rowCount: number |
31 | 39 | rows: any[] |
32 | | - }> |
33 | | - }): (chains: ReadonlyArray<string>, ...expressions: any[]) => Promise<any[]> |
| 40 | + } |
| 41 | + |
| 42 | + interface queryable<T extends PGQueryResult = PGQueryResult> { |
| 43 | + readonly query: (queryExpression: QueryConfig) => Promise<T> |
| 44 | + } |
| 45 | + |
| 46 | + function query<T extends PGQueryResult>( |
| 47 | + db: queryable<T> |
| 48 | + ): (chains: ReadonlyArray<string>, ...expressions: any[]) => Promise<T> |
34 | 49 |
|
35 | | - export = sqlPG |
| 50 | + function one( |
| 51 | + chains: queryable |
| 52 | + ): (chains: ReadonlyArray<string>, ...expressions: any[]) => Promise<any> |
| 53 | + |
| 54 | + function many( |
| 55 | + chains: queryable |
| 56 | + ): (chains: ReadonlyArray<string>, ...expressions: any[]) => Promise<any[]> |
| 57 | + |
| 58 | + function count( |
| 59 | + chains: queryable |
| 60 | + ): (chains: ReadonlyArray<string>, ...expressions: any[]) => Promise<number> |
| 61 | + } |
| 62 | + |
| 63 | + export = sql |
36 | 64 | } |
0 commit comments