@stamhoofd/sql 2.35.0 → 2.36.1
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/SQL.d.ts +4 -1
- package/dist/src/SQL.d.ts.map +1 -1
- package/dist/src/SQL.js +8 -0
- package/dist/src/SQL.js.map +1 -1
- package/dist/src/SQLExpressions.d.ts +20 -0
- package/dist/src/SQLExpressions.d.ts.map +1 -1
- package/dist/src/SQLExpressions.js +45 -1
- package/dist/src/SQLExpressions.js.map +1 -1
- package/dist/src/SQLInsert.d.ts +21 -0
- package/dist/src/SQLInsert.d.ts.map +1 -0
- package/dist/src/SQLInsert.js +78 -0
- package/dist/src/SQLInsert.js.map +1 -0
- package/package.json +2 -2
- package/src/SQL.ts +11 -2
- package/src/SQLExpressions.ts +50 -0
- package/src/SQLInsert.ts +109 -0
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -10,4 +10,5 @@ tslib_1.__exportStar(require("./src/SQLSelect"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./src/filters/SQLFilter"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./src/filters/SQLSorter"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./src/SQLOrderBy"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./src/SQLInsert"), exports);
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,8DAAmC;AACnC,+DAAoC;AACpC,mEAAwC;AACxC,yDAA8B;AAC9B,0DAA+B;AAC/B,kEAAuC;AACvC,kEAAuC;AACvC,2DAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,8DAAmC;AACnC,+DAAoC;AACpC,mEAAwC;AACxC,yDAA8B;AAC9B,0DAA+B;AAC/B,kEAAuC;AACvC,kEAAuC;AACvC,2DAAgC;AAChC,0DAA+B"}
|
package/dist/src/SQL.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { SQLResultNamespacedRow } from "@simonbackx/simple-database";
|
|
2
2
|
import { SQLDelete } from "./SQLDelete";
|
|
3
3
|
import { SQLExpression } from "./SQLExpression";
|
|
4
|
-
import { SQLColumnExpression, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
|
|
4
|
+
import { SQLAssignment, SQLColumnExpression, SQLScalarValue, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
|
|
5
5
|
import { SQLJoin } from "./SQLJoin";
|
|
6
6
|
import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
|
|
7
7
|
import { SQLSelect } from "./SQLSelect";
|
|
8
8
|
import { ParseWhereArguments, SQLWhere } from "./SQLWhere";
|
|
9
|
+
import { SQLInsert } from "./SQLInsert";
|
|
9
10
|
declare class StaticSQL {
|
|
10
11
|
wildcard(namespace?: string): SQLWildcardSelectExpression;
|
|
11
12
|
column(namespace: string, column: string): SQLColumnExpression;
|
|
@@ -15,6 +16,8 @@ declare class StaticSQL {
|
|
|
15
16
|
table(namespace: string, table: string): SQLTableExpression;
|
|
16
17
|
table(table: string): SQLTableExpression;
|
|
17
18
|
select(...columns: (SQLExpression | string)[]): InstanceType<typeof SQLSelect<SQLResultNamespacedRow>>;
|
|
19
|
+
insert(tableName: SQLTableExpression | string): InstanceType<typeof SQLInsert>;
|
|
20
|
+
assignment(key: SQLExpression | string, value: SQLExpression | SQLScalarValue): SQLAssignment;
|
|
18
21
|
where(...args: ParseWhereArguments): SQLWhere;
|
|
19
22
|
whereNot(...args: ParseWhereArguments): SQLWhere;
|
|
20
23
|
delete(): InstanceType<typeof SQLDelete>;
|
package/dist/src/SQL.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAmB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAA2B,cAAc,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAChK,OAAO,EAAE,OAAO,EAAe,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAM,SAAS;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQ3C,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAI9D,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa;IAI/D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAQxC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC,aAAa,GAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAOpG,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAC,MAAM,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC;IAI5E,UAAU,CAAC,GAAG,EAAE,aAAa,GAAC,MAAM,EAAE,KAAK,EAAE,aAAa,GAAC,cAAc,GAAG,aAAa;IAIzF,KAAK,CAAC,GAAG,IAAI,EAAE,mBAAmB,GAAG,QAAQ;IAI7C,QAAQ,CAAC,GAAG,IAAI,EAAE,mBAAmB,GAAG,QAAQ;IAIhD,MAAM,IAAI,YAAY,CAAC,OAAO,SAAS,CAAC;IAIxC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAChC,QAAQ,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO;IAK5C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IACjC,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO;IAK7C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IACjC,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO;IAK7C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAC5B,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO;CAI3C;AAED,eAAO,MAAM,GAAG,WAAkB,CAAC"}
|
package/dist/src/SQL.js
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SQL = void 0;
|
|
4
4
|
const SQLDelete_1 = require("./SQLDelete");
|
|
5
|
+
const SQLExpression_1 = require("./SQLExpression");
|
|
5
6
|
const SQLExpressions_1 = require("./SQLExpressions");
|
|
6
7
|
const SQLJoin_1 = require("./SQLJoin");
|
|
7
8
|
const SQLJsonExpressions_1 = require("./SQLJsonExpressions");
|
|
8
9
|
const SQLSelect_1 = require("./SQLSelect");
|
|
9
10
|
const SQLWhere_1 = require("./SQLWhere");
|
|
11
|
+
const SQLInsert_1 = require("./SQLInsert");
|
|
10
12
|
class StaticSQL {
|
|
11
13
|
wildcard(namespace) {
|
|
12
14
|
return new SQLExpressions_1.SQLWildcardSelectExpression(namespace);
|
|
@@ -35,6 +37,12 @@ class StaticSQL {
|
|
|
35
37
|
}
|
|
36
38
|
return new SQLSelect_1.SQLSelect(...columns);
|
|
37
39
|
}
|
|
40
|
+
insert(tableName) {
|
|
41
|
+
return new SQLInsert_1.SQLInsert(tableName);
|
|
42
|
+
}
|
|
43
|
+
assignment(key, value) {
|
|
44
|
+
return new SQLExpressions_1.SQLAssignment(typeof key === 'string' ? new SQLExpressions_1.SQLColumnExpression(key) : key, (0, SQLExpression_1.isSQLExpression)(value) ? value : new SQLExpressions_1.SQLScalar(value));
|
|
45
|
+
}
|
|
38
46
|
where(...args) {
|
|
39
47
|
return new SQLWhere_1.SQLEmptyWhere().and(...args);
|
|
40
48
|
}
|
package/dist/src/SQL.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQL.js","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":";;;AACA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"SQL.js","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,20 @@ export declare class SQLCount implements SQLExpression {
|
|
|
14
14
|
constructor(expression?: SQLExpression | null);
|
|
15
15
|
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
16
16
|
}
|
|
17
|
+
export declare class SQLPlusSign implements SQLExpression {
|
|
18
|
+
getSQL(): SQLQuery;
|
|
19
|
+
}
|
|
20
|
+
export declare class SQLMultiplicationSign implements SQLExpression {
|
|
21
|
+
getSQL(): SQLQuery;
|
|
22
|
+
}
|
|
23
|
+
export declare class SQLMinusSign implements SQLExpression {
|
|
24
|
+
getSQL(): SQLQuery;
|
|
25
|
+
}
|
|
26
|
+
export declare class SQLCalculation implements SQLExpression {
|
|
27
|
+
expressions: SQLExpression[];
|
|
28
|
+
constructor(...expressions: SQLExpression[]);
|
|
29
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
30
|
+
}
|
|
17
31
|
export declare class SQLSum implements SQLExpression {
|
|
18
32
|
expression: SQLExpression;
|
|
19
33
|
constructor(expression: SQLExpression);
|
|
@@ -25,6 +39,12 @@ export declare class SQLSelectAs implements SQLExpression {
|
|
|
25
39
|
constructor(expression: SQLExpression, as: SQLAlias);
|
|
26
40
|
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
27
41
|
}
|
|
42
|
+
export declare class SQLAssignment implements SQLExpression {
|
|
43
|
+
key: SQLExpression;
|
|
44
|
+
value: SQLExpression;
|
|
45
|
+
constructor(key: SQLExpression, value: SQLExpression);
|
|
46
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
47
|
+
}
|
|
28
48
|
export declare class SQLAlias implements SQLExpression {
|
|
29
49
|
name: string;
|
|
30
50
|
constructor(name: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/G,MAAM,MAAM,cAAc,GAAG,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,IAAI,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAC,cAAc,EAAE,GAAC,IAAI,GAAC,aAAa,CAAA;AAErF,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAc/E;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAM3E;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAa/E;AACD,qBAAa,WAAY,YAAW,aAAa;IAC7C,UAAU,EAAE,aAAa,CAAA;gBAEb,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AACD,qBAAa,QAAS,YAAW,aAAa;IAC1C,UAAU,EAAE,aAAa,GAAC,IAAI,CAAA;gBAElB,UAAU,GAAE,aAAa,GAAC,IAAW;IAIjD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;
|
|
1
|
+
{"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/G,MAAM,MAAM,cAAc,GAAG,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,IAAI,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAC,cAAc,EAAE,GAAC,IAAI,GAAC,aAAa,CAAA;AAErF,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAc/E;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAM3E;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAa/E;AACD,qBAAa,WAAY,YAAW,aAAa;IAC7C,UAAU,EAAE,aAAa,CAAA;gBAEb,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AACD,qBAAa,QAAS,YAAW,aAAa;IAC1C,UAAU,EAAE,aAAa,GAAC,IAAI,CAAA;gBAElB,UAAU,GAAE,aAAa,GAAC,IAAW;IAIjD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAED,qBAAa,WAAY,YAAW,aAAa;IAC7C,MAAM,IAAI,QAAQ;CAGrB;AAED,qBAAa,qBAAsB,YAAW,aAAa;IACvD,MAAM,IAAI,QAAQ;CAGrB;AAED,qBAAa,YAAa,YAAW,aAAa;IAC9C,MAAM,IAAI,QAAQ;CAGrB;AAED,qBAAa,cAAe,YAAW,aAAa;IAChD,WAAW,EAAE,aAAa,EAAE,CAAA;gBAEhB,GAAG,WAAW,EAAE,aAAa,EAAE;IAI3C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,MAAO,YAAW,aAAa;IACxC,UAAU,EAAE,aAAa,CAAA;gBAEb,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AACD,qBAAa,WAAY,YAAW,aAAa;IAC7C,UAAU,EAAE,aAAa,CAAA;IACzB,EAAE,EAAE,QAAQ,CAAA;gBAEA,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ;IAKnD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAED,qBAAa,aAAc,YAAW,aAAa;IAC/C,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,EAAE,aAAa,CAAA;gBAER,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAKpD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAGD,qBAAa,QAAS,YAAW,aAAa;IAC1C,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM;IAIxB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAGD,qBAAa,SAAU,YAAW,aAAa;IAC3C,WAAW,EAAE,aAAa,EAAE,CAAC;gBAEjB,GAAG,WAAW,EAAE,aAAa,EAAE;IAI3C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAGD,qBAAa,MAAO,YAAW,aAAa;IACxC,UAAU,EAAE,aAAa,CAAC;gBAEd,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAED,qBAAa,OAAQ,YAAW,aAAa;IACzC,KAAK,EAAE,aAAa,CAAA;IACpB,EAAE,SAAS;gBAEC,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS;IAK7C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD;AAED,qBAAa,YAAa,YAAW,aAAa;IAC9C,KAAK,EAAE,IAAI,GAAC,IAAI,GAAC,KAAK,CAAC;gBAEX,KAAK,EAAE,IAAI,GAAC,IAAI,GAAC,KAAK;IAIlC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,OAAQ,YAAW,aAAa;IACzC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,MAAO,YAAW,aAAa;IACxC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,SAAU,YAAW,aAAa;IAC3C,KAAK,EAAE,cAAc,CAAC;gBAEV,KAAK,EAAE,cAAc;IAIjC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AAED,qBAAa,YAAa,YAAW,aAAa;IAC9C,KAAK,EAAE,MAAM,GAAC,MAAM,CAAC;gBAET,KAAK,EAAE,MAAM,GAAC,MAAM;IAIhC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAGD,qBAAa,QAAS,YAAW,aAAa;IAC1C,KAAK,EAAE,cAAc,EAAE,CAAC;gBAEZ,KAAK,EAAE,cAAc,EAAE;IAInC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AAED,qBAAa,2BAA4B,YAAW,aAAa;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,mBAAoB,YAAW,aAAa;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;gBAEH,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBACjC,MAAM,EAAE,MAAM;IAU1B,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;gBAChC,KAAK,EAAE,MAAM;IAUzB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLCast = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLSelectAs = exports.SQLSum = exports.SQLCount = exports.SQLDistinct = void 0;
|
|
3
|
+
exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLCast = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLAssignment = exports.SQLSelectAs = exports.SQLSum = exports.SQLCalculation = exports.SQLMinusSign = exports.SQLMultiplicationSign = exports.SQLPlusSign = exports.SQLCount = exports.SQLDistinct = void 0;
|
|
4
4
|
exports.scalarToSQLJSONExpression = scalarToSQLJSONExpression;
|
|
5
5
|
exports.scalarToSQLExpression = scalarToSQLExpression;
|
|
6
6
|
exports.readDynamicSQLExpression = readDynamicSQLExpression;
|
|
@@ -63,6 +63,34 @@ class SQLCount {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.SQLCount = SQLCount;
|
|
66
|
+
class SQLPlusSign {
|
|
67
|
+
getSQL() {
|
|
68
|
+
return '+';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.SQLPlusSign = SQLPlusSign;
|
|
72
|
+
class SQLMultiplicationSign {
|
|
73
|
+
getSQL() {
|
|
74
|
+
return '*';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SQLMultiplicationSign = SQLMultiplicationSign;
|
|
78
|
+
class SQLMinusSign {
|
|
79
|
+
getSQL() {
|
|
80
|
+
return '-';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.SQLMinusSign = SQLMinusSign;
|
|
84
|
+
class SQLCalculation {
|
|
85
|
+
expressions;
|
|
86
|
+
constructor(...expressions) {
|
|
87
|
+
this.expressions = expressions;
|
|
88
|
+
}
|
|
89
|
+
getSQL(options) {
|
|
90
|
+
return (0, SQLExpression_1.joinSQLQuery)(this.expressions.map(e => e.getSQL(options)), ' ');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.SQLCalculation = SQLCalculation;
|
|
66
94
|
class SQLSum {
|
|
67
95
|
expression;
|
|
68
96
|
constructor(expression) {
|
|
@@ -93,6 +121,22 @@ class SQLSelectAs {
|
|
|
93
121
|
}
|
|
94
122
|
}
|
|
95
123
|
exports.SQLSelectAs = SQLSelectAs;
|
|
124
|
+
class SQLAssignment {
|
|
125
|
+
key;
|
|
126
|
+
value;
|
|
127
|
+
constructor(key, value) {
|
|
128
|
+
this.key = key;
|
|
129
|
+
this.value = value;
|
|
130
|
+
}
|
|
131
|
+
getSQL(options) {
|
|
132
|
+
return (0, SQLExpression_1.joinSQLQuery)([
|
|
133
|
+
this.key.getSQL(options),
|
|
134
|
+
' = ',
|
|
135
|
+
this.value.getSQL(options)
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.SQLAssignment = SQLAssignment;
|
|
96
140
|
class SQLAlias {
|
|
97
141
|
name;
|
|
98
142
|
constructor(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":";;;AAMA,8DAcC;AAED,sDAMC;AAED,4DAaC;AA3CD,mDAA+G;AAC/G,iEAAoD;AAKpD,SAAgB,yBAAyB,CAAC,CAAsB;IAC5D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED,SAAgB,qBAAqB,CAAC,CAAsB;IACxD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED,SAAgB,wBAAwB,CAAC,CAAuB;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,IAAI,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AACD,MAAa,WAAW;IACpB,UAAU,CAAe;IAEzB,YAAY,UAAyB;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,UAAU;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;SAClC,CAAC,CAAA;IACN,CAAC;CACJ;AAbD,kCAaC;AACD,MAAa,QAAQ;IACjB,UAAU,CAAoB;IAE9B,YAAY,aAAiC,IAAI;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,QAAQ;YACJ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;YAC3D,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAdD,4BAcC;
|
|
1
|
+
{"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
|
|
2
|
+
import { SQLAlias, SQLAssignment, SQLScalarValue, SQLTableExpression } from "./SQLExpressions";
|
|
3
|
+
export declare class SQLInsert implements SQLExpression {
|
|
4
|
+
_columns: SQLExpression[];
|
|
5
|
+
_values: SQLExpression[][];
|
|
6
|
+
_as: SQLAlias | null;
|
|
7
|
+
_into: SQLTableExpression;
|
|
8
|
+
_onDuplicateKeyUpdate: SQLAssignment[] | null;
|
|
9
|
+
constructor(tableName: SQLTableExpression | string);
|
|
10
|
+
clone(): this;
|
|
11
|
+
columns(...columns: (SQLExpression | string)[]): this;
|
|
12
|
+
values(...values: (SQLExpression | SQLScalarValue)[][]): this;
|
|
13
|
+
as(alias: string): this;
|
|
14
|
+
onDuplicateKeyUpdate(...assignments: SQLAssignment[]): this;
|
|
15
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery;
|
|
16
|
+
insert(): Promise<{
|
|
17
|
+
insertId: any;
|
|
18
|
+
affectedRows: number;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=SQLInsert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLInsert.d.ts","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":"AACA,OAAO,EAAoD,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAyB,QAAQ,EAAE,aAAa,EAAuB,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3I,qBAAa,SAAU,YAAW,aAAa;IAC3C,QAAQ,EAAE,aAAa,EAAE,CAAK;IAC9B,OAAO,EAAE,aAAa,EAAE,EAAE,CAAK;IAC/B,GAAG,EAAE,QAAQ,GAAC,IAAI,CAAO;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,qBAAqB,EAAE,aAAa,EAAE,GAAC,IAAI,CAAO;gBAEtC,SAAS,EAAE,kBAAkB,GAAC,MAAM;IAIhD,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC,aAAa,GAAC,MAAM,CAAC,EAAE,GAAG,IAAI;IAKnD,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,aAAa,GAAC,cAAc,CAAC,EAAE,EAAE,GAAG,IAAI;IAY3D,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvB,oBAAoB,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI;IAK3D,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAoD1C,MAAM,IAAI,OAAO,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAC;QAAA,YAAY,EAAE,MAAM,CAAC;KAAC,CAAC;CAQjE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLInsert = void 0;
|
|
4
|
+
const simple_database_1 = require("@simonbackx/simple-database");
|
|
5
|
+
const SQLExpression_1 = require("./SQLExpression");
|
|
6
|
+
const SQLExpressions_1 = require("./SQLExpressions");
|
|
7
|
+
class SQLInsert {
|
|
8
|
+
_columns = [];
|
|
9
|
+
_values = [];
|
|
10
|
+
_as = null;
|
|
11
|
+
_into;
|
|
12
|
+
_onDuplicateKeyUpdate = null;
|
|
13
|
+
constructor(tableName) {
|
|
14
|
+
this._into = typeof tableName === 'string' ? new SQLExpressions_1.SQLTableExpression(tableName) : tableName;
|
|
15
|
+
}
|
|
16
|
+
clone() {
|
|
17
|
+
const c = new SQLInsert(this._into);
|
|
18
|
+
Object.assign(c, this);
|
|
19
|
+
return c;
|
|
20
|
+
}
|
|
21
|
+
columns(...columns) {
|
|
22
|
+
this._columns = columns.map(c => typeof c === 'string' ? new SQLExpressions_1.SQLColumnExpression(c) : c);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
values(...values) {
|
|
26
|
+
this._values = values.map(v => {
|
|
27
|
+
if (v.length !== this._columns.length) {
|
|
28
|
+
throw new Error('Invalid number of values. Expected ' + this._columns.length + ' but got ' + v.length);
|
|
29
|
+
}
|
|
30
|
+
return v.map(c => (0, SQLExpression_1.isSQLExpression)(c) ? c : (0, SQLExpressions_1.scalarToSQLExpression)(c));
|
|
31
|
+
});
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
as(alias) {
|
|
35
|
+
this._as = new SQLExpressions_1.SQLAlias(alias);
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
onDuplicateKeyUpdate(...assignments) {
|
|
39
|
+
this._onDuplicateKeyUpdate = assignments;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
getSQL(options) {
|
|
43
|
+
options = options ?? {};
|
|
44
|
+
options.defaultNamespace = this._into.namespace ?? (this._into).table ?? undefined;
|
|
45
|
+
const query = [
|
|
46
|
+
'INSERT INTO',
|
|
47
|
+
this._into.getSQL(options),
|
|
48
|
+
];
|
|
49
|
+
const columns = this._columns.map(c => c.getSQL(options));
|
|
50
|
+
query.push((0, SQLExpression_1.joinSQLQuery)([
|
|
51
|
+
'(',
|
|
52
|
+
(0, SQLExpression_1.joinSQLQuery)(columns, ', '),
|
|
53
|
+
')'
|
|
54
|
+
]));
|
|
55
|
+
query.push('VALUES');
|
|
56
|
+
query.push((0, SQLExpression_1.joinSQLQuery)(this._values.map(values => (0, SQLExpression_1.joinSQLQuery)([
|
|
57
|
+
'(',
|
|
58
|
+
(0, SQLExpression_1.joinSQLQuery)(values.map(v => v.getSQL(options)), ', '),
|
|
59
|
+
')'
|
|
60
|
+
])), ', '));
|
|
61
|
+
if (this._as !== null) {
|
|
62
|
+
query.push('AS', this._as.getSQL(options));
|
|
63
|
+
}
|
|
64
|
+
if (this._onDuplicateKeyUpdate !== null) {
|
|
65
|
+
query.push('ON DUPLICATE KEY UPDATE');
|
|
66
|
+
query.push((0, SQLExpression_1.joinSQLQuery)(this._onDuplicateKeyUpdate.map(a => a.getSQL(options)), ', '));
|
|
67
|
+
}
|
|
68
|
+
return (0, SQLExpression_1.joinSQLQuery)(query, ' ');
|
|
69
|
+
}
|
|
70
|
+
async insert() {
|
|
71
|
+
const { query, params } = (0, SQLExpression_1.normalizeSQLQuery)(this.getSQL());
|
|
72
|
+
console.log(query, params);
|
|
73
|
+
const result = await simple_database_1.Database.insert(query, params);
|
|
74
|
+
return result[0];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SQLInsert = SQLInsert;
|
|
78
|
+
//# sourceMappingURL=SQLInsert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLInsert.js","sourceRoot":"","sources":["../../src/SQLInsert.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/sql",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.36.1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "209901c6c8bc34d2dab23b1ce26b8aab61f27e9d"
|
|
19
19
|
}
|
package/src/SQL.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { SQLResultNamespacedRow } from "@simonbackx/simple-database";
|
|
2
2
|
import { SQLDelete } from "./SQLDelete";
|
|
3
|
-
import { SQLExpression } from "./SQLExpression";
|
|
4
|
-
import { SQLColumnExpression, SQLSafeValue, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
|
|
3
|
+
import { isSQLExpression, SQLExpression } from "./SQLExpression";
|
|
4
|
+
import { SQLAssignment, SQLColumnExpression, SQLSafeValue, SQLScalar, SQLScalarValue, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
|
|
5
5
|
import { SQLJoin, SQLJoinType } from "./SQLJoin";
|
|
6
6
|
import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
|
|
7
7
|
import { parseTable, SQLSelect } from "./SQLSelect";
|
|
8
8
|
import { ParseWhereArguments, SQLEmptyWhere, SQLWhere } from "./SQLWhere";
|
|
9
|
+
import { SQLInsert } from "./SQLInsert";
|
|
9
10
|
|
|
10
11
|
class StaticSQL {
|
|
11
12
|
wildcard(namespace?: string) {
|
|
@@ -45,6 +46,14 @@ class StaticSQL {
|
|
|
45
46
|
return new SQLSelect(...columns)
|
|
46
47
|
}
|
|
47
48
|
|
|
49
|
+
insert(tableName: SQLTableExpression|string): InstanceType<typeof SQLInsert> {
|
|
50
|
+
return new SQLInsert(tableName)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
assignment(key: SQLExpression|string, value: SQLExpression|SQLScalarValue): SQLAssignment {
|
|
54
|
+
return new SQLAssignment(typeof key === 'string' ? new SQLColumnExpression(key) : key, isSQLExpression(value) ? value : new SQLScalar(value))
|
|
55
|
+
}
|
|
56
|
+
|
|
48
57
|
where(...args: ParseWhereArguments): SQLWhere {
|
|
49
58
|
return new SQLEmptyWhere().and(...args)
|
|
50
59
|
}
|
package/src/SQLExpressions.ts
CHANGED
|
@@ -71,6 +71,37 @@ export class SQLCount implements SQLExpression {
|
|
|
71
71
|
])
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
|
|
75
|
+
export class SQLPlusSign implements SQLExpression {
|
|
76
|
+
getSQL(): SQLQuery {
|
|
77
|
+
return '+'
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export class SQLMultiplicationSign implements SQLExpression {
|
|
82
|
+
getSQL(): SQLQuery {
|
|
83
|
+
return '*'
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export class SQLMinusSign implements SQLExpression {
|
|
88
|
+
getSQL(): SQLQuery {
|
|
89
|
+
return '-'
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export class SQLCalculation implements SQLExpression {
|
|
94
|
+
expressions: SQLExpression[]
|
|
95
|
+
|
|
96
|
+
constructor(...expressions: SQLExpression[]) {
|
|
97
|
+
this.expressions = expressions
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
101
|
+
return joinSQLQuery(this.expressions.map(e => e.getSQL(options)), ' ')
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
74
105
|
export class SQLSum implements SQLExpression {
|
|
75
106
|
expression: SQLExpression
|
|
76
107
|
|
|
@@ -104,6 +135,25 @@ export class SQLSelectAs implements SQLExpression {
|
|
|
104
135
|
}
|
|
105
136
|
}
|
|
106
137
|
|
|
138
|
+
export class SQLAssignment implements SQLExpression {
|
|
139
|
+
key: SQLExpression
|
|
140
|
+
value: SQLExpression
|
|
141
|
+
|
|
142
|
+
constructor(key: SQLExpression, value: SQLExpression) {
|
|
143
|
+
this.key = key
|
|
144
|
+
this.value = value;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
148
|
+
return joinSQLQuery([
|
|
149
|
+
this.key.getSQL(options),
|
|
150
|
+
' = ',
|
|
151
|
+
this.value.getSQL(options)
|
|
152
|
+
])
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
|
|
107
157
|
export class SQLAlias implements SQLExpression {
|
|
108
158
|
name: string;
|
|
109
159
|
|
package/src/SQLInsert.ts
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Database } from "@simonbackx/simple-database";
|
|
2
|
+
import { isSQLExpression, joinSQLQuery, normalizeSQLQuery, SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
|
|
3
|
+
import { scalarToSQLExpression, SQLAlias, SQLAssignment, SQLColumnExpression, SQLScalarValue, SQLTableExpression } from "./SQLExpressions";
|
|
4
|
+
|
|
5
|
+
export class SQLInsert implements SQLExpression {
|
|
6
|
+
_columns: SQLExpression[] = []
|
|
7
|
+
_values: SQLExpression[][] = []
|
|
8
|
+
_as: SQLAlias|null = null
|
|
9
|
+
_into: SQLTableExpression;
|
|
10
|
+
_onDuplicateKeyUpdate: SQLAssignment[]|null = null
|
|
11
|
+
|
|
12
|
+
constructor(tableName: SQLTableExpression|string) {
|
|
13
|
+
this._into = typeof tableName === 'string' ? new SQLTableExpression(tableName) : tableName;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
clone(): this {
|
|
17
|
+
const c = new SQLInsert(this._into)
|
|
18
|
+
Object.assign(c, this);
|
|
19
|
+
return c as any;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
columns(...columns: (SQLExpression|string)[]): this {
|
|
23
|
+
this._columns = columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c ) as any;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
values(...values: (SQLExpression|SQLScalarValue)[][]): this {
|
|
28
|
+
this._values = values.map(v => {
|
|
29
|
+
if (v.length !== this._columns.length) {
|
|
30
|
+
throw new Error('Invalid number of values. Expected ' + this._columns.length + ' but got ' + v.length)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return v.map(c => isSQLExpression(c) ? c : scalarToSQLExpression(c))
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
as(alias: string): this {
|
|
40
|
+
this._as = new SQLAlias(alias);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
onDuplicateKeyUpdate(...assignments: SQLAssignment[]): this {
|
|
45
|
+
this._onDuplicateKeyUpdate = assignments;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
50
|
+
options = options ?? {}
|
|
51
|
+
options.defaultNamespace = (this._into as any).namespace ?? (this._into).table ?? undefined;
|
|
52
|
+
|
|
53
|
+
const query: SQLQuery[] = [
|
|
54
|
+
'INSERT INTO',
|
|
55
|
+
this._into.getSQL(options),
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
const columns = this._columns.map(c => c.getSQL(options))
|
|
59
|
+
query.push(
|
|
60
|
+
joinSQLQuery([
|
|
61
|
+
'(',
|
|
62
|
+
joinSQLQuery(columns, ', '),
|
|
63
|
+
')'
|
|
64
|
+
])
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
query.push(
|
|
68
|
+
'VALUES'
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
query.push(
|
|
72
|
+
joinSQLQuery(
|
|
73
|
+
this._values.map(values =>
|
|
74
|
+
joinSQLQuery([
|
|
75
|
+
'(',
|
|
76
|
+
joinSQLQuery(values.map(v => v.getSQL(options)), ', '),
|
|
77
|
+
')'
|
|
78
|
+
])
|
|
79
|
+
),
|
|
80
|
+
', '
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
if (this._as !== null) {
|
|
85
|
+
query.push(
|
|
86
|
+
'AS',
|
|
87
|
+
this._as.getSQL(options)
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (this._onDuplicateKeyUpdate !== null) {
|
|
92
|
+
query.push('ON DUPLICATE KEY UPDATE')
|
|
93
|
+
query.push(
|
|
94
|
+
joinSQLQuery(this._onDuplicateKeyUpdate.map(a => a.getSQL(options)), ', ')
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return joinSQLQuery(query, ' ');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async insert(): Promise<{insertId: any;affectedRows: number;}> {
|
|
102
|
+
const {query, params} = normalizeSQLQuery(this.getSQL())
|
|
103
|
+
console.log(query, params);
|
|
104
|
+
const result = await Database.insert(query, params);
|
|
105
|
+
return result[0];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
}
|