UNPKG

2.37 kBTypeScriptView Raw
1/// <reference types="fib-pool" />
2
3declare namespace FxOrmDb {
4 interface DatabaseBaseConfig extends /* FxDbDriverNS.DBConnectionConfig, */Class_UrlObject {
5 pool: FxDbDriverNS.ConnectionPoolOptions
6 }
7
8 interface DatabaseBase<ConnType = any> extends FxDbDriverNS.Driver<ConnType> {
9 eventor: Class_EventEmitter
10
11 query: {
12 <T=any>(query: string, cb?: FxOrmNS.GenericCallback<T>): T
13 }
14
15 connect: {
16 (cb?: FxOrmNS.GenericCallback<ConnType>): void
17 (): ConnType
18 }
19 }
20
21 interface DatabaseBase_SQLite extends DatabaseBase<Class_SQLite> {
22 readonly use_memory: boolean
23
24 all: DatabaseBase_SQLite['query']
25 get: DatabaseBase_SQLite['query']
26 }
27
28 // interface DatabaseBase_MySQL extends DatabaseBase<Class_MySQL> {}
29
30 // not supported now.
31 interface DatabaseBase_PostgreSQL extends DatabaseBase {
32 }
33
34 // common
35 type AGGREGATION_METHOD_COMMON =
36 "ABS"
37 | "ROUND"
38 | "AVG"
39 | "MIN"
40 | "MAX"
41 | "SUM"
42 | "COUNT"
43 | "DISTINCT"
44
45 type AGGREGATION_METHOD_TUPLE__COMMON = [
46 /* alias */
47 string,
48 /* real method in sql */
49 AGGREGATION_METHOD_COMPLEX
50 ]
51
52 type AGGREGATION_METHOD_SQLITE = AGGREGATION_METHOD_COMMON | "RANDOM"
53
54 type AGGREGATION_METHOD_MYSQL =
55 AGGREGATION_METHOD_COMMON
56 | "CEIL"
57 | "FLOOR"
58 | "LOG"
59 | "LOG2"
60 | "LOG10"
61 | "EXP"
62 | "POWER"
63 | "ACOS"
64 | "ASIN"
65 | "ATAN"
66 | "COS"
67 | "SIN"
68 | "TAN"
69 | "CONV"
70 | "RAND"
71 | "RADIANS"
72 | "DEGREES"
73 | "SUM"
74 | "COUNT"
75 | "DISTINCT"
76 type AGGREGATION_METHOD_TUPLE__MYSQL = [ "RANDOM", "RAND" ]
77
78 type AGGREGATION_METHOD_POSTGRESQL =
79 AGGREGATION_METHOD_COMMON
80 | "CEIL"
81 | "FLOOR"
82 | 'RANDOM'
83 | "LOG"
84 | "EXP"
85 | "POWER"
86 | "ACOS"
87 | "ASIN"
88 | "ATAN"
89 | "COS"
90 | "SIN"
91 | "TAN"
92 | "RADIANS"
93 | "DEGREES"
94
95 type AGGREGATION_METHOD_COMPLEX = AGGREGATION_METHOD_POSTGRESQL | AGGREGATION_METHOD_SQLITE | AGGREGATION_METHOD_MYSQL
96}
\No newline at end of file