drizzle-orm 0.10.19 → 0.10.22
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 +19 -7
- 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/docs/tables/citiesTable.js +2 -1
- package/package.json +1 -1
- package/serializer/serializer.js +1 -1
- package/test.d.ts +0 -1
- package/test.js +56 -49
|
@@ -60,6 +60,8 @@ class SelectAggregator extends abstractAggregator_1.default {
|
|
|
60
60
|
this.appendFrom = (tableName) => {
|
|
61
61
|
this._from.push('FROM ');
|
|
62
62
|
this._from.push(tableName);
|
|
63
|
+
// this._from.push(`${tableName} AS ${tableName}_0`);
|
|
64
|
+
this._joinCache[tableName] = tableName;
|
|
63
65
|
return this;
|
|
64
66
|
};
|
|
65
67
|
// Add select generator for second table also
|
|
@@ -70,6 +72,14 @@ class SelectAggregator extends abstractAggregator_1.default {
|
|
|
70
72
|
const tableFrom = joinObject.join.fromColumn.getParentName();
|
|
71
73
|
const tableTo = joinObject.join.toColumn.getParentName();
|
|
72
74
|
const { type } = joinObject.join;
|
|
75
|
+
let fromAlias = '';
|
|
76
|
+
if (this._joinCache[tableFrom]) {
|
|
77
|
+
fromAlias = this._joinCache[tableFrom];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
fromAlias = `${tableFrom}${joinObject.id ? `_${joinObject.id}` : ''}`;
|
|
81
|
+
this._joinCache[tableFrom] = fromAlias;
|
|
82
|
+
}
|
|
73
83
|
let selectString;
|
|
74
84
|
if (joinObject.partial) {
|
|
75
85
|
selectString = this.generateSelectArray(`${tableTo}${joinObject.id ? `_${joinObject.id}` : ''}`, Object.values(joinObject.partial), joinObject.id).join('');
|
|
@@ -85,19 +95,21 @@ class SelectAggregator extends abstractAggregator_1.default {
|
|
|
85
95
|
this._join.push(tableTo);
|
|
86
96
|
this._join.push(' ');
|
|
87
97
|
this._join.push(`AS ${tableTo}${joinObject.id ? `_${joinObject.id}` : ''}`);
|
|
98
|
+
this._joinCache[tableTo] = `${tableTo}${joinObject.id ? `_${joinObject.id}` : ''}`;
|
|
88
99
|
this._join.push('\n');
|
|
89
100
|
this._join.push('ON ');
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
else {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
101
|
+
this._join.push(fromAlias);
|
|
102
|
+
// if (this._joinCache[tableFrom]) {
|
|
103
|
+
// this._join.push(this._joinCache[tableFrom]);
|
|
104
|
+
// } else {
|
|
105
|
+
// this._join.push(tableFrom);
|
|
106
|
+
// this._joinCache[tableFrom] = `${tableFrom}${joinObject.id ? `_${joinObject.id}` : ''}`;
|
|
107
|
+
// }
|
|
97
108
|
this._join.push('.');
|
|
98
109
|
this._join.push(joinObject.join.fromColumn.getColumnName());
|
|
99
110
|
this._join.push(' = ');
|
|
100
111
|
this._join.push(`${tableTo}${joinObject.id ? `_${joinObject.id}` : ''}`);
|
|
112
|
+
// this._join.push(toAlias);
|
|
101
113
|
this._join.push('.');
|
|
102
114
|
this._join.push(joinObject.join.toColumn.getColumnName());
|
|
103
115
|
}
|
|
@@ -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>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const abstractTable_1 = require("../../tables/abstractTable");
|
|
4
|
+
const usersTable_1 = require("./usersTable");
|
|
4
5
|
class CitiesTable extends abstractTable_1.default {
|
|
5
6
|
constructor() {
|
|
6
7
|
super(...arguments);
|
|
7
8
|
this.id = this.serial('id').primaryKey();
|
|
8
9
|
this.foundationDate = this.timestamp('name').notNull();
|
|
9
10
|
this.location = this.varchar('page', { size: 256 });
|
|
10
|
-
this.userId = this.int('user_id').foreignKey(
|
|
11
|
+
this.userId = this.int('user_id').foreignKey(usersTable_1.default, (table) => table.id, { onUpdate: 'CASCADE' });
|
|
11
12
|
this.metadata = this.jsonb('metadata');
|
|
12
13
|
}
|
|
13
14
|
tableName() {
|
package/package.json
CHANGED
package/serializer/serializer.js
CHANGED
|
@@ -60,7 +60,7 @@ class MigrationSerializer {
|
|
|
60
60
|
const referenced = value.getReferenced();
|
|
61
61
|
if (referenced) {
|
|
62
62
|
columnToReturn[value.getColumnName()].references = {
|
|
63
|
-
foreignKeyName: `${value.getParent().tableName()}_${value.getColumnName()}
|
|
63
|
+
foreignKeyName: `${value.getParent().tableName()}_${value.getColumnName()}_fkey`,
|
|
64
64
|
table: referenced.getParentName(),
|
|
65
65
|
column: referenced.getColumnName(),
|
|
66
66
|
onDelete: value.getOnDelete(),
|
package/test.d.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/test.js
CHANGED
|
@@ -1,50 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
2
|
+
// import DbConnector from './db/dbConnector';
|
|
3
|
+
// import CitiesTable from './docs/tables/citiesTable';
|
|
4
|
+
// import UsersTable from './docs/tables/usersTable';
|
|
5
|
+
// import ConsoleLogger from './logger/consoleLogger';
|
|
6
|
+
// import MigrationSerializer from './serializer/serializer';
|
|
7
|
+
// import AbstractTable from './tables/abstractTable';
|
|
8
|
+
// (async () => {
|
|
9
|
+
// try {
|
|
10
|
+
// const db = await new DbConnector()
|
|
11
|
+
// .connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
12
|
+
// .connect();
|
|
13
|
+
// const usersTable = new UsersTable(db);
|
|
14
|
+
// const citiesTable = new CitiesTable(db);
|
|
15
|
+
// db.useLogger(new ConsoleLogger());
|
|
16
|
+
// const res = await usersTable.select()
|
|
17
|
+
// // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
18
|
+
// .leftJoin(CitiesTable, (table) => table.id, (table) => table.id)
|
|
19
|
+
// // .leftJoin(CitiesTable, UsersTable, (table) => table.userId, (table) => table.id)
|
|
20
|
+
// // .leftJoin(UsersTable, UsersTable, (table) => table.id, (table) => table.id)
|
|
21
|
+
// .execute();
|
|
22
|
+
// // const ser = new MigrationSerializer();
|
|
23
|
+
// // const res = ser.generate([usersTable as AbstractTable<UsersTable>], []);
|
|
24
|
+
// // console.log(JSON.stringify(res, null, 2));
|
|
25
|
+
// // const f = {
|
|
26
|
+
// // id: count(usersTable.id),
|
|
27
|
+
// // };
|
|
28
|
+
// // type d = ExtractModel<typeof f>;
|
|
29
|
+
// // const res = await usersTable.select({
|
|
30
|
+
// // piska: count(),
|
|
31
|
+
// // mongodibil: count(usersTable.phone),
|
|
32
|
+
// // })
|
|
33
|
+
// // .where({
|
|
34
|
+
// // piska: eq(),
|
|
35
|
+
// // mongodibil: eq(usersTable.phone),
|
|
36
|
+
// // }).leftJoin(UsersTable, (table) => table.id, (table) => table.id)
|
|
37
|
+
// // .leftJoin(UsersTable, UsersTable, (table) => table.id, (table) => table.id)
|
|
38
|
+
// // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
39
|
+
// // .orderBy((table, join1, join2, join3) => [{table.id}, join1.id, join1.phone])
|
|
40
|
+
// // .execute();
|
|
41
|
+
// // const res = await usersTable.select()
|
|
42
|
+
// // // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
43
|
+
// // .leftJoin(UsersTable, (table) => table.foundationDate, (table) => table.id)
|
|
44
|
+
// // .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
45
|
+
// // .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
46
|
+
// // // .groupBy({
|
|
47
|
+
// // // usersTable: usersTable.id,
|
|
48
|
+
// // // firstJoin: [usersTable.id],
|
|
49
|
+
// // // secondJoin: usersTable.id,
|
|
50
|
+
// // // thirdJoin: usersTable.id,
|
|
51
|
+
// // // })
|
|
52
|
+
// // .execute();
|
|
53
|
+
// // console.log(res);
|
|
54
|
+
// } catch (e) {
|
|
55
|
+
// console.log(e);
|
|
56
|
+
// }
|
|
57
|
+
// })();
|