1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | import {
|
7 | AnyObject,
|
8 | Command,
|
9 | NamedParameters,
|
10 | Options,
|
11 | PositionalParameters,
|
12 | } from '../common-types';
|
13 | import {Model} from '../model';
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | export namespace ConnectorInterfaces {
|
21 | |
22 |
|
23 |
|
24 |
|
25 |
|
26 | export const enum StrongRelation {
|
27 | BELONGS_TO = 'strongBelongsTo',
|
28 | HAS_ONE = 'strongHasOne',
|
29 | HAS_MANY = 'strongHasMany',
|
30 | HAS_MANY_THROUGH = 'strongHasManyThrough',
|
31 | HAS_AND_BELONGS_TO_MANY = 'strongHasAndBelongsToMany',
|
32 | EMBEDS_ONE = 'strongEmbedsOne',
|
33 | EMBEDS_MANY = 'strongEmbedsMany',
|
34 | REFERNCES_MANY = 'strongReferencesMany',
|
35 | }
|
36 |
|
37 | |
38 |
|
39 |
|
40 |
|
41 |
|
42 | export const enum StrongJoins {
|
43 | INNER = 'strongInnerJoin',
|
44 | LEFT = 'strongLeftJoin',
|
45 | RIGHT = 'strongRightJoin',
|
46 | FULL = 'strongFullJoin',
|
47 | CARTESIAN = 'strongCartesianJoin',
|
48 | }
|
49 | }
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | export interface Connector {
|
55 | name: string;
|
56 | configModel?: Model;
|
57 | interfaces?: (
|
58 | | string
|
59 | | ConnectorInterfaces.StrongRelation
|
60 | | ConnectorInterfaces.StrongJoins
|
61 | )[];
|
62 | connect(): Promise<void>;
|
63 | disconnect(): Promise<void>;
|
64 | ping(): Promise<void>;
|
65 | execute?(
|
66 | command: Command,
|
67 | parameters: NamedParameters | PositionalParameters,
|
68 | options?: Options,
|
69 | ): Promise<AnyObject>;
|
70 | }
|