@spinajs/orm 2.0.180 → 2.0.181

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.
Files changed (91) hide show
  1. package/lib/cjs/builders.d.ts +643 -643
  2. package/lib/cjs/builders.js +1602 -1602
  3. package/lib/cjs/builders.js.map +1 -1
  4. package/lib/cjs/converters.d.ts +34 -34
  5. package/lib/cjs/converters.js +104 -104
  6. package/lib/cjs/decorators.d.ts +152 -152
  7. package/lib/cjs/decorators.js +449 -449
  8. package/lib/cjs/dehydrators.d.ts +10 -10
  9. package/lib/cjs/dehydrators.js +47 -47
  10. package/lib/cjs/driver.d.ts +82 -82
  11. package/lib/cjs/driver.js +102 -102
  12. package/lib/cjs/driver.js.map +1 -1
  13. package/lib/cjs/enums.d.ts +116 -116
  14. package/lib/cjs/enums.js +126 -126
  15. package/lib/cjs/enums.js.map +1 -1
  16. package/lib/cjs/exceptions.d.ts +6 -6
  17. package/lib/cjs/exceptions.js +10 -10
  18. package/lib/cjs/hydrators.d.ts +19 -19
  19. package/lib/cjs/hydrators.js +132 -132
  20. package/lib/cjs/hydrators.js.map +1 -1
  21. package/lib/cjs/index.d.ts +17 -17
  22. package/lib/cjs/index.js +33 -33
  23. package/lib/cjs/interfaces.d.ts +919 -919
  24. package/lib/cjs/interfaces.js +279 -279
  25. package/lib/cjs/interfaces.js.map +1 -1
  26. package/lib/cjs/middlewares.d.ts +62 -62
  27. package/lib/cjs/middlewares.js +258 -258
  28. package/lib/cjs/model.d.ts +284 -284
  29. package/lib/cjs/model.js +810 -810
  30. package/lib/cjs/orm.d.ts +61 -61
  31. package/lib/cjs/orm.js +333 -333
  32. package/lib/cjs/orm.js.map +1 -1
  33. package/lib/cjs/relation-objects.d.ts +108 -108
  34. package/lib/cjs/relation-objects.js +221 -221
  35. package/lib/cjs/relations.d.ts +61 -61
  36. package/lib/cjs/relations.js +194 -194
  37. package/lib/cjs/relations.js.map +1 -1
  38. package/lib/cjs/statements.d.ts +143 -143
  39. package/lib/cjs/statements.js +309 -309
  40. package/lib/cjs/statements.js.map +1 -1
  41. package/lib/cjs/types.d.ts +32 -32
  42. package/lib/cjs/types.js +2 -2
  43. package/lib/cjs/wrappers.d.ts +5 -5
  44. package/lib/cjs/wrappers.js +12 -12
  45. package/lib/mjs/builders.d.ts +643 -643
  46. package/lib/mjs/builders.js +1594 -1594
  47. package/lib/mjs/builders.js.map +1 -1
  48. package/lib/mjs/converters.d.ts +34 -34
  49. package/lib/mjs/converters.js +96 -96
  50. package/lib/mjs/decorators.d.ts +152 -152
  51. package/lib/mjs/decorators.js +422 -422
  52. package/lib/mjs/dehydrators.d.ts +10 -10
  53. package/lib/mjs/dehydrators.js +41 -41
  54. package/lib/mjs/driver.d.ts +82 -82
  55. package/lib/mjs/driver.js +98 -98
  56. package/lib/mjs/driver.js.map +1 -1
  57. package/lib/mjs/enums.d.ts +116 -116
  58. package/lib/mjs/enums.js +123 -123
  59. package/lib/mjs/enums.js.map +1 -1
  60. package/lib/mjs/exceptions.d.ts +6 -6
  61. package/lib/mjs/exceptions.js +6 -6
  62. package/lib/mjs/hydrators.d.ts +19 -19
  63. package/lib/mjs/hydrators.js +128 -128
  64. package/lib/mjs/hydrators.js.map +1 -1
  65. package/lib/mjs/index.d.ts +17 -17
  66. package/lib/mjs/index.js +17 -17
  67. package/lib/mjs/interfaces.d.ts +919 -919
  68. package/lib/mjs/interfaces.js +267 -267
  69. package/lib/mjs/interfaces.js.map +1 -1
  70. package/lib/mjs/middlewares.d.ts +62 -62
  71. package/lib/mjs/middlewares.js +249 -249
  72. package/lib/mjs/model.d.ts +284 -284
  73. package/lib/mjs/model.js +800 -800
  74. package/lib/mjs/orm.d.ts +61 -61
  75. package/lib/mjs/orm.js +326 -326
  76. package/lib/mjs/orm.js.map +1 -1
  77. package/lib/mjs/relation-objects.d.ts +108 -108
  78. package/lib/mjs/relation-objects.js +211 -211
  79. package/lib/mjs/relations.d.ts +61 -61
  80. package/lib/mjs/relations.js +191 -191
  81. package/lib/mjs/relations.js.map +1 -1
  82. package/lib/mjs/statements.d.ts +143 -143
  83. package/lib/mjs/statements.js +301 -301
  84. package/lib/mjs/statements.js.map +1 -1
  85. package/lib/mjs/types.d.ts +32 -32
  86. package/lib/mjs/types.js +1 -1
  87. package/lib/mjs/wrappers.d.ts +5 -5
  88. package/lib/mjs/wrappers.js +9 -9
  89. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  90. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  91. package/package.json +5 -5
@@ -1,310 +1,310 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ColumnMethodStatement = exports.ColumnRawStatement = exports.ColumnStatement = exports.InSetStatement = exports.ExistsQueryStatement = exports.SelectQueryStatement = exports.InStatement = exports.JoinStatement = exports.DateTimeWrapper = exports.DateWrapper = exports.WrapStatement = exports.Wrap = exports.WhereStatement = exports.WhereQueryStatement = exports.BetweenStatement = exports.GroupByStatement = exports.WithRecursiveStatement = exports.RawQueryStatement = exports.QueryStatement = void 0;
16
- const enums_js_1 = require("./enums.js");
17
- const di_1 = require("@spinajs/di");
18
- const lodash_1 = __importDefault(require("lodash"));
19
- const model_js_1 = require("./model.js");
20
- const exceptions_js_1 = require("./exceptions.js");
21
- class QueryStatement {
22
- get TableAlias() {
23
- return this._tableAlias;
24
- }
25
- set TableAlias(alias) {
26
- this._tableAlias = alias;
27
- }
28
- constructor(tableAlias) {
29
- this._tableAlias = tableAlias;
30
- }
31
- }
32
- exports.QueryStatement = QueryStatement;
33
- let RawQueryStatement = class RawQueryStatement extends QueryStatement {
34
- constructor(query, bindings) {
35
- super();
36
- this._query = query || '';
37
- this._bindings = bindings || [];
38
- }
39
- };
40
- RawQueryStatement = __decorate([
41
- (0, di_1.NewInstance)(),
42
- __metadata("design:paramtypes", [String, Array])
43
- ], RawQueryStatement);
44
- exports.RawQueryStatement = RawQueryStatement;
45
- let WithRecursiveStatement = class WithRecursiveStatement extends QueryStatement {
46
- constructor(container, _name, _query, _rcKeyName, _pkName) {
47
- super(null);
48
- this.container = container;
49
- this._name = _name;
50
- this._query = _query;
51
- this._rcKeyName = _rcKeyName;
52
- this._pkName = _pkName;
53
- }
54
- };
55
- WithRecursiveStatement = __decorate([
56
- (0, di_1.NewInstance)(),
57
- (0, di_1.Inject)(di_1.Container),
58
- __metadata("design:paramtypes", [Object, String, Function, String, String])
59
- ], WithRecursiveStatement);
60
- exports.WithRecursiveStatement = WithRecursiveStatement;
61
- let GroupByStatement = class GroupByStatement extends QueryStatement {
62
- constructor(expression, tableAlias) {
63
- super(tableAlias);
64
- this._expr = expression || null;
65
- }
66
- };
67
- GroupByStatement = __decorate([
68
- (0, di_1.NewInstance)(),
69
- __metadata("design:paramtypes", [Object, String])
70
- ], GroupByStatement);
71
- exports.GroupByStatement = GroupByStatement;
72
- let BetweenStatement = class BetweenStatement extends QueryStatement {
73
- constructor(column, val, not, tableAlias) {
74
- super(tableAlias);
75
- this._val = val || [];
76
- this._not = not || false;
77
- this._column = column || '';
78
- }
79
- };
80
- BetweenStatement = __decorate([
81
- (0, di_1.NewInstance)(),
82
- __metadata("design:paramtypes", [String, Array, Boolean, String])
83
- ], BetweenStatement);
84
- exports.BetweenStatement = BetweenStatement;
85
- let WhereQueryStatement = class WhereQueryStatement extends QueryStatement {
86
- constructor(builder, tableAlias) {
87
- super(tableAlias);
88
- this._builder = builder;
89
- }
90
- };
91
- WhereQueryStatement = __decorate([
92
- (0, di_1.NewInstance)(),
93
- __metadata("design:paramtypes", [Function, String])
94
- ], WhereQueryStatement);
95
- exports.WhereQueryStatement = WhereQueryStatement;
96
- let WhereStatement = class WhereStatement extends QueryStatement {
97
- get Column() {
98
- return this._column;
99
- }
100
- get Operator() {
101
- return this._operator;
102
- }
103
- get Value() {
104
- return this._value;
105
- }
106
- constructor(column, operator, value, tableAlias, container, model) {
107
- super(tableAlias);
108
- this._column = column;
109
- this._operator = operator;
110
- this._value = value;
111
- this._container = container;
112
- this._model = model;
113
- }
114
- };
115
- WhereStatement = __decorate([
116
- (0, di_1.NewInstance)(),
117
- __metadata("design:paramtypes", [String, String, Object, String, di_1.Container, Object])
118
- ], WhereStatement);
119
- exports.WhereStatement = WhereStatement;
120
- let Wrap = class Wrap {
121
- constructor(column, wrapper) {
122
- this.Column = column;
123
- this.Wrapper = wrapper;
124
- }
125
- };
126
- Wrap = __decorate([
127
- (0, di_1.NewInstance)(),
128
- __metadata("design:paramtypes", [String, Object])
129
- ], Wrap);
130
- exports.Wrap = Wrap;
131
- let WrapStatement = class WrapStatement {
132
- constructor(value, tableAlias) {
133
- this._tableAlias = tableAlias;
134
- this._value = value;
135
- }
136
- };
137
- WrapStatement = __decorate([
138
- (0, di_1.NewInstance)(),
139
- __metadata("design:paramtypes", [Object, String])
140
- ], WrapStatement);
141
- exports.WrapStatement = WrapStatement;
142
- let DateWrapper = class DateWrapper extends WrapStatement {
143
- };
144
- DateWrapper = __decorate([
145
- (0, di_1.NewInstance)()
146
- ], DateWrapper);
147
- exports.DateWrapper = DateWrapper;
148
- let DateTimeWrapper = class DateTimeWrapper extends WrapStatement {
149
- };
150
- DateTimeWrapper = __decorate([
151
- (0, di_1.NewInstance)()
152
- ], DateTimeWrapper);
153
- exports.DateTimeWrapper = DateTimeWrapper;
154
- let JoinStatement = class JoinStatement extends QueryStatement {
155
- constructor(builder, sourceModel, table, method, foreignKey, primaryKey, alias, tableAlias, database) {
156
- super(tableAlias);
157
- this._method = method;
158
- this._builder = builder;
159
- if (lodash_1.default.isString(foreignKey)) {
160
- this._foreignKey = foreignKey;
161
- }
162
- if (lodash_1.default.isString(table)) {
163
- this._table = table;
164
- this._primaryKey = primaryKey;
165
- this._alias = tableAlias;
166
- this._tableAlias = alias;
167
- this._database = database;
168
- }
169
- else if (table.constructor.name === 'RawQuery') {
170
- this._query = table;
171
- }
172
- else {
173
- this._model = table;
174
- this._sourceModel = sourceModel;
175
- const sDesc = (0, model_js_1.extractModelDescriptor)(this._sourceModel);
176
- const tDesc = (0, model_js_1.extractModelDescriptor)(this._model);
177
- const sAlias = `${sDesc.Driver.Options.AliasSeparator}${sDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
178
- this._tableAlias = `${sDesc.Driver.Options.AliasSeparator}${tDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
179
- this._database = tDesc.Driver.Options.Database;
180
- if (!this._builder.TableAlias) {
181
- this._builder.setAlias(sAlias);
182
- }
183
- if (lodash_1.default.isFunction(foreignKey)) {
184
- this._whereCallback = foreignKey;
185
- const driver = this._builder.Driver;
186
- const cnt = driver.Container;
187
- this._database = driver.Options.Database;
188
- this._whereBuilder = cnt.resolve('SelectQueryBuilder', [driver, this._model, this]);
189
- this._whereBuilder.setAlias(this._tableAlias);
190
- this._whereCallback.call(this._whereBuilder, [this]);
191
- this._builder.mergeBuilder(this._whereBuilder);
192
- }
193
- const relation = Array.from(sDesc.Relations, ([key, value]) => ({ key, value })).find((x) => x.value.TargetModel.name === this._model.name);
194
- if (!relation) {
195
- throw new exceptions_js_1.OrmException(`Cannot find relation between ${this._model.name} and ${this._sourceModel.name}, thus cannot perform join statement`);
196
- }
197
- this._table = tDesc.TableName;
198
- this._primaryKey = relation.value.ForeignKey;
199
- this._alias = sAlias;
200
- this._foreignKey = sDesc.PrimaryKey;
201
- }
202
- }
203
- };
204
- JoinStatement = __decorate([
205
- (0, di_1.NewInstance)(),
206
- __metadata("design:paramtypes", [Function, Object, Object, String, Object, String, String, String, String])
207
- ], JoinStatement);
208
- exports.JoinStatement = JoinStatement;
209
- let InStatement = class InStatement extends QueryStatement {
210
- constructor(column, val, not, tableAlias) {
211
- super(tableAlias);
212
- this._val = val || [];
213
- this._not = not || false;
214
- this._column = column || '';
215
- }
216
- };
217
- InStatement = __decorate([
218
- (0, di_1.NewInstance)(),
219
- __metadata("design:paramtypes", [String, Array, Boolean, String])
220
- ], InStatement);
221
- exports.InStatement = InStatement;
222
- let SelectQueryStatement = class SelectQueryStatement extends QueryStatement {
223
- constructor(builder, tableAlias) {
224
- super(tableAlias);
225
- this._builder = builder;
226
- }
227
- };
228
- SelectQueryStatement = __decorate([
229
- (0, di_1.NewInstance)(),
230
- __metadata("design:paramtypes", [Function, String])
231
- ], SelectQueryStatement);
232
- exports.SelectQueryStatement = SelectQueryStatement;
233
- let ExistsQueryStatement = class ExistsQueryStatement extends SelectQueryStatement {
234
- constructor(builder, not) {
235
- super(builder);
236
- this._not = not || false;
237
- }
238
- };
239
- ExistsQueryStatement = __decorate([
240
- (0, di_1.NewInstance)(),
241
- __metadata("design:paramtypes", [Function, Boolean])
242
- ], ExistsQueryStatement);
243
- exports.ExistsQueryStatement = ExistsQueryStatement;
244
- let InSetStatement = class InSetStatement extends QueryStatement {
245
- constructor(column, val, not, tableAlias) {
246
- super(tableAlias);
247
- this._val = val || [];
248
- this._not = not || false;
249
- this._column = column || '';
250
- }
251
- };
252
- InSetStatement = __decorate([
253
- (0, di_1.NewInstance)(),
254
- __metadata("design:paramtypes", [String, Array, Boolean, String])
255
- ], InSetStatement);
256
- exports.InSetStatement = InSetStatement;
257
- let ColumnStatement = class ColumnStatement extends QueryStatement {
258
- constructor(column, alias, tableAlias, descriptor) {
259
- super(tableAlias);
260
- this._column = column || '';
261
- this._alias = alias || '';
262
- this._tableAlias = tableAlias;
263
- this._descriptor = descriptor;
264
- }
265
- get Descriptor() {
266
- return this._descriptor;
267
- }
268
- get Column() {
269
- return this._column;
270
- }
271
- get Alias() {
272
- return this._alias;
273
- }
274
- get TableAlias() {
275
- return this._tableAlias;
276
- }
277
- set TableAlias(alias) {
278
- this._tableAlias = alias;
279
- }
280
- get IsWildcard() {
281
- if (this._column.constructor.name === 'RawQuery') {
282
- return false;
283
- }
284
- return this._column && this._column.trim() === '*';
285
- }
286
- };
287
- ColumnStatement = __decorate([
288
- (0, di_1.NewInstance)(),
289
- __metadata("design:paramtypes", [Object, String, String, Object])
290
- ], ColumnStatement);
291
- exports.ColumnStatement = ColumnStatement;
292
- class ColumnRawStatement extends QueryStatement {
293
- constructor(RawQuery) {
294
- super();
295
- this.RawQuery = RawQuery;
296
- }
297
- }
298
- exports.ColumnRawStatement = ColumnRawStatement;
299
- let ColumnMethodStatement = class ColumnMethodStatement extends ColumnStatement {
300
- constructor(column, method, alias, tableAlias) {
301
- super(column, alias, tableAlias, null);
302
- this._method = method;
303
- }
304
- };
305
- ColumnMethodStatement = __decorate([
306
- (0, di_1.NewInstance)(),
307
- __metadata("design:paramtypes", [String, String, String, String])
308
- ], ColumnMethodStatement);
309
- exports.ColumnMethodStatement = ColumnMethodStatement;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ColumnMethodStatement = exports.ColumnRawStatement = exports.ColumnStatement = exports.InSetStatement = exports.ExistsQueryStatement = exports.SelectQueryStatement = exports.InStatement = exports.JoinStatement = exports.DateTimeWrapper = exports.DateWrapper = exports.WrapStatement = exports.Wrap = exports.WhereStatement = exports.WhereQueryStatement = exports.BetweenStatement = exports.GroupByStatement = exports.WithRecursiveStatement = exports.RawQueryStatement = exports.QueryStatement = void 0;
16
+ const enums_js_1 = require("./enums.js");
17
+ const di_1 = require("@spinajs/di");
18
+ const lodash_1 = __importDefault(require("lodash"));
19
+ const model_js_1 = require("./model.js");
20
+ const exceptions_js_1 = require("./exceptions.js");
21
+ class QueryStatement {
22
+ get TableAlias() {
23
+ return this._tableAlias;
24
+ }
25
+ set TableAlias(alias) {
26
+ this._tableAlias = alias;
27
+ }
28
+ constructor(tableAlias) {
29
+ this._tableAlias = tableAlias;
30
+ }
31
+ }
32
+ exports.QueryStatement = QueryStatement;
33
+ let RawQueryStatement = class RawQueryStatement extends QueryStatement {
34
+ constructor(query, bindings) {
35
+ super();
36
+ this._query = query || '';
37
+ this._bindings = bindings || [];
38
+ }
39
+ };
40
+ exports.RawQueryStatement = RawQueryStatement;
41
+ exports.RawQueryStatement = RawQueryStatement = __decorate([
42
+ (0, di_1.NewInstance)(),
43
+ __metadata("design:paramtypes", [String, Array])
44
+ ], RawQueryStatement);
45
+ let WithRecursiveStatement = class WithRecursiveStatement extends QueryStatement {
46
+ constructor(container, _name, _query, _rcKeyName, _pkName) {
47
+ super(null);
48
+ this.container = container;
49
+ this._name = _name;
50
+ this._query = _query;
51
+ this._rcKeyName = _rcKeyName;
52
+ this._pkName = _pkName;
53
+ }
54
+ };
55
+ exports.WithRecursiveStatement = WithRecursiveStatement;
56
+ exports.WithRecursiveStatement = WithRecursiveStatement = __decorate([
57
+ (0, di_1.NewInstance)(),
58
+ (0, di_1.Inject)(di_1.Container),
59
+ __metadata("design:paramtypes", [Object, String, Function, String, String])
60
+ ], WithRecursiveStatement);
61
+ let GroupByStatement = class GroupByStatement extends QueryStatement {
62
+ constructor(expression, tableAlias) {
63
+ super(tableAlias);
64
+ this._expr = expression || null;
65
+ }
66
+ };
67
+ exports.GroupByStatement = GroupByStatement;
68
+ exports.GroupByStatement = GroupByStatement = __decorate([
69
+ (0, di_1.NewInstance)(),
70
+ __metadata("design:paramtypes", [Object, String])
71
+ ], GroupByStatement);
72
+ let BetweenStatement = class BetweenStatement extends QueryStatement {
73
+ constructor(column, val, not, tableAlias) {
74
+ super(tableAlias);
75
+ this._val = val || [];
76
+ this._not = not || false;
77
+ this._column = column || '';
78
+ }
79
+ };
80
+ exports.BetweenStatement = BetweenStatement;
81
+ exports.BetweenStatement = BetweenStatement = __decorate([
82
+ (0, di_1.NewInstance)(),
83
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
84
+ ], BetweenStatement);
85
+ let WhereQueryStatement = class WhereQueryStatement extends QueryStatement {
86
+ constructor(builder, tableAlias) {
87
+ super(tableAlias);
88
+ this._builder = builder;
89
+ }
90
+ };
91
+ exports.WhereQueryStatement = WhereQueryStatement;
92
+ exports.WhereQueryStatement = WhereQueryStatement = __decorate([
93
+ (0, di_1.NewInstance)(),
94
+ __metadata("design:paramtypes", [Function, String])
95
+ ], WhereQueryStatement);
96
+ let WhereStatement = class WhereStatement extends QueryStatement {
97
+ get Column() {
98
+ return this._column;
99
+ }
100
+ get Operator() {
101
+ return this._operator;
102
+ }
103
+ get Value() {
104
+ return this._value;
105
+ }
106
+ constructor(column, operator, value, tableAlias, container, model) {
107
+ super(tableAlias);
108
+ this._column = column;
109
+ this._operator = operator;
110
+ this._value = value;
111
+ this._container = container;
112
+ this._model = model;
113
+ }
114
+ };
115
+ exports.WhereStatement = WhereStatement;
116
+ exports.WhereStatement = WhereStatement = __decorate([
117
+ (0, di_1.NewInstance)(),
118
+ __metadata("design:paramtypes", [String, String, Object, String, di_1.Container, Object])
119
+ ], WhereStatement);
120
+ let Wrap = class Wrap {
121
+ constructor(column, wrapper) {
122
+ this.Column = column;
123
+ this.Wrapper = wrapper;
124
+ }
125
+ };
126
+ exports.Wrap = Wrap;
127
+ exports.Wrap = Wrap = __decorate([
128
+ (0, di_1.NewInstance)(),
129
+ __metadata("design:paramtypes", [String, Object])
130
+ ], Wrap);
131
+ let WrapStatement = class WrapStatement {
132
+ constructor(value, tableAlias) {
133
+ this._tableAlias = tableAlias;
134
+ this._value = value;
135
+ }
136
+ };
137
+ exports.WrapStatement = WrapStatement;
138
+ exports.WrapStatement = WrapStatement = __decorate([
139
+ (0, di_1.NewInstance)(),
140
+ __metadata("design:paramtypes", [Object, String])
141
+ ], WrapStatement);
142
+ let DateWrapper = class DateWrapper extends WrapStatement {
143
+ };
144
+ exports.DateWrapper = DateWrapper;
145
+ exports.DateWrapper = DateWrapper = __decorate([
146
+ (0, di_1.NewInstance)()
147
+ ], DateWrapper);
148
+ let DateTimeWrapper = class DateTimeWrapper extends WrapStatement {
149
+ };
150
+ exports.DateTimeWrapper = DateTimeWrapper;
151
+ exports.DateTimeWrapper = DateTimeWrapper = __decorate([
152
+ (0, di_1.NewInstance)()
153
+ ], DateTimeWrapper);
154
+ let JoinStatement = class JoinStatement extends QueryStatement {
155
+ constructor(builder, sourceModel, table, method, foreignKey, primaryKey, alias, tableAlias, database) {
156
+ super(tableAlias);
157
+ this._method = method;
158
+ this._builder = builder;
159
+ if (lodash_1.default.isString(foreignKey)) {
160
+ this._foreignKey = foreignKey;
161
+ }
162
+ if (lodash_1.default.isString(table)) {
163
+ this._table = table;
164
+ this._primaryKey = primaryKey;
165
+ this._alias = tableAlias;
166
+ this._tableAlias = alias;
167
+ this._database = database;
168
+ }
169
+ else if (table.constructor.name === 'RawQuery') {
170
+ this._query = table;
171
+ }
172
+ else {
173
+ this._model = table;
174
+ this._sourceModel = sourceModel;
175
+ const sDesc = (0, model_js_1.extractModelDescriptor)(this._sourceModel);
176
+ const tDesc = (0, model_js_1.extractModelDescriptor)(this._model);
177
+ const sAlias = `${sDesc.Driver.Options.AliasSeparator}${sDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
178
+ this._tableAlias = `${sDesc.Driver.Options.AliasSeparator}${tDesc.Name}${sDesc.Driver.Options.AliasSeparator}`;
179
+ this._database = tDesc.Driver.Options.Database;
180
+ if (!this._builder.TableAlias) {
181
+ this._builder.setAlias(sAlias);
182
+ }
183
+ if (lodash_1.default.isFunction(foreignKey)) {
184
+ this._whereCallback = foreignKey;
185
+ const driver = this._builder.Driver;
186
+ const cnt = driver.Container;
187
+ this._database = driver.Options.Database;
188
+ this._whereBuilder = cnt.resolve('SelectQueryBuilder', [driver, this._model, this]);
189
+ this._whereBuilder.setAlias(this._tableAlias);
190
+ this._whereCallback.call(this._whereBuilder, [this]);
191
+ this._builder.mergeBuilder(this._whereBuilder);
192
+ }
193
+ const relation = Array.from(sDesc.Relations, ([key, value]) => ({ key, value })).find((x) => x.value.TargetModel.name === this._model.name);
194
+ if (!relation) {
195
+ throw new exceptions_js_1.OrmException(`Cannot find relation between ${this._model.name} and ${this._sourceModel.name}, thus cannot perform join statement`);
196
+ }
197
+ this._table = tDesc.TableName;
198
+ this._primaryKey = relation.value.ForeignKey;
199
+ this._alias = sAlias;
200
+ this._foreignKey = sDesc.PrimaryKey;
201
+ }
202
+ }
203
+ };
204
+ exports.JoinStatement = JoinStatement;
205
+ exports.JoinStatement = JoinStatement = __decorate([
206
+ (0, di_1.NewInstance)(),
207
+ __metadata("design:paramtypes", [Function, Object, Object, String, Object, String, String, String, String])
208
+ ], JoinStatement);
209
+ let InStatement = class InStatement extends QueryStatement {
210
+ constructor(column, val, not, tableAlias) {
211
+ super(tableAlias);
212
+ this._val = val || [];
213
+ this._not = not || false;
214
+ this._column = column || '';
215
+ }
216
+ };
217
+ exports.InStatement = InStatement;
218
+ exports.InStatement = InStatement = __decorate([
219
+ (0, di_1.NewInstance)(),
220
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
221
+ ], InStatement);
222
+ let SelectQueryStatement = class SelectQueryStatement extends QueryStatement {
223
+ constructor(builder, tableAlias) {
224
+ super(tableAlias);
225
+ this._builder = builder;
226
+ }
227
+ };
228
+ exports.SelectQueryStatement = SelectQueryStatement;
229
+ exports.SelectQueryStatement = SelectQueryStatement = __decorate([
230
+ (0, di_1.NewInstance)(),
231
+ __metadata("design:paramtypes", [Function, String])
232
+ ], SelectQueryStatement);
233
+ let ExistsQueryStatement = class ExistsQueryStatement extends SelectQueryStatement {
234
+ constructor(builder, not) {
235
+ super(builder);
236
+ this._not = not || false;
237
+ }
238
+ };
239
+ exports.ExistsQueryStatement = ExistsQueryStatement;
240
+ exports.ExistsQueryStatement = ExistsQueryStatement = __decorate([
241
+ (0, di_1.NewInstance)(),
242
+ __metadata("design:paramtypes", [Function, Boolean])
243
+ ], ExistsQueryStatement);
244
+ let InSetStatement = class InSetStatement extends QueryStatement {
245
+ constructor(column, val, not, tableAlias) {
246
+ super(tableAlias);
247
+ this._val = val || [];
248
+ this._not = not || false;
249
+ this._column = column || '';
250
+ }
251
+ };
252
+ exports.InSetStatement = InSetStatement;
253
+ exports.InSetStatement = InSetStatement = __decorate([
254
+ (0, di_1.NewInstance)(),
255
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
256
+ ], InSetStatement);
257
+ let ColumnStatement = class ColumnStatement extends QueryStatement {
258
+ constructor(column, alias, tableAlias, descriptor) {
259
+ super(tableAlias);
260
+ this._column = column || '';
261
+ this._alias = alias || '';
262
+ this._tableAlias = tableAlias;
263
+ this._descriptor = descriptor;
264
+ }
265
+ get Descriptor() {
266
+ return this._descriptor;
267
+ }
268
+ get Column() {
269
+ return this._column;
270
+ }
271
+ get Alias() {
272
+ return this._alias;
273
+ }
274
+ get TableAlias() {
275
+ return this._tableAlias;
276
+ }
277
+ set TableAlias(alias) {
278
+ this._tableAlias = alias;
279
+ }
280
+ get IsWildcard() {
281
+ if (this._column.constructor.name === 'RawQuery') {
282
+ return false;
283
+ }
284
+ return this._column && this._column.trim() === '*';
285
+ }
286
+ };
287
+ exports.ColumnStatement = ColumnStatement;
288
+ exports.ColumnStatement = ColumnStatement = __decorate([
289
+ (0, di_1.NewInstance)(),
290
+ __metadata("design:paramtypes", [Object, String, String, Object])
291
+ ], ColumnStatement);
292
+ class ColumnRawStatement extends QueryStatement {
293
+ constructor(RawQuery) {
294
+ super();
295
+ this.RawQuery = RawQuery;
296
+ }
297
+ }
298
+ exports.ColumnRawStatement = ColumnRawStatement;
299
+ let ColumnMethodStatement = class ColumnMethodStatement extends ColumnStatement {
300
+ constructor(column, method, alias, tableAlias) {
301
+ super(column, alias, tableAlias, null);
302
+ this._method = method;
303
+ }
304
+ };
305
+ exports.ColumnMethodStatement = ColumnMethodStatement;
306
+ exports.ColumnMethodStatement = ColumnMethodStatement = __decorate([
307
+ (0, di_1.NewInstance)(),
308
+ __metadata("design:paramtypes", [String, String, String, String])
309
+ ], ColumnMethodStatement);
310
310
  //# sourceMappingURL=statements.js.map