drizzle-orm 0.10.17 → 0.10.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builders/aggregators/selectAggregator.js +1 -1
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +6 -6
- package/builders/highLvlBuilders/selectRequestBuilder.js +0 -2
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +8 -8
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +8 -8
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +8 -8
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +8 -8
- package/columns/column.d.ts +14 -8
- package/columns/column.js +13 -8
- package/package.json +1 -1
- package/test.js +6 -6
|
@@ -53,7 +53,7 @@ class SelectAggregator extends abstractAggregator_1.default {
|
|
|
53
53
|
};
|
|
54
54
|
this.distinct = (column) => {
|
|
55
55
|
if (column) {
|
|
56
|
-
this._distinct.push(` DISTINCT ON(${column.getParent()}.${ecranate_1.ecranate(column.getColumnName())}) `);
|
|
56
|
+
this._distinct.push(` DISTINCT ON(${column.getParent().tableName()}.${ecranate_1.ecranate(column.getColumnName())}) `);
|
|
57
57
|
}
|
|
58
58
|
return this;
|
|
59
59
|
};
|
|
@@ -30,18 +30,18 @@ export default class SelectTRB<TTable extends AbstractTable<TTable>, TPartial ex
|
|
|
30
30
|
distinct: (column: AbstractColumn<ColumnType<any>, boolean, boolean>) => SelectTRB<TTable, TPartial>;
|
|
31
31
|
limit: (limit: number) => SelectTRB<TTable, TPartial>;
|
|
32
32
|
offset: (offset: number) => SelectTRB<TTable, TPartial>;
|
|
33
|
-
innerJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
33
|
+
innerJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
34
34
|
new (db: DB): IToTable;
|
|
35
|
-
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<
|
|
35
|
+
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial>;
|
|
36
36
|
leftJoin<TColumn extends ColumnType<any>, IToColumn extends ColumnType<any>, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
37
37
|
new (db: DB): IToTable;
|
|
38
38
|
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean, TTable>, to: (table: IToTable) => AbstractColumn<IToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial>;
|
|
39
|
-
rightJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
39
|
+
rightJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
40
40
|
new (db: DB): IToTable;
|
|
41
|
-
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<
|
|
42
|
-
fullJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
41
|
+
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial>;
|
|
42
|
+
fullJoin<TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(table: {
|
|
43
43
|
new (db: DB): IToTable;
|
|
44
|
-
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<
|
|
44
|
+
}, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithJoin<TTable, IToTable, TPartial, IToPartial>;
|
|
45
45
|
execute: () => Promise<([keyof TPartial] extends [never] ? ExtractModel<TTable> : ExtractModel<TPartial>)[]>;
|
|
46
46
|
protected _execute: () => Promise<Array<[keyof TPartial] extends [never] ? ExtractModel<TTable> : ExtractModel<TPartial>>>;
|
|
47
47
|
}
|
|
@@ -48,8 +48,6 @@ class SelectTRB extends abstractRequestBuilder_1.default {
|
|
|
48
48
|
catch (e) {
|
|
49
49
|
throw new builderError_1.default(builderError_1.BuilderType.SELECT, this._table.tableName(), this._columns, e, this._filter);
|
|
50
50
|
}
|
|
51
|
-
console.log(query);
|
|
52
|
-
console.log(values);
|
|
53
51
|
if (this._logger) {
|
|
54
52
|
this._logger.info(`Selecting from ${this._table.tableName()} using query:\n ${query}`);
|
|
55
53
|
}
|
|
@@ -24,26 +24,26 @@ export default class SelectTRBWithFourJoins<TTable extends AbstractTable<TTable>
|
|
|
24
24
|
limit?: number;
|
|
25
25
|
offset?: number;
|
|
26
26
|
}, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1, joinedPartial1?: TPartial2, joinedPartial2?: TPartial3, joinedPartial3?: TPartial4);
|
|
27
|
-
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
27
|
+
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
28
28
|
new (db: DB): InputTable;
|
|
29
29
|
}, table: {
|
|
30
30
|
new (db: DB): IToTable;
|
|
31
|
-
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<
|
|
32
|
-
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
31
|
+
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
|
|
32
|
+
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
33
33
|
new (db: DB): InputTable;
|
|
34
34
|
}, table: {
|
|
35
35
|
new (db: DB): IToTable;
|
|
36
|
-
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<
|
|
37
|
-
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
36
|
+
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
|
|
37
|
+
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
38
38
|
new (db: DB): InputTable;
|
|
39
39
|
}, table: {
|
|
40
40
|
new (db: DB): IToTable;
|
|
41
|
-
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<
|
|
42
|
-
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
41
|
+
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
|
|
42
|
+
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
43
43
|
new (db: DB): InputTable;
|
|
44
44
|
}, table: {
|
|
45
45
|
new (db: DB): IToTable;
|
|
46
|
-
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<
|
|
46
|
+
}, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
|
|
47
47
|
protected joins(): Array<{
|
|
48
48
|
join: Join<any>;
|
|
49
49
|
partial?: {
|
|
@@ -18,26 +18,26 @@ export default class SelectTRBWithJoin<TTable extends AbstractTable<TTable>, TTa
|
|
|
18
18
|
limit?: number;
|
|
19
19
|
offset?: number;
|
|
20
20
|
}, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1);
|
|
21
|
-
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
21
|
+
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
22
22
|
new (db: DB): InputTable;
|
|
23
23
|
}, table: {
|
|
24
24
|
new (db: DB): IToTable;
|
|
25
|
-
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<
|
|
26
|
-
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
25
|
+
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
|
|
26
|
+
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
27
27
|
new (db: DB): InputTable;
|
|
28
28
|
}, table: {
|
|
29
29
|
new (db: DB): IToTable;
|
|
30
|
-
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<
|
|
31
|
-
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
30
|
+
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
|
|
31
|
+
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
32
32
|
new (db: DB): InputTable;
|
|
33
33
|
}, table: {
|
|
34
34
|
new (db: DB): IToTable;
|
|
35
|
-
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<
|
|
36
|
-
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
35
|
+
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
|
|
36
|
+
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
37
37
|
new (db: DB): InputTable;
|
|
38
38
|
}, table: {
|
|
39
39
|
new (db: DB): IToTable;
|
|
40
|
-
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<
|
|
40
|
+
}, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
|
|
41
41
|
protected joins(): Array<{
|
|
42
42
|
join: Join<any>;
|
|
43
43
|
partial?: {
|
|
@@ -22,26 +22,26 @@ export default class SelectTRBWithThreeJoins<TTable extends AbstractTable<TTable
|
|
|
22
22
|
limit?: number;
|
|
23
23
|
offset?: number;
|
|
24
24
|
}, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1, joinedPartial1?: TPartial2, joinedPartial2?: TPartial3);
|
|
25
|
-
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
25
|
+
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
26
26
|
new (db: DB): InputTable;
|
|
27
27
|
}, table: {
|
|
28
28
|
new (db: DB): IToTable;
|
|
29
|
-
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<
|
|
30
|
-
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
29
|
+
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable, TPartial, TPartial1, TPartial2, TPartial3, IToPartial>;
|
|
30
|
+
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
31
31
|
new (db: DB): InputTable;
|
|
32
32
|
}, table: {
|
|
33
33
|
new (db: DB): IToTable;
|
|
34
|
-
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<
|
|
35
|
-
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
34
|
+
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable, TPartial, TPartial1, TPartial2, TPartial3, IToPartial>;
|
|
35
|
+
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
36
36
|
new (db: DB): InputTable;
|
|
37
37
|
}, table: {
|
|
38
38
|
new (db: DB): IToTable;
|
|
39
|
-
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<
|
|
40
|
-
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
39
|
+
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable, TPartial, TPartial1, TPartial2, TPartial3, IToPartial>;
|
|
40
|
+
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
41
41
|
new (db: DB): InputTable;
|
|
42
42
|
}, table: {
|
|
43
43
|
new (db: DB): IToTable;
|
|
44
|
-
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<
|
|
44
|
+
}, from: (table: CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>) => AbstractColumn<TColumn, boolean, boolean, CheckFourTypes<InputTable, TTable, TTable1, TTable2, TTable3>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable, TPartial, TPartial1, TPartial2, TPartial3, IToPartial>;
|
|
45
45
|
protected mapResponse(result: QueryResult<any>): SelectResponseThreeJoins<TTable, TTable1, TTable2, TTable3, TPartial, TPartial1, TPartial2, TPartial3>;
|
|
46
46
|
protected joins(): Array<{
|
|
47
47
|
join: Join<any>;
|
|
@@ -20,26 +20,26 @@ export default class SelectTRBWithTwoJoins<TTable extends AbstractTable<TTable>,
|
|
|
20
20
|
limit?: number;
|
|
21
21
|
offset?: number;
|
|
22
22
|
}, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1, joinedPartial1?: TPartial2);
|
|
23
|
-
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
23
|
+
innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
24
24
|
new (db: DB): InputTable;
|
|
25
25
|
}, table: {
|
|
26
26
|
new (db: DB): IToTable;
|
|
27
|
-
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<
|
|
28
|
-
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
27
|
+
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable, TPartial, TPartial1, TPartial2, IToPartial>;
|
|
28
|
+
leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
29
29
|
new (db: DB): InputTable;
|
|
30
30
|
}, table: {
|
|
31
31
|
new (db: DB): IToTable;
|
|
32
|
-
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<
|
|
33
|
-
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
32
|
+
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable, TPartial, TPartial1, TPartial2, IToPartial>;
|
|
33
|
+
rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
34
34
|
new (db: DB): InputTable;
|
|
35
35
|
}, table: {
|
|
36
36
|
new (db: DB): IToTable;
|
|
37
|
-
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<
|
|
38
|
-
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
37
|
+
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable, TPartial, TPartial1, TPartial2, IToPartial>;
|
|
38
|
+
fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
|
|
39
39
|
new (db: DB): InputTable;
|
|
40
40
|
}, table: {
|
|
41
41
|
new (db: DB): IToTable;
|
|
42
|
-
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<
|
|
42
|
+
}, from: (table: CheckThreeTypes<InputTable, TTable, TTable1, TTable2>) => AbstractColumn<TColumn, boolean, boolean, CheckThreeTypes<InputTable, TTable, TTable1, TTable2>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable, TPartial, TPartial1, TPartial2, IToPartial>;
|
|
43
43
|
protected mapResponse(result: QueryResult<any>): SelectResponseTwoJoins<TTable, TTable1, TTable2, TPartial, TPartial1, TPartial2>;
|
|
44
44
|
protected joins(): Array<{
|
|
45
45
|
join: Join<any>;
|
package/columns/column.d.ts
CHANGED
|
@@ -19,19 +19,21 @@ export declare abstract class AbstractColumn<T extends ColumnType, TNullable ext
|
|
|
19
19
|
protected columnType: T;
|
|
20
20
|
protected columnName: string;
|
|
21
21
|
protected defaultParam: any;
|
|
22
|
-
protected referenced: AbstractColumn<T, boolean, boolean
|
|
22
|
+
protected referenced: AbstractColumn<T, boolean, boolean>;
|
|
23
23
|
constructor(parent: TParent, columnName: string, columnType: T);
|
|
24
24
|
getOnDelete: () => string | undefined;
|
|
25
25
|
getOnUpdate: () => string | undefined;
|
|
26
26
|
getAlias: () => string;
|
|
27
27
|
getParent: () => AbstractTable<any>;
|
|
28
28
|
getParentName: () => string;
|
|
29
|
-
abstract foreignKey<ITable extends AbstractTable<ITable>>(table: {
|
|
30
|
-
new (db: DB): ITable;
|
|
31
|
-
}, callback: (table: ITable) => AbstractColumn<any, boolean, boolean, TParent>, onConstraint: {
|
|
29
|
+
abstract foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
32
30
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
33
31
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
34
|
-
}): AbstractColumn<T, TNullable, TAutoIncrement>;
|
|
32
|
+
}): AbstractColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
33
|
+
abstract selfForeignKey(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
34
|
+
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
35
|
+
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
36
|
+
}): AbstractColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
35
37
|
defaultValue: (value: ExtractColumnType<T>) => this;
|
|
36
38
|
abstract primaryKey(): AbstractColumn<T, boolean, boolean, TParent>;
|
|
37
39
|
unique: () => this;
|
|
@@ -45,11 +47,11 @@ export declare class Column<T extends ColumnType, TNullable extends boolean = tr
|
|
|
45
47
|
constructor(parent: TParent, columnName: string, columnType: T);
|
|
46
48
|
notNull(): Column<T, TAutoIncrement extends true ? true : TNullable extends true ? false : true, TAutoIncrement, TParent>;
|
|
47
49
|
primaryKey(): Column<T, TAutoIncrement extends true ? true : false, TAutoIncrement, TParent>;
|
|
48
|
-
foreignKey(table: new (db: DB) =>
|
|
50
|
+
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
49
51
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
50
52
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
51
53
|
}): Column<T, TNullable, TAutoIncrement, TParent>;
|
|
52
|
-
|
|
54
|
+
selfForeignKey(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
53
55
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
54
56
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
55
57
|
}): Column<T, TNullable, TAutoIncrement, TParent>;
|
|
@@ -58,7 +60,11 @@ export declare class IndexedColumn<T extends ColumnType, TNullable extends boole
|
|
|
58
60
|
constructor(parent: TParent, columnName: string, columnType: T, nullable: TNullable);
|
|
59
61
|
notNull(): IndexedColumn<T, TAutoIncrement extends true ? true : TNullable extends true ? false : true, TAutoIncrement, TParent>;
|
|
60
62
|
primaryKey(): IndexedColumn<T, TAutoIncrement extends true ? true : false, TAutoIncrement, TParent>;
|
|
61
|
-
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) =>
|
|
63
|
+
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
64
|
+
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
65
|
+
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
66
|
+
}): IndexedColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
67
|
+
selfForeignKey<ITable extends AbstractTable<ITable>>(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
62
68
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
63
69
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
64
70
|
}): IndexedColumn<T, TNullable, TAutoIncrement, TParent>;
|
package/columns/column.js
CHANGED
|
@@ -56,19 +56,18 @@ class Column extends AbstractColumn {
|
|
|
56
56
|
return this;
|
|
57
57
|
}
|
|
58
58
|
foreignKey(table, callback, onConstraint) {
|
|
59
|
-
|
|
60
|
-
// eslint-disable-next-line new-cap
|
|
61
|
-
if (typeof this !== typeof this.getParent()) {
|
|
62
|
-
tableInstance = this.getParent().db.create(table);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
tableInstance = this;
|
|
66
|
-
}
|
|
59
|
+
const tableInstance = this.getParent().db.create(table);
|
|
67
60
|
this.referenced = callback(tableInstance);
|
|
68
61
|
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
69
62
|
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
70
63
|
return this;
|
|
71
64
|
}
|
|
65
|
+
selfForeignKey(column, onConstraint) {
|
|
66
|
+
this.referenced = column;
|
|
67
|
+
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
68
|
+
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
72
71
|
}
|
|
73
72
|
exports.Column = Column;
|
|
74
73
|
// eslint-disable-next-line max-len
|
|
@@ -92,5 +91,11 @@ class IndexedColumn extends AbstractColumn {
|
|
|
92
91
|
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
93
92
|
return this;
|
|
94
93
|
}
|
|
94
|
+
selfForeignKey(column, onConstraint) {
|
|
95
|
+
this.referenced = column;
|
|
96
|
+
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
97
|
+
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
95
100
|
}
|
|
96
101
|
exports.IndexedColumn = IndexedColumn;
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const dbConnector_1 = require("./db/dbConnector");
|
|
4
|
-
const
|
|
4
|
+
const citiesTable_1 = require("./docs/tables/citiesTable");
|
|
5
5
|
const consoleLogger_1 = require("./logger/consoleLogger");
|
|
6
6
|
const serializer_1 = require("./serializer/serializer");
|
|
7
7
|
(async () => {
|
|
@@ -9,7 +9,7 @@ const serializer_1 = require("./serializer/serializer");
|
|
|
9
9
|
const db = await new dbConnector_1.default()
|
|
10
10
|
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
11
11
|
.connect();
|
|
12
|
-
const usersTable = new
|
|
12
|
+
const usersTable = new citiesTable_1.default(db);
|
|
13
13
|
db.useLogger(new consoleLogger_1.default());
|
|
14
14
|
const ser = new serializer_1.default();
|
|
15
15
|
const res = ser.generate([usersTable], []);
|
|
@@ -31,10 +31,10 @@ const serializer_1 = require("./serializer/serializer");
|
|
|
31
31
|
// .orderBy((table, join1, join2, join3) => [{table.id}, join1.id, join1.phone])
|
|
32
32
|
// .execute();
|
|
33
33
|
// const res = await usersTable.select()
|
|
34
|
-
// .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
35
|
-
// .leftJoin(UsersTable, (table) => table.
|
|
36
|
-
// .leftJoin(UsersTable, UsersTable, (table) => table.
|
|
37
|
-
// .leftJoin(UsersTable, UsersTable, (table) => table.
|
|
34
|
+
// // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
35
|
+
// .leftJoin(UsersTable, (table) => table.foundationDate, (table) => table.id)
|
|
36
|
+
// .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
37
|
+
// .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
38
38
|
// // .groupBy({
|
|
39
39
|
// // usersTable: usersTable.id,
|
|
40
40
|
// // firstJoin: [usersTable.id],
|