@stamhoofd/sql 2.1.1 → 2.1.3
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 +661 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/src/SQL.d.ts +56 -0
- package/dist/src/SQL.d.ts.map +1 -0
- package/dist/src/SQL.js +47 -0
- package/dist/src/SQL.js.map +1 -0
- package/dist/src/SQLExpression.d.ts +15 -0
- package/dist/src/SQLExpression.d.ts.map +1 -0
- package/dist/src/SQLExpression.js +23 -0
- package/dist/src/SQLExpression.js.map +1 -0
- package/dist/src/SQLExpressions.d.ts +78 -0
- package/dist/src/SQLExpressions.d.ts.map +1 -0
- package/dist/src/SQLExpressions.js +197 -0
- package/dist/src/SQLExpressions.js.map +1 -0
- package/dist/src/SQLJoin.d.ts +29 -0
- package/dist/src/SQLJoin.d.ts.map +1 -0
- package/dist/src/SQLJoin.js +40 -0
- package/dist/src/SQLJoin.js.map +1 -0
- package/dist/src/SQLJsonExpressions.d.ts +41 -0
- package/dist/src/SQLJsonExpressions.d.ts.map +1 -0
- package/dist/src/SQLJsonExpressions.js +95 -0
- package/dist/src/SQLJsonExpressions.js.map +1 -0
- package/dist/src/SQLOrderBy.d.ts +28 -0
- package/dist/src/SQLOrderBy.d.ts.map +1 -0
- package/dist/src/SQLOrderBy.js +50 -0
- package/dist/src/SQLOrderBy.js.map +1 -0
- package/dist/src/SQLSelect.d.ts +44 -0
- package/dist/src/SQLSelect.d.ts.map +1 -0
- package/dist/src/SQLSelect.js +124 -0
- package/dist/src/SQLSelect.js.map +1 -0
- package/dist/src/SQLWhere.d.ts +92 -0
- package/dist/src/SQLWhere.d.ts.map +1 -0
- package/dist/src/SQLWhere.js +269 -0
- package/dist/src/SQLWhere.js.map +1 -0
- package/dist/src/filters/SQLFilter.d.ts +17 -0
- package/dist/src/filters/SQLFilter.d.ts.map +1 -0
- package/dist/src/filters/SQLFilter.js +187 -0
- package/dist/src/filters/SQLFilter.js.map +1 -0
- package/dist/src/filters/SQLSorter.d.ts +9 -0
- package/dist/src/filters/SQLSorter.d.ts.map +1 -0
- package/dist/src/filters/SQLSorter.js +20 -0
- package/dist/src/filters/SQLSorter.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLJsonOverlaps = exports.SQLJsonContains = exports.SQLJsonSearch = exports.SQLJsonExtract = void 0;
|
|
4
|
+
const SQLExpression_1 = require("./SQLExpression");
|
|
5
|
+
const SQLExpressions_1 = require("./SQLExpressions");
|
|
6
|
+
/**
|
|
7
|
+
* Same as target->path, JSON_EXTRACT(target, path)
|
|
8
|
+
*/
|
|
9
|
+
class SQLJsonExtract {
|
|
10
|
+
constructor(target, path) {
|
|
11
|
+
this.target = target;
|
|
12
|
+
this.path = path;
|
|
13
|
+
}
|
|
14
|
+
getSQL(options) {
|
|
15
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
16
|
+
'JSON_EXTRACT(',
|
|
17
|
+
this.target.getSQL(options),
|
|
18
|
+
',',
|
|
19
|
+
this.path.getSQL(options),
|
|
20
|
+
')'
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.SQLJsonExtract = SQLJsonExtract;
|
|
25
|
+
/**
|
|
26
|
+
* JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
|
|
27
|
+
*/
|
|
28
|
+
class SQLJsonSearch {
|
|
29
|
+
constructor(target, oneOrAll, searchStr, path = null) {
|
|
30
|
+
this.target = target;
|
|
31
|
+
this.oneOrAll = oneOrAll;
|
|
32
|
+
this.searchStr = searchStr;
|
|
33
|
+
this.path = path;
|
|
34
|
+
}
|
|
35
|
+
getSQL(options) {
|
|
36
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
37
|
+
'JSON_SEARCH(',
|
|
38
|
+
this.target.getSQL(options),
|
|
39
|
+
',',
|
|
40
|
+
new SQLExpressions_1.SQLSafeValue(this.oneOrAll).getSQL(options),
|
|
41
|
+
',',
|
|
42
|
+
this.searchStr.getSQL(options),
|
|
43
|
+
...(this.path ? [
|
|
44
|
+
',',
|
|
45
|
+
this.path.getSQL(options)
|
|
46
|
+
] : []),
|
|
47
|
+
')'
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.SQLJsonSearch = SQLJsonSearch;
|
|
52
|
+
/**
|
|
53
|
+
* JSON_CONTAINS(target, candidate[, path])
|
|
54
|
+
*/
|
|
55
|
+
class SQLJsonContains {
|
|
56
|
+
constructor(target, candidate, path = null) {
|
|
57
|
+
this.target = target;
|
|
58
|
+
this.candidate = candidate;
|
|
59
|
+
this.path = path;
|
|
60
|
+
}
|
|
61
|
+
getSQL(options) {
|
|
62
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
63
|
+
'JSON_CONTAINS(',
|
|
64
|
+
this.target.getSQL(options),
|
|
65
|
+
',',
|
|
66
|
+
this.candidate.getSQL(options),
|
|
67
|
+
...(this.path ? [
|
|
68
|
+
',',
|
|
69
|
+
this.path.getSQL(options)
|
|
70
|
+
] : []),
|
|
71
|
+
')'
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.SQLJsonContains = SQLJsonContains;
|
|
76
|
+
/**
|
|
77
|
+
* JSON_CONTAINS(json_doc1, json_doc2)
|
|
78
|
+
*/
|
|
79
|
+
class SQLJsonOverlaps {
|
|
80
|
+
constructor(jsonDoc1, jsonDoc2) {
|
|
81
|
+
this.jsonDoc1 = jsonDoc1;
|
|
82
|
+
this.jsonDoc2 = jsonDoc2;
|
|
83
|
+
}
|
|
84
|
+
getSQL(options) {
|
|
85
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
86
|
+
'JSON_OVERLAPS(',
|
|
87
|
+
this.jsonDoc1.getSQL(options),
|
|
88
|
+
',',
|
|
89
|
+
this.jsonDoc2.getSQL(options),
|
|
90
|
+
')'
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.SQLJsonOverlaps = SQLJsonOverlaps;
|
|
95
|
+
//# sourceMappingURL=SQLJsonExpressions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":";;;AAAA,mDAA8F;AAC9F,qDAAgD;AAEhD;;GAEG;AACH,MAAa,cAAc;IAIvB,YAAY,MAAqB,EAAE,IAAmB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,eAAe;YACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAlBD,wCAkBC;AAED;;GAEG;AACH,MAAa,aAAa;IAMtB,YAAY,MAAqB,EAAE,QAAqB,EAAE,SAAwB,EAAE,OAA2B,IAAI;QAC/G,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,cAAc;YACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,6BAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/C,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC,CAAC,EAAE,CAAC;YACX,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AA5BD,sCA4BC;AAED;;GAEG;AACH,MAAa,eAAe;IAKxB,YAAY,MAAqB,EAAE,SAAwB,EAAE,OAA2B,IAAI;QACxF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,gBAAgB;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC,CAAC,EAAE,CAAC;YACX,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAxBD,0CAwBC;AAGD;;GAEG;AACH,MAAa,eAAe;IAIxB,YAAY,QAAuB,EAAE,QAAuB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,gBAAgB;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YACjC,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAlBD,0CAkBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
|
|
2
|
+
type GConstructor<T = {}> = new (...args: any[]) => T;
|
|
3
|
+
type Orderable = GConstructor<{
|
|
4
|
+
_orderBy: SQLOrderBy | null;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function addOrderByHelpers<TBase extends Orderable>(Base: TBase): {
|
|
7
|
+
new (...args: any[]): {
|
|
8
|
+
orderBy(orderBy: SQLOrderBy): any;
|
|
9
|
+
orderBy(column: SQLExpression, direction?: SQLOrderByDirection): any;
|
|
10
|
+
_orderBy: SQLOrderBy | null;
|
|
11
|
+
};
|
|
12
|
+
} & TBase;
|
|
13
|
+
export type SQLOrderByDirection = 'ASC' | 'DESC';
|
|
14
|
+
export declare class SQLOrderBy implements SQLExpression {
|
|
15
|
+
orderBy: {
|
|
16
|
+
column: SQLExpression;
|
|
17
|
+
direction: SQLOrderByDirection;
|
|
18
|
+
}[];
|
|
19
|
+
constructor(...orderBy: {
|
|
20
|
+
column: SQLExpression;
|
|
21
|
+
direction: SQLOrderByDirection;
|
|
22
|
+
}[]);
|
|
23
|
+
static combine(orderBy: SQLOrderBy[]): SQLOrderBy;
|
|
24
|
+
add(orderBy: SQLOrderBy): void;
|
|
25
|
+
getSQL(options?: SQLExpressionOptions | undefined): SQLQuery;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=SQLOrderBy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLOrderBy.d.ts","sourceRoot":"","sources":["../../src/SQLOrderBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAE9F,KAAK,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,KAAK,SAAS,GAAG,YAAY,CAAC;IAAE,QAAQ,EAAE,UAAU,GAAC,IAAI,CAAA;CAAE,CAAC,CAAC;AAE7D,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,SAAS,EAAE,IAAI,EAAE,KAAK;;yBAG7C,UAAU;wBACX,aAAa,cAAc,mBAAmB;;;UAgBrE;AAGD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,CAAC;AACjD,qBAAa,UAAW,YAAW,aAAa;IAC5C,OAAO,EAAE;QAAC,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAC,EAAE,CAAM;gBAE5D,GAAG,OAAO,EAAE;QAAC,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAC,EAAE;IAIjF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE;IAIpC,GAAG,CAAC,OAAO,EAAE,UAAU;IAIvB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,QAAQ;CAkB/D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLOrderBy = exports.addOrderByHelpers = void 0;
|
|
4
|
+
const SQLExpression_1 = require("./SQLExpression");
|
|
5
|
+
function addOrderByHelpers(Base) {
|
|
6
|
+
return class extends Base {
|
|
7
|
+
orderBy(columnOrOrderBy, direction) {
|
|
8
|
+
let o = columnOrOrderBy;
|
|
9
|
+
if (!(columnOrOrderBy instanceof SQLOrderBy)) {
|
|
10
|
+
o = new SQLOrderBy({ column: columnOrOrderBy, direction: direction !== null && direction !== void 0 ? direction : 'ASC' });
|
|
11
|
+
}
|
|
12
|
+
if (this._orderBy) {
|
|
13
|
+
this._orderBy.add(o);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this._orderBy = o;
|
|
17
|
+
}
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.addOrderByHelpers = addOrderByHelpers;
|
|
23
|
+
class SQLOrderBy {
|
|
24
|
+
constructor(...orderBy) {
|
|
25
|
+
this.orderBy = [];
|
|
26
|
+
this.orderBy = orderBy;
|
|
27
|
+
}
|
|
28
|
+
static combine(orderBy) {
|
|
29
|
+
return new SQLOrderBy(...orderBy.flatMap(o => o.orderBy));
|
|
30
|
+
}
|
|
31
|
+
add(orderBy) {
|
|
32
|
+
this.orderBy.push(...orderBy.orderBy);
|
|
33
|
+
}
|
|
34
|
+
getSQL(options) {
|
|
35
|
+
if (this.orderBy.length === 0) {
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
39
|
+
'ORDER BY ',
|
|
40
|
+
(0, SQLExpression_1.joinSQLQuery)(this.orderBy.map(o => {
|
|
41
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
42
|
+
o.column.getSQL(options),
|
|
43
|
+
o.direction
|
|
44
|
+
], ' ');
|
|
45
|
+
}), ', ')
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.SQLOrderBy = SQLOrderBy;
|
|
50
|
+
//# sourceMappingURL=SQLOrderBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLOrderBy.js","sourceRoot":"","sources":["../../src/SQLOrderBy.ts"],"names":[],"mappings":";;;AAAA,mDAA8F;AAK9F,SAAgB,iBAAiB,CAA0B,IAAW;IAClE,OAAO,KAAM,SAAQ,IAAI;QAIrB,OAAO,CAAC,eAA8B,EAAE,SAA+B;YACnE,IAAI,CAAC,GAAG,eAA6B,CAAA;YACrC,IAAI,CAAC,CAAC,eAAe,YAAY,UAAU,CAAC,EAAE,CAAC;gBAC3C,CAAC,GAAG,IAAI,UAAU,CAAC,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,EAAC,CAAC,CAAA;YAChF,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAA;AACL,CAAC;AApBD,8CAoBC;AAID,MAAa,UAAU;IAGnB,YAAY,GAAG,OAAkE;QAFjF,YAAO,GAA8D,EAAE,CAAC;QAGpE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAqB;QAChC,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,GAAG,CAAC,OAAmB;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,OAA0C;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,IAAA,4BAAY,EAAC;YAChB,WAAW;YACX,IAAA,4BAAY,EACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjB,OAAO,IAAA,4BAAY,EAAC;oBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBACxB,CAAC,CAAC,SAAS;iBACd,EAAE,GAAG,CAAC,CAAA;YACX,CAAC,CAAC,EACF,IAAI,CACP;SACJ,CAAC,CAAA;IACN,CAAC;CACJ;AAjCD,gCAiCC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
|
|
2
|
+
import { SQLOrderBy } from "./SQLOrderBy";
|
|
3
|
+
import { SQLWhere } from "./SQLWhere";
|
|
4
|
+
import { SQLResultNamespacedRow } from "@simonbackx/simple-database";
|
|
5
|
+
import { SQLJoin } from './SQLJoin';
|
|
6
|
+
declare class SelectBase implements SQLExpression {
|
|
7
|
+
_columns: SQLExpression[];
|
|
8
|
+
_from: SQLExpression;
|
|
9
|
+
_limit: number | null;
|
|
10
|
+
_offset: number | null;
|
|
11
|
+
_where: SQLWhere | null;
|
|
12
|
+
_orderBy: SQLOrderBy | null;
|
|
13
|
+
_joins: (InstanceType<typeof SQLJoin>)[];
|
|
14
|
+
constructor(...columns: SQLExpression[]);
|
|
15
|
+
clone(): this;
|
|
16
|
+
from(table: SQLExpression): this;
|
|
17
|
+
join(join: InstanceType<typeof SQLJoin>): this;
|
|
18
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
19
|
+
limit(limit: number | null, offset?: number | null): this;
|
|
20
|
+
fetch(): Promise<SQLResultNamespacedRow[]>;
|
|
21
|
+
first(required: false): Promise<SQLResultNamespacedRow | null>;
|
|
22
|
+
first(required: true): Promise<SQLResultNamespacedRow>;
|
|
23
|
+
count(): Promise<number>;
|
|
24
|
+
}
|
|
25
|
+
export declare const SQLSelect: {
|
|
26
|
+
new (...args: any[]): {
|
|
27
|
+
orderBy(orderBy: SQLOrderBy): any;
|
|
28
|
+
orderBy(column: SQLExpression, direction?: import("./SQLOrderBy").SQLOrderByDirection | undefined): any;
|
|
29
|
+
_orderBy: SQLOrderBy | null;
|
|
30
|
+
};
|
|
31
|
+
} & {
|
|
32
|
+
new (...args: any[]): {
|
|
33
|
+
parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): SQLWhere;
|
|
34
|
+
where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
|
|
35
|
+
andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
|
|
36
|
+
orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
|
|
37
|
+
whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
|
|
38
|
+
andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
|
|
39
|
+
orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
|
|
40
|
+
_where: SQLWhere | null;
|
|
41
|
+
};
|
|
42
|
+
} & typeof SelectBase;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=SQLSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLSelect.d.ts","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAmC,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAW,sBAAsB,EAAC,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,cAAM,UAAW,YAAW,aAAa;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,aAAa,CAAC;IAErB,MAAM,EAAE,MAAM,GAAC,IAAI,CAAQ;IAC3B,OAAO,EAAE,MAAM,GAAC,IAAI,CAAQ;IAE5B,MAAM,EAAE,QAAQ,GAAC,IAAI,CAAQ;IAC7B,QAAQ,EAAE,UAAU,GAAC,IAAI,CAAQ;IACjC,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,CAAM;gBAElC,GAAG,OAAO,EAAE,aAAa,EAAE;IAIvC,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKhC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC,GAAG,IAAI;IAK9C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAyChD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAC,IAAI,EAAE,MAAM,GAAE,MAAM,GAAC,IAAW,GAAG,IAAI;IAMrD,KAAK,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA0BhD,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,sBAAsB,GAAC,IAAI,CAAC;IAC5D,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYhD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CA8BjC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;qBAErB,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLSelect = void 0;
|
|
4
|
+
const SQLExpression_1 = require("./SQLExpression");
|
|
5
|
+
const SQLOrderBy_1 = require("./SQLOrderBy");
|
|
6
|
+
const SQLWhere_1 = require("./SQLWhere");
|
|
7
|
+
const simple_database_1 = require("@simonbackx/simple-database");
|
|
8
|
+
const SQLExpressions_1 = require("./SQLExpressions");
|
|
9
|
+
class SelectBase {
|
|
10
|
+
constructor(...columns) {
|
|
11
|
+
this._limit = null;
|
|
12
|
+
this._offset = null;
|
|
13
|
+
this._where = null;
|
|
14
|
+
this._orderBy = null;
|
|
15
|
+
this._joins = [];
|
|
16
|
+
this._columns = columns;
|
|
17
|
+
}
|
|
18
|
+
clone() {
|
|
19
|
+
const c = new exports.SQLSelect(...this._columns);
|
|
20
|
+
Object.assign(c, this);
|
|
21
|
+
return c;
|
|
22
|
+
}
|
|
23
|
+
from(table) {
|
|
24
|
+
this._from = table;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
join(join) {
|
|
28
|
+
this._joins.push(join);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
getSQL(options) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
const query = [
|
|
34
|
+
'SELECT'
|
|
35
|
+
];
|
|
36
|
+
options = options !== null && options !== void 0 ? options : {};
|
|
37
|
+
options.defaultNamespace = (_b = (_a = this._from.namespace) !== null && _a !== void 0 ? _a : this._from.table) !== null && _b !== void 0 ? _b : undefined;
|
|
38
|
+
const columns = this._columns.map(c => c.getSQL(options));
|
|
39
|
+
query.push((0, SQLExpression_1.joinSQLQuery)(columns, ', '));
|
|
40
|
+
query.push('FROM');
|
|
41
|
+
query.push(this._from.getSQL(options));
|
|
42
|
+
query.push(...this._joins.map(j => j.getSQL(options)));
|
|
43
|
+
if (this._where) {
|
|
44
|
+
query.push('WHERE');
|
|
45
|
+
query.push(this._where.getSQL(options));
|
|
46
|
+
}
|
|
47
|
+
if (this._orderBy) {
|
|
48
|
+
query.push(this._orderBy.getSQL(options));
|
|
49
|
+
}
|
|
50
|
+
if (this._limit !== null) {
|
|
51
|
+
query.push('LIMIT ' + this._limit);
|
|
52
|
+
if (this._offset !== null && this._offset !== 0) {
|
|
53
|
+
query.push('OFFSET ' + this._offset);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return (0, SQLExpression_1.joinSQLQuery)(query, ' ');
|
|
57
|
+
}
|
|
58
|
+
limit(limit, offset = null) {
|
|
59
|
+
this._limit = limit;
|
|
60
|
+
this._offset = offset;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
async fetch() {
|
|
64
|
+
var _a;
|
|
65
|
+
const { query, params } = (0, SQLExpression_1.normalizeSQLQuery)(this.getSQL());
|
|
66
|
+
console.log(query, params);
|
|
67
|
+
const [rows] = await simple_database_1.Database.select(query, params, { nestTables: true });
|
|
68
|
+
// Now map aggregated queries to the correct namespace
|
|
69
|
+
for (const row of rows) {
|
|
70
|
+
if (row['']) {
|
|
71
|
+
for (const column in row['']) {
|
|
72
|
+
const splitted = column.split('__');
|
|
73
|
+
if (splitted.length <= 1) {
|
|
74
|
+
console.warn('Aggregated column without namespace', column);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const namespace = splitted[0];
|
|
78
|
+
const name = splitted[1];
|
|
79
|
+
row[namespace] = (_a = row[namespace]) !== null && _a !== void 0 ? _a : {};
|
|
80
|
+
row[namespace][name] = row[''][column];
|
|
81
|
+
}
|
|
82
|
+
delete row[''];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return rows;
|
|
86
|
+
}
|
|
87
|
+
async first(required = true) {
|
|
88
|
+
const rows = await this.limit(1).fetch();
|
|
89
|
+
if (rows.length === 0) {
|
|
90
|
+
if (required) {
|
|
91
|
+
throw new Error('Required ' + this._from);
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return rows[0];
|
|
96
|
+
}
|
|
97
|
+
async count() {
|
|
98
|
+
this._columns = [
|
|
99
|
+
new SQLExpressions_1.SQLSelectAs(new SQLExpressions_1.SQLCount(), new SQLExpressions_1.SQLAlias('c'))
|
|
100
|
+
];
|
|
101
|
+
this._offset = null;
|
|
102
|
+
this._limit = null;
|
|
103
|
+
this._orderBy = null;
|
|
104
|
+
const { query, params } = (0, SQLExpression_1.normalizeSQLQuery)(this.getSQL());
|
|
105
|
+
console.log(query, params);
|
|
106
|
+
const [rows] = await simple_database_1.Database.select(query, params, { nestTables: true });
|
|
107
|
+
if (rows.length === 1) {
|
|
108
|
+
const row = rows[0];
|
|
109
|
+
if ('' in row) {
|
|
110
|
+
const namespaced = row[''];
|
|
111
|
+
if ('c' in namespaced) {
|
|
112
|
+
const value = namespaced['c'];
|
|
113
|
+
if (typeof value === 'number' && Number.isInteger(value)) {
|
|
114
|
+
return value;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
console.warn('Invalid count SQL response', rows);
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.SQLSelect = (0, SQLOrderBy_1.addOrderByHelpers)((0, SQLWhere_1.addWhereHelpers)(SelectBase));
|
|
124
|
+
//# sourceMappingURL=SQLSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLSelect.js","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
|
|
2
|
+
import { SQLDynamicExpression } from "./SQLExpressions";
|
|
3
|
+
type GConstructor<T = {}> = new (...args: any[]) => T;
|
|
4
|
+
type Whereable = GConstructor<{
|
|
5
|
+
_where: SQLWhere | null;
|
|
6
|
+
}>;
|
|
7
|
+
export type ParseWhereArguments = [
|
|
8
|
+
where: SQLWhere
|
|
9
|
+
] | [
|
|
10
|
+
whereOrColumn: SQLExpression,
|
|
11
|
+
sign: SQLWhereSign,
|
|
12
|
+
value: SQLDynamicExpression
|
|
13
|
+
] | [
|
|
14
|
+
whereOrColumn: SQLExpression,
|
|
15
|
+
value: SQLDynamicExpression
|
|
16
|
+
];
|
|
17
|
+
export declare function addWhereHelpers<TBase extends Whereable>(Base: TBase): {
|
|
18
|
+
new (...args: any[]): {
|
|
19
|
+
parseWhere(...[whereOrColumn, signOrValue, value]: ParseWhereArguments): SQLWhere;
|
|
20
|
+
where<T>(this: T, ...args: ParseWhereArguments): T;
|
|
21
|
+
andWhere(...args: ParseWhereArguments): any;
|
|
22
|
+
orWhere(...args: ParseWhereArguments): any;
|
|
23
|
+
whereNot(...args: ParseWhereArguments): any;
|
|
24
|
+
andWhereNot(...args: ParseWhereArguments): any;
|
|
25
|
+
orWhereNot(...args: ParseWhereArguments): any;
|
|
26
|
+
_where: SQLWhere | null;
|
|
27
|
+
};
|
|
28
|
+
} & TBase;
|
|
29
|
+
export declare abstract class SQLWhere implements SQLExpression {
|
|
30
|
+
and(...where: SQLWhere[]): SQLWhere;
|
|
31
|
+
or(...where: SQLWhere[]): SQLWhere;
|
|
32
|
+
get isSingle(): boolean;
|
|
33
|
+
abstract getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
34
|
+
}
|
|
35
|
+
export declare enum SQLWhereSign {
|
|
36
|
+
Equal = "=",
|
|
37
|
+
Greater = ">",
|
|
38
|
+
Less = "<",
|
|
39
|
+
NotEqual = "!="
|
|
40
|
+
}
|
|
41
|
+
export declare class SQLWhereEqual extends SQLWhere {
|
|
42
|
+
column: SQLExpression;
|
|
43
|
+
sign: SQLWhereSign;
|
|
44
|
+
value: SQLExpression;
|
|
45
|
+
constructor(column: SQLExpression, sign: SQLWhereSign, value: SQLExpression);
|
|
46
|
+
constructor(column: SQLExpression, value: SQLExpression);
|
|
47
|
+
clone(): this;
|
|
48
|
+
get isSingle(): boolean;
|
|
49
|
+
inverted(): this;
|
|
50
|
+
invert(): this;
|
|
51
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
52
|
+
}
|
|
53
|
+
export declare class SQLWhereLike extends SQLWhere {
|
|
54
|
+
column: SQLExpression;
|
|
55
|
+
notLike: boolean;
|
|
56
|
+
value: SQLExpression;
|
|
57
|
+
constructor(column: SQLExpression, value: SQLExpression);
|
|
58
|
+
static escape(str: string): string;
|
|
59
|
+
clone(): this;
|
|
60
|
+
get isSingle(): boolean;
|
|
61
|
+
inverted(): this;
|
|
62
|
+
invert(): this;
|
|
63
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
64
|
+
}
|
|
65
|
+
export declare class SQLWhereExists extends SQLWhere {
|
|
66
|
+
subquery: SQLExpression;
|
|
67
|
+
notExists: boolean;
|
|
68
|
+
constructor(subquery: SQLExpression);
|
|
69
|
+
clone(): this;
|
|
70
|
+
get isSingle(): boolean;
|
|
71
|
+
inverted(): this;
|
|
72
|
+
invert(): this;
|
|
73
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
74
|
+
}
|
|
75
|
+
export declare class SQLWhereAnd extends SQLWhere {
|
|
76
|
+
children: SQLWhere[];
|
|
77
|
+
constructor(children: SQLWhere[]);
|
|
78
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
79
|
+
}
|
|
80
|
+
export declare class SQLWhereOr extends SQLWhere {
|
|
81
|
+
children: SQLWhere[];
|
|
82
|
+
constructor(children: SQLWhere[]);
|
|
83
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
84
|
+
}
|
|
85
|
+
export declare class SQLWhereNot extends SQLWhere {
|
|
86
|
+
a: SQLWhere;
|
|
87
|
+
constructor(a: SQLWhere);
|
|
88
|
+
get isSingle(): boolean;
|
|
89
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=SQLWhere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLWhere.d.ts","sourceRoot":"","sources":["../../src/SQLWhere.ts"],"names":[],"mappings":"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"}
|