@grest-ts/sql 0.0.5
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/LICENSE +21 -0
- package/README.md +498 -0
- package/dist/src/MysqlTable.d.ts +35 -0
- package/dist/src/MysqlTable.d.ts.map +1 -0
- package/dist/src/MysqlTable.js +70 -0
- package/dist/src/MysqlTable.js.map +1 -0
- package/dist/src/MysqlTableStructureParser.d.ts +106 -0
- package/dist/src/MysqlTableStructureParser.d.ts.map +1 -0
- package/dist/src/MysqlTableStructureParser.js +189 -0
- package/dist/src/MysqlTableStructureParser.js.map +1 -0
- package/dist/src/SQL.d.ts +72 -0
- package/dist/src/SQL.d.ts.map +1 -0
- package/dist/src/SQL.js +94 -0
- package/dist/src/SQL.js.map +1 -0
- package/dist/src/SqlExpression.d.ts +49 -0
- package/dist/src/SqlExpression.d.ts.map +1 -0
- package/dist/src/SqlExpression.js +117 -0
- package/dist/src/SqlExpression.js.map +1 -0
- package/dist/src/SqlFunctions.d.ts +118 -0
- package/dist/src/SqlFunctions.d.ts.map +1 -0
- package/dist/src/SqlFunctions.js +331 -0
- package/dist/src/SqlFunctions.js.map +1 -0
- package/dist/src/Symbols.d.ts +11 -0
- package/dist/src/Symbols.d.ts.map +1 -0
- package/dist/src/Symbols.js +11 -0
- package/dist/src/Symbols.js.map +1 -0
- package/dist/src/Types.d.ts +110 -0
- package/dist/src/Types.d.ts.map +1 -0
- package/dist/src/Types.js +34 -0
- package/dist/src/Types.js.map +1 -0
- package/dist/src/delete/DeleteBuilder.d.ts +19 -0
- package/dist/src/delete/DeleteBuilder.d.ts.map +1 -0
- package/dist/src/delete/DeleteBuilder.js +50 -0
- package/dist/src/delete/DeleteBuilder.js.map +1 -0
- package/dist/src/delete/DeleteInterfaces.d.ts +27 -0
- package/dist/src/delete/DeleteInterfaces.d.ts.map +1 -0
- package/dist/src/delete/DeleteInterfaces.js +2 -0
- package/dist/src/delete/DeleteInterfaces.js.map +1 -0
- package/dist/src/escape.d.ts +4 -0
- package/dist/src/escape.d.ts.map +1 -0
- package/dist/src/escape.js +50 -0
- package/dist/src/escape.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/insert/InsertBuilder.d.ts +19 -0
- package/dist/src/insert/InsertBuilder.d.ts.map +1 -0
- package/dist/src/insert/InsertBuilder.js +62 -0
- package/dist/src/insert/InsertBuilder.js.map +1 -0
- package/dist/src/insert/InsertInterfaces.d.ts +11 -0
- package/dist/src/insert/InsertInterfaces.d.ts.map +1 -0
- package/dist/src/insert/InsertInterfaces.js +2 -0
- package/dist/src/insert/InsertInterfaces.js.map +1 -0
- package/dist/src/select/SelectBuilder.d.ts +72 -0
- package/dist/src/select/SelectBuilder.d.ts.map +1 -0
- package/dist/src/select/SelectBuilder.js +315 -0
- package/dist/src/select/SelectBuilder.js.map +1 -0
- package/dist/src/select/parts/GatewayWhere.d.ts +17 -0
- package/dist/src/select/parts/GatewayWhere.d.ts.map +1 -0
- package/dist/src/select/parts/GatewayWhere.js +2 -0
- package/dist/src/select/parts/GatewayWhere.js.map +1 -0
- package/dist/src/select/parts/S0Union.d.ts +20 -0
- package/dist/src/select/parts/S0Union.d.ts.map +1 -0
- package/dist/src/select/parts/S0Union.js +2 -0
- package/dist/src/select/parts/S0Union.js.map +1 -0
- package/dist/src/select/parts/S0Uses.d.ts +6 -0
- package/dist/src/select/parts/S0Uses.d.ts.map +1 -0
- package/dist/src/select/parts/S0Uses.js +2 -0
- package/dist/src/select/parts/S0Uses.js.map +1 -0
- package/dist/src/select/parts/S0With.d.ts +6 -0
- package/dist/src/select/parts/S0With.d.ts.map +1 -0
- package/dist/src/select/parts/S0With.js +2 -0
- package/dist/src/select/parts/S0With.js.map +1 -0
- package/dist/src/select/parts/S1Join.d.ts +12 -0
- package/dist/src/select/parts/S1Join.d.ts.map +1 -0
- package/dist/src/select/parts/S1Join.js +2 -0
- package/dist/src/select/parts/S1Join.js.map +1 -0
- package/dist/src/select/parts/S2Columns.d.ts +35 -0
- package/dist/src/select/parts/S2Columns.d.ts.map +1 -0
- package/dist/src/select/parts/S2Columns.js +3 -0
- package/dist/src/select/parts/S2Columns.js.map +1 -0
- package/dist/src/select/parts/S2Where.d.ts +13 -0
- package/dist/src/select/parts/S2Where.d.ts.map +1 -0
- package/dist/src/select/parts/S2Where.js +2 -0
- package/dist/src/select/parts/S2Where.js.map +1 -0
- package/dist/src/select/parts/S3GroupBy.d.ts +10 -0
- package/dist/src/select/parts/S3GroupBy.d.ts.map +1 -0
- package/dist/src/select/parts/S3GroupBy.js +2 -0
- package/dist/src/select/parts/S3GroupBy.js.map +1 -0
- package/dist/src/select/parts/S4Having.d.ts +10 -0
- package/dist/src/select/parts/S4Having.d.ts.map +1 -0
- package/dist/src/select/parts/S4Having.js +2 -0
- package/dist/src/select/parts/S4Having.js.map +1 -0
- package/dist/src/select/parts/S5OrderBy.d.ts +9 -0
- package/dist/src/select/parts/S5OrderBy.d.ts.map +1 -0
- package/dist/src/select/parts/S5OrderBy.js +2 -0
- package/dist/src/select/parts/S5OrderBy.js.map +1 -0
- package/dist/src/select/parts/S6Limit.d.ts +7 -0
- package/dist/src/select/parts/S6Limit.d.ts.map +1 -0
- package/dist/src/select/parts/S6Limit.js +2 -0
- package/dist/src/select/parts/S6Limit.js.map +1 -0
- package/dist/src/select/parts/S7Exec.d.ts +26 -0
- package/dist/src/select/parts/S7Exec.d.ts.map +1 -0
- package/dist/src/select/parts/S7Exec.js +2 -0
- package/dist/src/select/parts/S7Exec.js.map +1 -0
- package/dist/src/tsconfig.json +16 -0
- package/dist/src/update/UpdateBuilder.d.ts +28 -0
- package/dist/src/update/UpdateBuilder.d.ts.map +1 -0
- package/dist/src/update/UpdateBuilder.js +77 -0
- package/dist/src/update/UpdateBuilder.js.map +1 -0
- package/dist/src/update/UpdateInterfaces.d.ts +34 -0
- package/dist/src/update/UpdateInterfaces.d.ts.map +1 -0
- package/dist/src/update/UpdateInterfaces.js +2 -0
- package/dist/src/update/UpdateInterfaces.js.map +1 -0
- package/dist/tsconfig.publish.tsbuildinfo +1 -0
- package/package.json +54 -0
- package/src/MysqlTable.ts +102 -0
- package/src/MysqlTableStructureParser.ts +283 -0
- package/src/SQL.ts +244 -0
- package/src/SqlExpression.ts +172 -0
- package/src/SqlFunctions.ts +471 -0
- package/src/Symbols.ts +11 -0
- package/src/Types.ts +244 -0
- package/src/delete/DeleteBuilder.ts +65 -0
- package/src/delete/DeleteInterfaces.ts +70 -0
- package/src/escape.ts +52 -0
- package/src/index.ts +6 -0
- package/src/insert/InsertBuilder.ts +76 -0
- package/src/insert/InsertInterfaces.ts +16 -0
- package/src/select/SelectBuilder.ts +372 -0
- package/src/select/parts/GatewayWhere.ts +31 -0
- package/src/select/parts/S0Union.ts +43 -0
- package/src/select/parts/S0Uses.ts +21 -0
- package/src/select/parts/S0With.ts +21 -0
- package/src/select/parts/S1Join.ts +39 -0
- package/src/select/parts/S2Columns.ts +68 -0
- package/src/select/parts/S2Where.ts +51 -0
- package/src/select/parts/S3GroupBy.ts +23 -0
- package/src/select/parts/S4Having.ts +24 -0
- package/src/select/parts/S5OrderBy.ts +21 -0
- package/src/select/parts/S6Limit.ts +9 -0
- package/src/select/parts/S7Exec.ts +41 -0
- package/src/tsconfig.json +16 -0
- package/src/update/UpdateBuilder.ts +96 -0
- package/src/update/UpdateInterfaces.ts +87 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectBuilder.d.ts","sourceRoot":"","sources":["../../../src/select/SelectBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { Over, SqlExpression } from "../SqlExpression.js";
|
|
2
|
+
import { MysqlTable } from "../MysqlTable.js";
|
|
3
|
+
import { SQL_ALIAS, SQL_ENTITY, SQL_EXPRESSION } from "../Symbols.js";
|
|
4
|
+
import { escape, escapeId } from "../escape.js";
|
|
5
|
+
import { ONE, orderByStructureToSqlString } from "../SqlFunctions.js";
|
|
6
|
+
const TAB = " ";
|
|
7
|
+
export class SelectBuilder {
|
|
8
|
+
[SQL_ENTITY]; // never used
|
|
9
|
+
_withQueries = new Map();
|
|
10
|
+
_from;
|
|
11
|
+
_columns = [];
|
|
12
|
+
_columnStruct = {};
|
|
13
|
+
_joins = [];
|
|
14
|
+
_windows = [];
|
|
15
|
+
_where = [];
|
|
16
|
+
_having = [];
|
|
17
|
+
_groupBy = [];
|
|
18
|
+
_orderBy = [];
|
|
19
|
+
_limit = undefined;
|
|
20
|
+
unions = [];
|
|
21
|
+
_unionColumnOrder = [];
|
|
22
|
+
_distinct = false;
|
|
23
|
+
_forUpdate = false;
|
|
24
|
+
transformers = [];
|
|
25
|
+
union(table) {
|
|
26
|
+
return this._union(table, "DISTINCT");
|
|
27
|
+
}
|
|
28
|
+
unionAll(table) {
|
|
29
|
+
return this._union(table, "ALL");
|
|
30
|
+
}
|
|
31
|
+
_union(table, type = "DISTINCT") {
|
|
32
|
+
if (this.unions.length === 0) {
|
|
33
|
+
const builder = new SelectBuilder();
|
|
34
|
+
builder.unions.push("(\n" + this.toString(1) + ") ");
|
|
35
|
+
builder._columnStruct = this._columnStruct;
|
|
36
|
+
for (const k in this._columnStruct) {
|
|
37
|
+
builder._unionColumnOrder.push(k);
|
|
38
|
+
}
|
|
39
|
+
builder._union(table, type);
|
|
40
|
+
return builder;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const struct = table._columnStruct;
|
|
44
|
+
let i = 0;
|
|
45
|
+
for (const k in struct) {
|
|
46
|
+
if (this._unionColumnOrder[i] !== k) {
|
|
47
|
+
const order = [];
|
|
48
|
+
for (const k in struct) {
|
|
49
|
+
order.push(k);
|
|
50
|
+
}
|
|
51
|
+
throw new Error("Union columns from pos " + i + " do not match! \nFirst call columns: '" + this._unionColumnOrder.join(", ") + "'. \nCurrent call columns: '" + order.join(", ") + "'");
|
|
52
|
+
}
|
|
53
|
+
i++;
|
|
54
|
+
}
|
|
55
|
+
if (i !== this._unionColumnOrder.length) {
|
|
56
|
+
throw new Error("Union columns count do not match! " + this._unionColumnOrder.length + " != " + i + " (Why didn't compiler warn you about this?)");
|
|
57
|
+
}
|
|
58
|
+
this.unions.push("UNION " + (type === "DISTINCT" ? "DISTINCT " : "ALL ") + "(\n" + table.toString(1) + ") ");
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
with(...tables) {
|
|
63
|
+
console.log(tables);
|
|
64
|
+
for (let i = 0; i < tables.length; i++) {
|
|
65
|
+
const table = tables[i];
|
|
66
|
+
const alias = table[SQL_ALIAS];
|
|
67
|
+
this._withQueries.set(alias, escapeId(alias) + " AS " + table[SQL_EXPRESSION]);
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
uses(table) {
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
selectFrom(table) {
|
|
75
|
+
if (typeof table === "string") {
|
|
76
|
+
this._from = escapeId(table);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this._from = table[SQL_EXPRESSION] + " as " + escapeId(table[SQL_ALIAS]);
|
|
80
|
+
}
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
join(table, condition) {
|
|
84
|
+
return this._join(table, condition, "JOIN");
|
|
85
|
+
}
|
|
86
|
+
leftJoin(table, condition) {
|
|
87
|
+
return this._join(table, condition, "LEFT JOIN");
|
|
88
|
+
}
|
|
89
|
+
_join(table, condition, type = "JOIN") {
|
|
90
|
+
const sql = this._withQueries.has(table[SQL_ALIAS]) ? escapeId(table[SQL_ALIAS]) : table[SQL_EXPRESSION] + " as " + escapeId(table[SQL_ALIAS]);
|
|
91
|
+
this._joins.push(type + " " + sql + " ON (" + condition.expression + ")");
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
window(name, func) {
|
|
95
|
+
const builder2 = new Over();
|
|
96
|
+
func(builder2);
|
|
97
|
+
this._windows.push(name + " AS (" + builder2.toString() + ")");
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
distinct() {
|
|
101
|
+
this._distinct = true;
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
columns(...cols) {
|
|
105
|
+
for (let i = 0; i < cols.length; i++) {
|
|
106
|
+
const col = cols[i];
|
|
107
|
+
if (col instanceof SqlExpression) {
|
|
108
|
+
this._columns.push(col.expression + (col.nameAs ? " as " + escapeId(col.nameAs) : ""));
|
|
109
|
+
this._columnStruct[col.nameAs] = true;
|
|
110
|
+
if (col.transformer) {
|
|
111
|
+
this.transformers.push({ property: col.nameAs, transformer: col.transformer });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (typeof col === "string") {
|
|
115
|
+
this._columns.push(escapeId(col));
|
|
116
|
+
this._columnStruct[col] = true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
one() {
|
|
122
|
+
this.columns(ONE());
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
allColumnsFrom(table) {
|
|
126
|
+
for (const k in table) {
|
|
127
|
+
this.columns(table[k]);
|
|
128
|
+
}
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
noWhere() {
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
where(...cols) {
|
|
135
|
+
for (let i = 0; i < cols.length; i++) {
|
|
136
|
+
const col = cols[i];
|
|
137
|
+
if (col instanceof SqlExpression) {
|
|
138
|
+
this._where.push(col.expression);
|
|
139
|
+
}
|
|
140
|
+
else if (typeof col === "object") {
|
|
141
|
+
for (const prop in col) {
|
|
142
|
+
this._where.push(escapeId(prop) + " = " + escape(col[prop]));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else if (col === undefined || col === null || col === "" || col === false) {
|
|
146
|
+
// skip
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
throw new Error("Invalid argument to where! Type: '" + (typeof col) + "' String: '" + String(col) + "'");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return this;
|
|
153
|
+
}
|
|
154
|
+
groupBy(...items) {
|
|
155
|
+
for (let i = 0; i < items.length; i++) {
|
|
156
|
+
const item = items[i];
|
|
157
|
+
if (item instanceof SqlExpression) {
|
|
158
|
+
this._groupBy.push(item.expression);
|
|
159
|
+
}
|
|
160
|
+
else if (typeof item === "string") {
|
|
161
|
+
this._groupBy.push(escapeId(item));
|
|
162
|
+
}
|
|
163
|
+
else if (item === undefined || item === null || item === "") {
|
|
164
|
+
// skip
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
throw new Error("Invalid argument to groupBy! Type: '" + (typeof item) + "' String: '" + String(item) + "'");
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return this;
|
|
171
|
+
}
|
|
172
|
+
groupByF(func) {
|
|
173
|
+
const proxy = new Proxy({}, {
|
|
174
|
+
get(target, p, receiver) {
|
|
175
|
+
if (p === "" || p === "undefined") {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
return new SqlExpression(p, p);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
this.groupBy(...func(proxy));
|
|
182
|
+
return this;
|
|
183
|
+
}
|
|
184
|
+
having(...items) {
|
|
185
|
+
for (let i = 0; i < items.length; i++) {
|
|
186
|
+
const item = items[i];
|
|
187
|
+
if (item instanceof SqlExpression) {
|
|
188
|
+
this._having.push(item.expression);
|
|
189
|
+
}
|
|
190
|
+
else if (typeof item === "string") {
|
|
191
|
+
this._having.push(escapeId(item));
|
|
192
|
+
}
|
|
193
|
+
else if (item === undefined || item === null || item === "") {
|
|
194
|
+
// skip
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
throw new Error("Invalid argument to having! Type: '" + (typeof item) + "' String: '" + String(item) + "'");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return this;
|
|
201
|
+
}
|
|
202
|
+
havingF(func) {
|
|
203
|
+
const proxy = new Proxy({}, {
|
|
204
|
+
get(target, p, receiver) {
|
|
205
|
+
if (p === "" || p === "undefined") {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
return new SqlExpression(p, p);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
this.having(...func(proxy));
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
orderBy(...items) {
|
|
215
|
+
this._orderBy = orderByStructureToSqlString(items);
|
|
216
|
+
return this;
|
|
217
|
+
}
|
|
218
|
+
orderByF(func) {
|
|
219
|
+
const proxy = new Proxy({}, {
|
|
220
|
+
get(target, p, receiver) {
|
|
221
|
+
if (p === "" || p === "undefined") {
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
return new SqlExpression(p, p);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
this.orderBy(...func(proxy));
|
|
228
|
+
return this;
|
|
229
|
+
}
|
|
230
|
+
noLimit() {
|
|
231
|
+
return this;
|
|
232
|
+
}
|
|
233
|
+
limit(limit) {
|
|
234
|
+
if (Array.isArray(limit)) {
|
|
235
|
+
this._limit = Number(limit[0]) + "," + Number(limit[1]);
|
|
236
|
+
}
|
|
237
|
+
else if (limit !== undefined && limit !== null && String(limit) !== "") {
|
|
238
|
+
this._limit = String(Number(limit));
|
|
239
|
+
}
|
|
240
|
+
return this;
|
|
241
|
+
}
|
|
242
|
+
limit1() {
|
|
243
|
+
return this.limit(1);
|
|
244
|
+
}
|
|
245
|
+
forUpdate() {
|
|
246
|
+
this._forUpdate = true;
|
|
247
|
+
return this;
|
|
248
|
+
}
|
|
249
|
+
asScalar(alias) {
|
|
250
|
+
return SqlExpression.create("(\n" + this.toString(2) + TAB + ")", alias);
|
|
251
|
+
}
|
|
252
|
+
as(alias) {
|
|
253
|
+
return MysqlTable.defineDbTable("(\n" + this.toString(2) + ")", alias, this._columnStruct);
|
|
254
|
+
}
|
|
255
|
+
async transformResult(rows) {
|
|
256
|
+
for (let r = 0; r < rows.length; r++) {
|
|
257
|
+
const row = rows[r];
|
|
258
|
+
for (let i = 0; i < this.transformers.length; i++) {
|
|
259
|
+
const parser = this.transformers[i];
|
|
260
|
+
const res = parser.transformer(row[parser.property]);
|
|
261
|
+
if (res instanceof Promise) {
|
|
262
|
+
row[parser.property] = await res;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
row[parser.property] = res;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return rows;
|
|
270
|
+
}
|
|
271
|
+
toString(lvl = 0) {
|
|
272
|
+
if (this.transformers.length > 0) {
|
|
273
|
+
throw new Error("Select.toString() call might be accidental! This query uses transforms and it may cause errors in the application! " +
|
|
274
|
+
"This is safety measure to avoid executing queries that have transforms that would not get executed! " +
|
|
275
|
+
"You can call toSqlQuery() method to still get a sql string!");
|
|
276
|
+
}
|
|
277
|
+
return this._toString(lvl);
|
|
278
|
+
}
|
|
279
|
+
toSqlString() {
|
|
280
|
+
return this._toString();
|
|
281
|
+
}
|
|
282
|
+
_toString(lvl = 0) {
|
|
283
|
+
const tabs = TAB.repeat(lvl);
|
|
284
|
+
let base;
|
|
285
|
+
if (this.unions.length > 0) {
|
|
286
|
+
base = this.unions.join("") + "\n";
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
base = (this._withQueries.size > 0 ? tabs + "WITH\n" + TAB + Array.from(this._withQueries.values()).join(",\n\n" + TAB) + "\n\n" : "") +
|
|
290
|
+
tabs + "SELECT " + (this._distinct ? "DISTINCT " : "") + "\n" +
|
|
291
|
+
tabs + TAB + this._columns.join(",\n" + tabs + TAB) + "\n" +
|
|
292
|
+
tabs + "FROM " + this._from + "\n" +
|
|
293
|
+
(this._joins.length > 0 ? tabs + this._joins.join("\n") + "\n" : "") +
|
|
294
|
+
(this._where.length > 0 ? tabs + "WHERE " + this._where.join("\n" + TAB + " AND ") + "\n" : "");
|
|
295
|
+
}
|
|
296
|
+
return base +
|
|
297
|
+
(this._groupBy.length > 0 ? tabs + "GROUP BY " + this._groupBy.join(", ") + "\n" : "") +
|
|
298
|
+
(this._having.length > 0 ? tabs + "HAVING " + this._having.join("\n" + TAB + " AND ") + "\n" : "") +
|
|
299
|
+
(this._windows.length > 0 ? tabs + "WINDOW " + this._windows.join(",\n" + TAB) + "\n" : "") +
|
|
300
|
+
(this._orderBy.length > 0 ? tabs + "ORDER BY " + this._orderBy.join(", ") + "\n" : "") +
|
|
301
|
+
(this._limit ? tabs + "LIMIT " + this._limit + "\n" : "") +
|
|
302
|
+
(this._forUpdate && this.unions.length === 0 ? tabs + "FOR UPDATE\n" : "");
|
|
303
|
+
}
|
|
304
|
+
async exec(executor, ...args) {
|
|
305
|
+
const res = await executor(this.toSqlString(), ...args);
|
|
306
|
+
if (res && res.length > 0 && this.transformers.length > 0) {
|
|
307
|
+
await this.transformResult(res);
|
|
308
|
+
}
|
|
309
|
+
return res;
|
|
310
|
+
}
|
|
311
|
+
async execOne(executor, ...args) {
|
|
312
|
+
return (await this.exec(executor, ...args))?.[0];
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=SelectBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectBuilder.js","sourceRoot":"","sources":["../../../src/select/SelectBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ExecMethods } from "./S7Exec";
|
|
2
|
+
import { OrderByStructure } from "../../Types";
|
|
3
|
+
export interface GatewayWhereMethods<Entity, Result> {
|
|
4
|
+
where(where: Partial<Entity>): GatewaySelectGroupByMethods<Entity, Result> & GatewaySelectOrderByMethods<Entity, Result> & GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
|
|
5
|
+
}
|
|
6
|
+
export interface GatewaySelectGroupByMethods<Entity, Result> extends GatewaySelectLimitMethods<Result> {
|
|
7
|
+
groupBy(...fields: (keyof Entity)[]): GatewaySelectOrderByMethods<Entity, Result> & GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
|
|
8
|
+
}
|
|
9
|
+
export interface GatewaySelectOrderByMethods<Entity, Result> extends GatewaySelectLimitMethods<Result> {
|
|
10
|
+
orderBy(...fields: OrderByStructure<keyof Entity>): GatewaySelectLimitMethods<Result> & ExecMethods<Result>;
|
|
11
|
+
}
|
|
12
|
+
export interface GatewaySelectLimitMethods<Result> {
|
|
13
|
+
noLimit(): ExecMethods<Result>;
|
|
14
|
+
limit(limit: number | [number, number]): ExecMethods<Result>;
|
|
15
|
+
limit1(): ExecMethods<Result>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=GatewayWhere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatewayWhere.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/GatewayWhere.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAE/C,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAErL;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IAElG,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAE9I;AAED,MAAM,WAAW,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IAElG,OAAO,CAAC,GAAG,MAAM,EAAE,gBAAgB,CAAC,MAAM,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAE9G;AAED,MAAM,WAAW,yBAAyB,CAAC,MAAM;IAE7C,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAE9B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAE5D,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;CAEhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatewayWhere.js","sourceRoot":"","sources":["../../../../src/select/parts/GatewayWhere.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ExecMethods } from "./S7Exec";
|
|
2
|
+
import { GroupByMethods } from "./S3GroupBy";
|
|
3
|
+
export interface UnionMethods<Result> {
|
|
4
|
+
union<Exec, MergedResult = Merge<Result, Exec>>(table: Check<Result, Exec> & Exec): UnionMethods<MergedResult> & GroupByMethods<MergedResult, {}>;
|
|
5
|
+
unionAll<Exec, MergedResult = Merge<Result, Exec>>(table: Check<Result, Exec> & Exec): UnionMethods<MergedResult> & GroupByMethods<MergedResult, {}>;
|
|
6
|
+
}
|
|
7
|
+
type Check<Result1, Exec> = Exec extends ExecMethods<infer Result2> ? Key1Checker<Result1, Result2> extends never ? Key2Checker<Result1, Result2> extends never ? Exec : Key2Checker<Result1, Result2> : Key1Checker<Result1, Result2> : never;
|
|
8
|
+
type Key1Checker<Result1, Result2> = {
|
|
9
|
+
[K in keyof Result1]: K extends keyof Result2 ? never : `Missing column '${K extends string ? K : "???"}' on added union table! (...,${K extends string ? K : "???"}) UNION (..., ${K extends string ? K : "???"} <- Missing!)
|
|
10
|
+
`;
|
|
11
|
+
}[keyof Result1];
|
|
12
|
+
type Key2Checker<Result1, Result2> = {
|
|
13
|
+
[K in keyof Result2]: K extends keyof Result1 ? never : `Column '${K extends string ? K : "???"}' does not exist in previous queries! (...) UNION (...,'${K extends string ? K : "???"}' <--- is a mistake (or add it to previous queries)!)
|
|
14
|
+
`;
|
|
15
|
+
}[keyof Result2];
|
|
16
|
+
type Merge<Result, Exec> = Exec extends ExecMethods<infer Result2> ? {
|
|
17
|
+
[K in keyof Result]: K extends keyof Result2 ? Result[K] | Result2[K] : never;
|
|
18
|
+
} : never;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=S0Union.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0Union.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0Union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,YAAY,CAAC,MAAM;IAEhC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,GAClC,YAAY,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAGhE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,GAClC,YAAY,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;CACnE;AAED,KAAK,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,SAAS,WAAW,CAAC,MAAM,OAAO,CAAC,GAC7D,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,KAAK,GACvC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,KAAK,GACvC,IAAI,GACJ,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GACjC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GACjC,KAAK,CAAA;AAEX,KAAK,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI;KAChC,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,MAAM,OAAO,GACvC,KAAK,GACL,mBAAmB,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,gCAAgC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,iBAAiB,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;0RACwH;CAEzR,CAAC,MAAM,OAAO,CAAC,CAAA;AAEhB,KAAK,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI;KAChC,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,MAAM,OAAO,GACvC,KAAK,GACL,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,2DAA2D,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;0RACkJ;CAEzR,CAAC,MAAM,OAAO,CAAC,CAAA;AAGhB,KAAK,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,SAAS,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG;KAChE,CAAC,IAAI,MAAM,MAAM,GAAG,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;CAChF,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0Union.js","sourceRoot":"","sources":["../../../../src/select/parts/S0Union.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AliasedTable, Key, NotUsingWithPart } from "../../Types";
|
|
2
|
+
import { JoinMethods } from "./S1Join";
|
|
3
|
+
export interface UsesMethods<Aliases, Tables> {
|
|
4
|
+
selectFrom<Alias extends string, TableRef extends `${string} as ${Alias}`>(table: AliasedTable<Alias, TableRef, object, object, string | NotUsingWithPart>): JoinMethods<Aliases & Key<Alias>, {}, Tables & Key<TableRef>>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=S0Uses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0Uses.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0Uses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,OAAO,EAAE,MAAM;IAUxC,UAAU,CACN,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EAExC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAChF,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;CAEnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0Uses.js","sourceRoot":"","sources":["../../../../src/select/parts/S0Uses.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AliasedTable, Key, NotUsingWithPart } from "../../Types";
|
|
2
|
+
import { JoinMethods } from "./S1Join";
|
|
3
|
+
export interface WithMethods<AliasesFromWith> {
|
|
4
|
+
selectFrom<Alias extends string, TableRef extends `${string} as ${Alias}`>(table: AliasedTable<Alias, TableRef, object, object, string | NotUsingWithPart>): JoinMethods<Key<Alias>, AliasesFromWith, Key<TableRef>>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=S0With.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0With.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S0With.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAChE,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,eAAe;IASxC,UAAU,CACN,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EAExC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAChF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;CAE7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S0With.js","sourceRoot":"","sources":["../../../../src/select/parts/S0With.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AliasedTable, isAliasAlreadyUsed, isTableReferenced, Key, NotUsingWithPart, SQL_BOOL } from "../../Types";
|
|
2
|
+
import { Expr, Over } from "../../SqlExpression";
|
|
3
|
+
import { ColumnsMethods } from "./S2Columns";
|
|
4
|
+
export interface JoinMethods<Aliases, AliasesFromWith, Tables> extends ColumnsMethods<{}, Tables> {
|
|
5
|
+
join<Alias extends string, TableRef extends `${string} as ${Alias}`, RefAlias extends NotUsingWithPart | string, ColTableRef extends string>(table: isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, isAliasAlreadyUsed<Aliases & AliasesFromWith, Alias, AliasedTable<Alias, TableRef, object, object, RefAlias>>>, condition: isConditionUsingJoinedTable<TableRef, ColTableRef, isTableReferenced<Tables & Key<TableRef>, Key<ColTableRef>, Expr<ColTableRef, unknown, SQL_BOOL>>>): JoinMethods<Aliases & Key<Alias>, AliasesFromWith, Tables & Key<TableRef>>;
|
|
6
|
+
leftJoin<Alias extends string, TableRef extends `${string} as ${Alias}`, RefAlias extends NotUsingWithPart | string, ColTableRef extends string>(table: isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, isAliasAlreadyUsed<Aliases & AliasesFromWith, Alias, AliasedTable<Alias, TableRef, object, object, RefAlias>>>, condition: isConditionUsingJoinedTable<TableRef, ColTableRef, isTableReferenced<Tables & Key<TableRef>, Key<ColTableRef>, Expr<ColTableRef, unknown, SQL_BOOL>>>): JoinMethods<Aliases & Key<Alias>, AliasesFromWith, Tables & Key<TableRef>>;
|
|
7
|
+
window<WindowName extends string, UsedTablesRef extends string>(name: isAliasAlreadyUsed<Aliases & AliasesFromWith, WindowName, WindowName>, func: (builder: Over<never>) => Over<UsedTablesRef>): JoinMethods<Aliases & Key<WindowName>, AliasesFromWith, Tables & Key<`(window) as ${WindowName}`>>;
|
|
8
|
+
}
|
|
9
|
+
type isConditionUsingJoinedTable<TableRef, ColTableRef, OUT> = TableRef extends ColTableRef ? OUT : "Join condition should use columns from the joined table!";
|
|
10
|
+
type isRefAliasInAliasesFromWith<AliasesFromWith, RefAlias, OUT> = RefAlias extends NotUsingWithPart | string & keyof AliasesFromWith ? OUT : `Alias '${RefAlias extends string ? RefAlias : RefAlias extends NotUsingWithPart ? "NOT_REFERENCED" : "???"}' is not defined by any of the with queries!`;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=S1Join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S1Join.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S1Join.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AACjH,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC;IAE7F,IAAI,CACA,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EACxC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,EAE1B,KAAK,EAAE,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAC5K,SAAS,EAAE,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjK,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,QAAQ,CACJ,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,GAAG,MAAM,OAAO,KAAK,EAAE,EACxC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,EAE1B,KAAK,EAAE,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAC5K,SAAS,EAAE,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjK,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,MAAM,CACF,UAAU,SAAS,MAAM,EACzB,aAAa,SAAS,MAAM,EAE5B,IAAI,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,EAC3E,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,GACpD,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC,CAAA;CAExG;AAED,KAAK,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,QAAQ,SAAS,WAAW,GAAG,GAAG,GAAG,0DAA0D,CAAA;AAE9J,KAAK,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,SAAS,gBAAgB,GAAG,MAAM,GAAG,MAAM,eAAe,GAAG,GAAG,GAAG,UAAU,QAAQ,SAAS,MAAM,GAAG,QAAQ,GAAG,QAAQ,SAAS,gBAAgB,GAAG,gBAAgB,GAAG,KAAK,8CAA8C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S1Join.js","sourceRoot":"","sources":["../../../../src/select/parts/S1Join.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WhereMethods } from "./S2Where";
|
|
2
|
+
import { Expr } from "../../SqlExpression";
|
|
3
|
+
import { AliasedTable, NotUsingWithPart } from "../../Types";
|
|
4
|
+
export interface ColumnsMethods<Result, Tables> {
|
|
5
|
+
distinct(): ColumnsMethods<Result, Tables>;
|
|
6
|
+
allColumnsFrom<TableRef, Entity, Result2 = Result & Entity>(table: AliasedTable<string, TableRef, Entity, any, NotUsingWithPart>): ColumnsMethods<Result2, Tables> & WhereMethods<Result2, Tables>;
|
|
7
|
+
one(): WhereMethods<Result & {
|
|
8
|
+
one: 1;
|
|
9
|
+
}, Tables>;
|
|
10
|
+
columns<TableRef, Columns extends Expr<TableRef, string, any>[]>(...columns: isColumnOkToAdd<Result, Tables, Columns>): WhereMethods<Result & ExtractObj<Columns>, Tables>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Take array of Col-s and convert to Record<key, value> & ... object.
|
|
14
|
+
*/
|
|
15
|
+
export type ExtractObj<Columns extends Expr<any, string, any>[]> = {
|
|
16
|
+
[K in Columns[number]['nameAs']]: Extract<Columns[number], {
|
|
17
|
+
nameAs: K;
|
|
18
|
+
}>['type'];
|
|
19
|
+
};
|
|
20
|
+
type _checkIfExistsInOtherFields<Rest extends any[], Expr> = Rest extends [] ? Expr : Expr extends {
|
|
21
|
+
nameAs: string;
|
|
22
|
+
} ? Expr["nameAs"] extends (Rest extends {
|
|
23
|
+
nameAs: infer A;
|
|
24
|
+
}[] ? A : never) ? `'${Expr["nameAs"]}' already exists in columns!` : Expr : Expr extends {
|
|
25
|
+
nameAs: unknown;
|
|
26
|
+
} ? `Is missing column name. Add .as('name')` : Expr;
|
|
27
|
+
type _checkIfExistsInResult<Result, Expr> = Expr extends {
|
|
28
|
+
nameAs: string;
|
|
29
|
+
} ? Expr["nameAs"] extends keyof Result ? `'${Expr["nameAs"]}' already exists in result columns!` : Expr : Expr;
|
|
30
|
+
type _checkThatTableIsReferenced<Tables, Expr> = Expr extends {
|
|
31
|
+
tableRef: string;
|
|
32
|
+
} ? Expr["tableRef"] extends keyof Tables ? Expr : `'${Expr["tableRef"]}' is not used in this query!` : Expr;
|
|
33
|
+
type isColumnOkToAdd<Result, Tables, ColumnExpressions> = ColumnExpressions extends [] ? ColumnExpressions : ColumnExpressions extends [...(infer Rest), infer A] ? [...isColumnOkToAdd<Result, Tables, Rest>, _checkIfExistsInOtherFields<Rest, _checkIfExistsInResult<Result, _checkThatTableIsReferenced<Tables, A>>>] : ColumnExpressions;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=S2Columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S2Columns.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S2Columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S2Columns.js","sourceRoot":"","sources":["../../../../src/select/parts/S2Columns.ts"],"names":[],"mappings":";AAmEA,uEAAuE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isTableReferenced, Key, SQL_BOOL } from "../../Types";
|
|
2
|
+
import { GroupByMethods } from "./S3GroupBy";
|
|
3
|
+
import { Expr } from "../../SqlExpression";
|
|
4
|
+
import { OrderByMethods } from "./S5OrderBy";
|
|
5
|
+
import { LimitMethods } from "./S6Limit";
|
|
6
|
+
import { ExecMethods } from "./S7Exec";
|
|
7
|
+
export interface WhereMethods<Result, Tables> {
|
|
8
|
+
noWhere(): GroupByMethods<Result, Tables> & OrderByMethods<Result, Tables> & LimitMethods<Result> & ExecMethods<Result>;
|
|
9
|
+
where<T1 extends string, T2 extends string = never, T3 extends string = never, T4 extends string = never, T5 extends string = never, T6 extends string = never, T7 extends string = never, T8 extends string = never, T9 extends string = never, T10 extends string = never, T11 extends string = never, T12 extends string = never, T13 extends string = never, T14 extends string = never, T15 extends string = never, T = Tables>(c1: C<T, T1>, c2?: C<T, T2>, c3?: C<T, T3>, c4?: C<T, T4>, c5?: C<T, T5>, c6?: C<T, T6>, c7?: C<T, T7>, c8?: C<T, T8>, c9?: C<T, T9>, c10?: C<T, T10>, c11?: C<T, T11>, c12?: C<T, T12>, c13?: C<T, T13>, c14?: C<T, T14>, c15?: C<T, T15>): GroupByMethods<Result, Tables> & OrderByMethods<Result, Tables> & LimitMethods<Result> & ExecMethods<Result>;
|
|
10
|
+
}
|
|
11
|
+
type C<Tables, T extends string> = isTableReferenced<Tables, Key<T>, Expr<T, unknown, SQL_BOOL>>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=S2Where.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S2Where.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S2Where.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,MAAM,EAAE,MAAM;IAExC,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvH,KAAK,CACD,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,EAAE,SAAS,MAAM,GAAG,KAAK,EACzB,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,EAC1B,CAAC,GAAG,MAAM,EAEV,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACZ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACb,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACf,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAChB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CAElH;AAED,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S2Where.js","sourceRoot":"","sources":["../../../../src/select/parts/S2Where.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AliasedTable, isColumnOkToUse, Key, NotUsingWithPart } from "../../Types";
|
|
2
|
+
import { HavingMethods } from "./S4Having";
|
|
3
|
+
import { Expr } from "../../SqlExpression";
|
|
4
|
+
import { OrderByMethods } from "./S5OrderBy";
|
|
5
|
+
import { LimitMethods } from "./S6Limit";
|
|
6
|
+
export interface GroupByMethods<Result, Tables> extends OrderByMethods<Result, Tables>, LimitMethods<Result> {
|
|
7
|
+
groupBy<TableRef, Columns extends Expr<TableRef, string | unknown, any>[]>(...items: isColumnOkToUse<Tables, Columns>): HavingMethods<Result, Tables>;
|
|
8
|
+
groupByF<TableRef, Columns extends Expr<TableRef, string | unknown, any>[]>(func: (columnsTable: AliasedTable<"(columns)", "(columns)", Result, object, NotUsingWithPart>) => isColumnOkToUse<Tables & Key<"(columns)">, Columns>): HavingMethods<Result, Tables>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=S3GroupBy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S3GroupBy.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S3GroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;IACxG,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,EAEvD,GAAG,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC,QAAQ,CACJ,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,EAEvD,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GACtJ,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S3GroupBy.js","sourceRoot":"","sources":["../../../../src/select/parts/S3GroupBy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AliasedTable, isColumnOkToUse, Key, NotUsingWithPart, SQL_BOOL } from "../../Types";
|
|
2
|
+
import { Expr } from "../../SqlExpression";
|
|
3
|
+
import { OrderByMethods } from "./S5OrderBy";
|
|
4
|
+
import { LimitMethods } from "./S6Limit";
|
|
5
|
+
import { ExecMethods } from "./S7Exec";
|
|
6
|
+
export interface HavingMethods<Result, Tables> extends OrderByMethods<Result, Tables>, LimitMethods<Result>, ExecMethods<Result> {
|
|
7
|
+
having<TableRef, Columns extends (Expr<TableRef, string | unknown, SQL_BOOL>)[]>(...col: isColumnOkToUse<Tables, Columns>): OrderByMethods<Result, Tables>;
|
|
8
|
+
havingF<TableRef, Columns extends Expr<TableRef, string | unknown, SQL_BOOL>[]>(func: (columnsTable: AliasedTable<"(columns)", "(columns)", Result, object, NotUsingWithPart>) => isColumnOkToUse<Tables & Key<"(columns)">, Columns>): OrderByMethods<Result, Tables> & LimitMethods<Result>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=S4Having.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S4Having.d.ts","sourceRoot":"","sources":["../../../../src/select/parts/S4Having.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,MAAM,CAAE,SAAQ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5H,MAAM,CACF,QAAQ,EACR,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,EAE9D,GAAG,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEjC,OAAO,CACH,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,EAE5D,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GACtJ,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;CAC3D"}
|