@spinajs/orm 1.0.60 → 1.2.32

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/README.md +11 -2
  2. package/lib/builders.d.ts +30 -23
  3. package/lib/builders.js +74 -195
  4. package/lib/builders.js.map +1 -1
  5. package/lib/decorators.d.ts +18 -19
  6. package/lib/decorators.js +30 -30
  7. package/lib/decorators.js.map +1 -1
  8. package/lib/driver.d.ts +10 -9
  9. package/lib/driver.js +10 -20
  10. package/lib/driver.js.map +1 -1
  11. package/lib/exceptions.d.ts +6 -0
  12. package/lib/exceptions.js +11 -0
  13. package/lib/exceptions.js.map +1 -0
  14. package/lib/helpers.js +2 -2
  15. package/lib/helpers.js.map +1 -1
  16. package/lib/hydrators.d.ts +4 -4
  17. package/lib/hydrators.js +6 -6
  18. package/lib/hydrators.js.map +1 -1
  19. package/lib/index.d.ts +0 -1
  20. package/lib/index.js +1 -2
  21. package/lib/index.js.map +1 -1
  22. package/lib/interfaces.d.ts +19 -27
  23. package/lib/interfaces.js +14 -14
  24. package/lib/interfaces.js.map +1 -1
  25. package/lib/log-common/src/index.d.ts +180 -0
  26. package/lib/log-common/src/index.js +49 -0
  27. package/lib/log-common/src/index.js.map +1 -0
  28. package/lib/model.d.ts +55 -53
  29. package/lib/model.js +132 -149
  30. package/lib/model.js.map +1 -1
  31. package/lib/orm/src/builders.d.ts +429 -0
  32. package/lib/orm/src/builders.js +1082 -0
  33. package/lib/orm/src/builders.js.map +1 -0
  34. package/lib/orm/src/cli.d.ts +1 -0
  35. package/lib/orm/src/cli.js +2 -0
  36. package/lib/orm/src/cli.js.map +1 -0
  37. package/lib/orm/src/converters.d.ts +9 -0
  38. package/lib/orm/src/converters.js +22 -0
  39. package/lib/orm/src/converters.js.map +1 -0
  40. package/lib/orm/src/decorators.d.ts +122 -0
  41. package/lib/orm/src/decorators.js +380 -0
  42. package/lib/orm/src/decorators.js.map +1 -0
  43. package/lib/orm/src/driver.d.ts +77 -0
  44. package/lib/orm/src/driver.js +84 -0
  45. package/lib/orm/src/driver.js.map +1 -0
  46. package/lib/orm/src/enums.d.ts +111 -0
  47. package/lib/orm/src/enums.js +122 -0
  48. package/lib/orm/src/enums.js.map +1 -0
  49. package/lib/orm/src/exceptions.d.ts +6 -0
  50. package/lib/orm/src/exceptions.js +11 -0
  51. package/lib/orm/src/exceptions.js.map +1 -0
  52. package/lib/orm/src/hydrators.d.ts +16 -0
  53. package/lib/orm/src/hydrators.js +70 -0
  54. package/lib/orm/src/hydrators.js.map +1 -0
  55. package/lib/orm/src/index.d.ts +12 -0
  56. package/lib/orm/src/index.js +25 -0
  57. package/lib/orm/src/index.js.map +1 -0
  58. package/lib/orm/src/interfaces.d.ts +615 -0
  59. package/lib/orm/src/interfaces.js +186 -0
  60. package/lib/orm/src/interfaces.js.map +1 -0
  61. package/lib/orm/src/model.d.ts +135 -0
  62. package/lib/orm/src/model.js +449 -0
  63. package/lib/orm/src/model.js.map +1 -0
  64. package/lib/orm/src/orm.d.ts +59 -0
  65. package/lib/orm/src/orm.js +278 -0
  66. package/lib/orm/src/orm.js.map +1 -0
  67. package/lib/orm/src/relations.d.ts +96 -0
  68. package/lib/orm/src/relations.js +503 -0
  69. package/lib/orm/src/relations.js.map +1 -0
  70. package/lib/orm/src/statements.d.ts +132 -0
  71. package/lib/orm/src/statements.js +257 -0
  72. package/lib/orm/src/statements.js.map +1 -0
  73. package/lib/orm/src/types.d.ts +2 -0
  74. package/lib/orm/src/types.js +3 -0
  75. package/lib/orm/src/types.js.map +1 -0
  76. package/lib/orm/src/wrappers.d.ts +5 -0
  77. package/lib/orm/src/wrappers.js +13 -0
  78. package/lib/orm/src/wrappers.js.map +1 -0
  79. package/lib/orm.d.ts +9 -9
  80. package/lib/orm.js +69 -47
  81. package/lib/orm.js.map +1 -1
  82. package/lib/relations.d.ts +14 -13
  83. package/lib/relations.js +60 -81
  84. package/lib/relations.js.map +1 -1
  85. package/lib/statements.d.ts +1 -1
  86. package/lib/statements.js +19 -21
  87. package/lib/statements.js.map +1 -1
  88. package/lib/wrappers.d.ts +1 -1
  89. package/lib/wrappers.js.map +1 -1
  90. package/package.json +37 -61
  91. package/LICENSE +0 -674
@@ -0,0 +1,257 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ 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;
13
+ /* eslint-disable prettier/prettier */
14
+ const builders_1 = require("./builders");
15
+ const enums_1 = require("./enums");
16
+ const di_1 = require("@spinajs/di");
17
+ const _ = require("lodash");
18
+ class QueryStatement {
19
+ constructor(tableAlias) {
20
+ this._tableAlias = tableAlias;
21
+ }
22
+ get TableAlias() {
23
+ return this._tableAlias;
24
+ }
25
+ set TableAlias(alias) {
26
+ this._tableAlias = alias;
27
+ }
28
+ }
29
+ exports.QueryStatement = QueryStatement;
30
+ let RawQueryStatement = class RawQueryStatement extends QueryStatement {
31
+ constructor(query, bindings) {
32
+ super();
33
+ this._query = query || '';
34
+ this._bindings = bindings || [];
35
+ }
36
+ };
37
+ RawQueryStatement = __decorate([
38
+ (0, di_1.NewInstance)(),
39
+ __metadata("design:paramtypes", [String, Array])
40
+ ], RawQueryStatement);
41
+ exports.RawQueryStatement = RawQueryStatement;
42
+ let WithRecursiveStatement = class WithRecursiveStatement extends QueryStatement {
43
+ constructor(_name, _query, _rcKeyName, _pkName) {
44
+ super(null);
45
+ this._name = _name;
46
+ this._query = _query;
47
+ this._rcKeyName = _rcKeyName;
48
+ this._pkName = _pkName;
49
+ }
50
+ };
51
+ WithRecursiveStatement = __decorate([
52
+ (0, di_1.NewInstance)(),
53
+ __metadata("design:paramtypes", [String, builders_1.SelectQueryBuilder, String, String])
54
+ ], WithRecursiveStatement);
55
+ exports.WithRecursiveStatement = WithRecursiveStatement;
56
+ let GroupByStatement = class GroupByStatement extends QueryStatement {
57
+ constructor(expression, tableAlias) {
58
+ super(tableAlias);
59
+ this._expr = expression || null;
60
+ }
61
+ };
62
+ GroupByStatement = __decorate([
63
+ (0, di_1.NewInstance)(),
64
+ __metadata("design:paramtypes", [Object, String])
65
+ ], GroupByStatement);
66
+ exports.GroupByStatement = GroupByStatement;
67
+ let BetweenStatement = class BetweenStatement extends QueryStatement {
68
+ constructor(column, val, not, tableAlias) {
69
+ super(tableAlias);
70
+ this._val = val || [];
71
+ this._not = not || false;
72
+ this._column = column || '';
73
+ }
74
+ };
75
+ BetweenStatement = __decorate([
76
+ (0, di_1.NewInstance)(),
77
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
78
+ ], BetweenStatement);
79
+ exports.BetweenStatement = BetweenStatement;
80
+ let WhereQueryStatement = class WhereQueryStatement extends QueryStatement {
81
+ constructor(builder, tableAlias) {
82
+ super(tableAlias);
83
+ this._builder = builder;
84
+ }
85
+ };
86
+ WhereQueryStatement = __decorate([
87
+ (0, di_1.NewInstance)(),
88
+ __metadata("design:paramtypes", [builders_1.WhereBuilder, String])
89
+ ], WhereQueryStatement);
90
+ exports.WhereQueryStatement = WhereQueryStatement;
91
+ let WhereStatement = class WhereStatement extends QueryStatement {
92
+ constructor(column, operator, value, tableAlias, container) {
93
+ super(tableAlias);
94
+ this._column = column;
95
+ this._operator = operator;
96
+ this._value = value;
97
+ this._container = container;
98
+ }
99
+ };
100
+ WhereStatement = __decorate([
101
+ (0, di_1.NewInstance)(),
102
+ __metadata("design:paramtypes", [String, String, Object, String, di_1.Container])
103
+ ], WhereStatement);
104
+ exports.WhereStatement = WhereStatement;
105
+ class Wrap {
106
+ constructor(column, wrapper) {
107
+ this.Column = column;
108
+ this.Wrapper = wrapper;
109
+ }
110
+ }
111
+ exports.Wrap = Wrap;
112
+ let WrapStatement = class WrapStatement {
113
+ constructor(value, tableAlias) {
114
+ this._tableAlias = tableAlias;
115
+ this._value = value;
116
+ }
117
+ };
118
+ WrapStatement = __decorate([
119
+ (0, di_1.NewInstance)(),
120
+ __metadata("design:paramtypes", [Object, String])
121
+ ], WrapStatement);
122
+ exports.WrapStatement = WrapStatement;
123
+ let DateWrapper = class DateWrapper extends WrapStatement {
124
+ };
125
+ DateWrapper = __decorate([
126
+ (0, di_1.NewInstance)()
127
+ ], DateWrapper);
128
+ exports.DateWrapper = DateWrapper;
129
+ let DateTimeWrapper = class DateTimeWrapper extends WrapStatement {
130
+ };
131
+ DateTimeWrapper = __decorate([
132
+ (0, di_1.NewInstance)()
133
+ ], DateTimeWrapper);
134
+ exports.DateTimeWrapper = DateTimeWrapper;
135
+ let JoinStatement = class JoinStatement extends QueryStatement {
136
+ constructor(table, method, foreignKey, primaryKey, alias, tableAlias) {
137
+ super(tableAlias);
138
+ this._method = method;
139
+ if (_.isString(table)) {
140
+ this._table = table;
141
+ this._foreignKey = foreignKey;
142
+ this._primaryKey = primaryKey;
143
+ this._alias = alias;
144
+ this._tableAlias = tableAlias;
145
+ }
146
+ else {
147
+ this._query = table;
148
+ }
149
+ }
150
+ };
151
+ JoinStatement = __decorate([
152
+ (0, di_1.NewInstance)(),
153
+ __metadata("design:paramtypes", [Object, String, String, String, String, String])
154
+ ], JoinStatement);
155
+ exports.JoinStatement = JoinStatement;
156
+ let InStatement = class InStatement extends QueryStatement {
157
+ constructor(column, val, not, tableAlias) {
158
+ super(tableAlias);
159
+ this._val = val || [];
160
+ this._not = not || false;
161
+ this._column = column || '';
162
+ }
163
+ };
164
+ InStatement = __decorate([
165
+ (0, di_1.NewInstance)(),
166
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
167
+ ], InStatement);
168
+ exports.InStatement = InStatement;
169
+ let SelectQueryStatement = class SelectQueryStatement extends QueryStatement {
170
+ constructor(builder, tableAlias) {
171
+ super(tableAlias);
172
+ this._builder = builder;
173
+ }
174
+ };
175
+ SelectQueryStatement = __decorate([
176
+ (0, di_1.NewInstance)(),
177
+ __metadata("design:paramtypes", [builders_1.SelectQueryBuilder, String])
178
+ ], SelectQueryStatement);
179
+ exports.SelectQueryStatement = SelectQueryStatement;
180
+ let ExistsQueryStatement = class ExistsQueryStatement extends SelectQueryStatement {
181
+ constructor(builder, not) {
182
+ super(builder);
183
+ this._not = not || false;
184
+ }
185
+ };
186
+ ExistsQueryStatement = __decorate([
187
+ (0, di_1.NewInstance)(),
188
+ __metadata("design:paramtypes", [builders_1.SelectQueryBuilder, Boolean])
189
+ ], ExistsQueryStatement);
190
+ exports.ExistsQueryStatement = ExistsQueryStatement;
191
+ let InSetStatement = class InSetStatement extends QueryStatement {
192
+ constructor(column, val, not, tableAlias) {
193
+ super(tableAlias);
194
+ this._val = val || [];
195
+ this._not = not || false;
196
+ this._column = column || '';
197
+ }
198
+ };
199
+ InSetStatement = __decorate([
200
+ (0, di_1.NewInstance)(),
201
+ __metadata("design:paramtypes", [String, Array, Boolean, String])
202
+ ], InSetStatement);
203
+ exports.InSetStatement = InSetStatement;
204
+ let ColumnStatement = class ColumnStatement extends QueryStatement {
205
+ constructor(column, alias, tableAlias, descriptor) {
206
+ super(tableAlias);
207
+ this._column = column || '';
208
+ this._alias = alias || '';
209
+ this._tableAlias = tableAlias;
210
+ this._descriptor = descriptor;
211
+ }
212
+ get Descriptor() {
213
+ return this._descriptor;
214
+ }
215
+ get Column() {
216
+ return this._column;
217
+ }
218
+ get Alias() {
219
+ return this._alias;
220
+ }
221
+ get TableAlias() {
222
+ return this._tableAlias;
223
+ }
224
+ set TableAlias(alias) {
225
+ this._tableAlias = alias;
226
+ }
227
+ get IsWildcard() {
228
+ if (this._column instanceof builders_1.RawQuery) {
229
+ return false;
230
+ }
231
+ return this._column && this._column.trim() === '*';
232
+ }
233
+ };
234
+ ColumnStatement = __decorate([
235
+ (0, di_1.NewInstance)(),
236
+ __metadata("design:paramtypes", [Object, String, String, Object])
237
+ ], ColumnStatement);
238
+ exports.ColumnStatement = ColumnStatement;
239
+ class ColumnRawStatement extends QueryStatement {
240
+ constructor(RawQuery) {
241
+ super();
242
+ this.RawQuery = RawQuery;
243
+ }
244
+ }
245
+ exports.ColumnRawStatement = ColumnRawStatement;
246
+ let ColumnMethodStatement = class ColumnMethodStatement extends ColumnStatement {
247
+ constructor(column, method, alias, tableAlias) {
248
+ super(column, alias, tableAlias, null);
249
+ this._method = method;
250
+ }
251
+ };
252
+ ColumnMethodStatement = __decorate([
253
+ (0, di_1.NewInstance)(),
254
+ __metadata("design:paramtypes", [String, String, String, String])
255
+ ], ColumnMethodStatement);
256
+ exports.ColumnMethodStatement = ColumnMethodStatement;
257
+ //# sourceMappingURL=statements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statements.js","sourceRoot":"","sources":["../../../src/statements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IWhereBuilder } from './interfaces';
2
+ export declare type WhereFunction = (this: IWhereBuilder) => IWhereBuilder;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Wrap } from './statements';
2
+ export declare const Wrapper: {
3
+ Date: (val: any) => Wrap;
4
+ DateTime: (val: any) => Wrap;
5
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Wrapper = void 0;
4
+ const statements_1 = require("./statements");
5
+ exports.Wrapper = {
6
+ Date: (val) => {
7
+ return new statements_1.Wrap(val, statements_1.DateWrapper);
8
+ },
9
+ DateTime: (val) => {
10
+ return new statements_1.Wrap(val, statements_1.DateTimeWrapper);
11
+ },
12
+ };
13
+ //# sourceMappingURL=wrappers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../../src/wrappers.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAErD,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;QACjB,OAAO,IAAI,iBAAI,CAAC,GAAG,EAAE,wBAAW,CAAC,CAAC;IACpC,CAAC;IACD,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE;QACrB,OAAO,IAAI,iBAAI,CAAC,GAAG,EAAE,4BAAe,CAAC,CAAC;IACxC,CAAC;CACF,CAAC"}
package/lib/orm.d.ts CHANGED
@@ -1,29 +1,29 @@
1
1
  import { Configuration } from '@spinajs/configuration';
2
- import { AsyncModule, IContainer } from '@spinajs/di';
2
+ import { AsyncModule, Container, Class } from '@spinajs/di';
3
3
  import { Log } from '@spinajs/log';
4
4
  import { ClassInfo } from '@spinajs/reflection';
5
5
  import { OrmMigration } from './interfaces';
6
6
  import { ModelBase } from './model';
7
7
  import { OrmDriver } from './driver';
8
8
  export declare class Orm extends AsyncModule {
9
- Models: Array<ClassInfo<ModelBase<any>>>;
9
+ Models: Array<ClassInfo<ModelBase>>;
10
10
  Migrations: Array<ClassInfo<OrmMigration>>;
11
11
  Connections: Map<string, OrmDriver>;
12
- Container: IContainer;
12
+ Container: Container;
13
13
  protected Log: Log;
14
14
  protected Configuration: Configuration;
15
15
  /**
16
16
  *
17
17
  * Migrates schema up ( fill function is not executed )
18
18
  *
19
- * @param name migration file name
19
+ * @param name - migration file name
20
20
  */
21
21
  migrateUp(name?: string): Promise<void>;
22
22
  /**
23
23
  *
24
24
  * Migrates schema up ( fill function is not executed )
25
25
  *
26
- * @param name migration file name
26
+ * @param name - migration file name
27
27
  */
28
28
  migrateDown(name?: string): Promise<void>;
29
29
  /**
@@ -31,7 +31,7 @@ export declare class Orm extends AsyncModule {
31
31
  * ORM always try to load table at resolve time
32
32
  */
33
33
  reloadTableInfo(): Promise<void>;
34
- resolveAsync(container: IContainer): Promise<void>;
34
+ resolveAsync(): Promise<void>;
35
35
  /**
36
36
  *
37
37
  * Register model to ORM programatically so ORM can see it and use it. Sometimes dynamical model discovery is not possible eg.
@@ -39,9 +39,9 @@ export declare class Orm extends AsyncModule {
39
39
  *
40
40
  * NOTE: use it in ORM constructor before ORM is resolved & model list used.
41
41
  *
42
- * @param model model to register
42
+ * @param model - model to register
43
43
  */
44
- protected registerModel<T extends ModelBase<any>>(model: Class<T>): void;
44
+ protected registerModel<T extends ModelBase>(model: Class<T>): void;
45
45
  /**
46
46
  *
47
47
  * Register migration to ORM programatically so ORM can see it and use it. Sometimes dynamical migration discovery is not possible eg.
@@ -49,7 +49,7 @@ export declare class Orm extends AsyncModule {
49
49
  *
50
50
  * NOTE: use it in ORM constructor before ORM is resolved & migrate function used.
51
51
  *
52
- * @param model model to register
52
+ * @param model - model to register
53
53
  */
54
54
  protected registerMigration<T extends OrmMigration>(migration: Class<T>): void;
55
55
  private createConnections;
package/lib/orm.js CHANGED
@@ -8,26 +8,34 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.Orm = void 0;
13
+ /* eslint-disable prettier/prettier */
16
14
  const configuration_1 = require("@spinajs/configuration");
17
15
  const di_1 = require("@spinajs/di");
18
- const di_2 = require("@spinajs/di");
19
16
  const log_1 = require("@spinajs/log");
20
17
  const reflection_1 = require("@spinajs/reflection");
21
- const lodash_1 = __importDefault(require("lodash"));
18
+ const _ = require("lodash");
22
19
  const interfaces_1 = require("./interfaces");
23
20
  const model_1 = require("./model");
24
21
  const decorators_1 = require("./decorators");
25
22
  const exceptions_1 = require("@spinajs/exceptions");
23
+ const luxon_1 = require("luxon");
24
+ const exceptions_2 = require("./exceptions");
26
25
  /**
27
26
  * Used to exclude sensitive data to others. eg. removed password field from cfg
28
27
  */
29
28
  const CFG_PROPS = ['Database', 'User', 'Host', 'Port', 'Filename', 'Driver', 'Name'];
30
29
  const MIGRATION_TABLE_NAME = 'spinajs_migration';
30
+ const MIGRATION_FILE_REGEXP = /(.*)_([0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2})\.(.*)/;
31
+ const MIGRATION_TYPE_REGEXP = /(.*)_([0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2})/;
32
+ function migrationFileTypeMatcher(name) {
33
+ const match = name.match(MIGRATION_TYPE_REGEXP);
34
+ if (match === null || match.length !== 3) {
35
+ throw new exceptions_2.OrmException(`Invalid migration file name ${name}, expected: ${name}_YYYY_MM_DD_HH_mm_ss`);
36
+ }
37
+ return match[1];
38
+ }
31
39
  class Orm extends di_1.AsyncModule {
32
40
  constructor() {
33
41
  super(...arguments);
@@ -37,7 +45,7 @@ class Orm extends di_1.AsyncModule {
37
45
  *
38
46
  * Migrates schema up ( fill function is not executed )
39
47
  *
40
- * @param name migration file name
48
+ * @param name - migration file name
41
49
  */
42
50
  async migrateUp(name) {
43
51
  const self = this;
@@ -67,7 +75,7 @@ class Orm extends di_1.AsyncModule {
67
75
  *
68
76
  * Migrates schema up ( fill function is not executed )
69
77
  *
70
- * @param name migration file name
78
+ * @param name - migration file name
71
79
  */
72
80
  async migrateDown(name) {
73
81
  const self = this;
@@ -98,18 +106,18 @@ class Orm extends di_1.AsyncModule {
98
106
  */
99
107
  async reloadTableInfo() {
100
108
  for (const m of this.Models) {
101
- const descriptor = model_1.extractModelDescriptor(m.type);
109
+ const descriptor = (0, model_1.extractModelDescriptor)(m.type);
102
110
  if (descriptor) {
103
111
  const connection = this.Connections.get(descriptor.Connection);
104
112
  if (connection) {
105
113
  const columns = await connection.tableInfo(descriptor.TableName, connection.Options.Database);
106
114
  if (columns) {
107
- m.type[decorators_1.MODEL_DESCTRIPTION_SYMBOL].Columns = lodash_1.default.uniqBy(lodash_1.default.map(columns, c => {
108
- return lodash_1.default.assign(c, lodash_1.default.find(descriptor.Columns, { Name: c.Name }));
115
+ m.type[decorators_1.MODEL_DESCTRIPTION_SYMBOL].Columns = _.uniqBy(_.map(columns, (c) => {
116
+ return _.assign(c, _.find(descriptor.Columns, { Name: c.Name }));
109
117
  }), 'Name');
110
118
  }
111
119
  for (const [key, val] of descriptor.Converters) {
112
- const column = m.type[decorators_1.MODEL_DESCTRIPTION_SYMBOL].Columns.find(c => c.Name === key);
120
+ const column = m.type[decorators_1.MODEL_DESCTRIPTION_SYMBOL].Columns.find((c) => c.Name === key);
113
121
  if (column) {
114
122
  column.Converter = connection.Container.hasRegistered(val) ? connection.Container.resolve(val) : null;
115
123
  }
@@ -118,12 +126,11 @@ class Orm extends di_1.AsyncModule {
118
126
  }
119
127
  }
120
128
  }
121
- async resolveAsync(container) {
122
- this.Container = container;
129
+ async resolveAsync() {
123
130
  const migrateOnStartup = this.Configuration.get('db.Migration.Startup', false);
124
131
  await this.createConnections();
132
+ await this.prepareMigrations();
125
133
  if (migrateOnStartup) {
126
- await this.prepareMigrations();
127
134
  await this.migrateUp();
128
135
  }
129
136
  await this.reloadTableInfo();
@@ -136,7 +143,7 @@ class Orm extends di_1.AsyncModule {
136
143
  *
137
144
  * NOTE: use it in ORM constructor before ORM is resolved & model list used.
138
145
  *
139
- * @param model model to register
146
+ * @param model - model to register
140
147
  */
141
148
  registerModel(model) {
142
149
  this.Models.push({
@@ -152,25 +159,26 @@ class Orm extends di_1.AsyncModule {
152
159
  *
153
160
  * NOTE: use it in ORM constructor before ORM is resolved & migrate function used.
154
161
  *
155
- * @param model model to register
162
+ * @param model - model to register
156
163
  */
157
164
  registerMigration(migration) {
165
+ const date = luxon_1.DateTime.now().toFormat('yyyy_MM_dd_HH_mm_ss');
158
166
  this.Migrations.push({
159
- file: `${migration.name}.registered`,
160
- name: migration.name,
167
+ file: `${migration.name}_${date}.registered`,
168
+ name: `${migration.name}_${date}`,
161
169
  type: migration,
162
170
  });
163
171
  }
164
172
  async createConnections() {
165
173
  const connections = await Promise.all(this.Configuration.get('db.Connections', [])
166
- .map(c => {
174
+ .map((c) => {
167
175
  return this.Container.resolve(c.Driver, [c]);
168
176
  })
169
- .filter(c => c !== null)
170
- .map(c => c.connect()));
171
- connections.forEach(c => {
177
+ .filter((c) => c !== null)
178
+ .map((c) => c.connect()));
179
+ connections.forEach((c) => {
172
180
  this.Connections.set(c.Options.Name, c);
173
- this.Log.info(`Found ORM driver ${c.Options.Name} with parameters ${JSON.stringify(lodash_1.default.pick(c.Options, CFG_PROPS))}`);
181
+ this.Log.info(`Found ORM driver ${c.Options.Name} with parameters ${JSON.stringify(_.pick(c.Options, CFG_PROPS))}`);
174
182
  });
175
183
  const defaultConnection = this.Configuration.get('db.DefaultConnection');
176
184
  if (defaultConnection) {
@@ -181,7 +189,7 @@ class Orm extends di_1.AsyncModule {
181
189
  }
182
190
  }
183
191
  applyModelMixins() {
184
- this.Models.forEach(m => {
192
+ this.Models.forEach((m) => {
185
193
  // tslint:disable-next-line: forin
186
194
  for (const mixin in model_1.MODEL_STATIC_MIXINS) {
187
195
  m.type[mixin] = model_1.MODEL_STATIC_MIXINS[mixin].bind(m.type);
@@ -190,7 +198,26 @@ class Orm extends di_1.AsyncModule {
190
198
  }
191
199
  async executeAvaibleMigrations(name, callback, down) {
192
200
  var _a, _b;
193
- let migrations = name ? this.Migrations.filter(m => m.name === name) : this.Migrations;
201
+ const toMigrate = name ? this.Migrations.filter((m) => m.name === name) : this.Migrations;
202
+ let migrations = toMigrate
203
+ .map((x) => {
204
+ const match = x.file.match(MIGRATION_FILE_REGEXP);
205
+ if (match === null || match.length !== 4) {
206
+ throw new exceptions_2.OrmException(`Migration file name have invalid format ( expected: some_name_yyyy_MM_dd_HH_mm_ss got ${x.file})`);
207
+ }
208
+ const created = luxon_1.DateTime.fromFormat(match[2], 'yyyy_MM_dd_HH_mm_ss');
209
+ if (!created.isValid) {
210
+ throw new exceptions_2.OrmException(`Migration file ${x.file} have invalid name format ( invalid migration date )`);
211
+ }
212
+ return Object.assign({ created }, x);
213
+ })
214
+ .filter((x) => x !== null)
215
+ .sort((a, b) => {
216
+ if (a.created < b.created) {
217
+ return -1;
218
+ }
219
+ return 1;
220
+ });
194
221
  if (down) {
195
222
  migrations = migrations.reverse();
196
223
  }
@@ -198,13 +225,10 @@ class Orm extends di_1.AsyncModule {
198
225
  const md = m.type[decorators_1.MIGRATION_DESCRIPTION_SYMBOL];
199
226
  const cn = this.Connections.get(md.Connection);
200
227
  const migrationTableName = (_b = (_a = cn.Options.Migration) === null || _a === void 0 ? void 0 : _a.Table) !== null && _b !== void 0 ? _b : MIGRATION_TABLE_NAME;
201
- const exists = await cn
202
- .select()
203
- .from(migrationTableName)
204
- .where({ Migration: m.name })
205
- .first();
228
+ const exists = await cn.select().from(migrationTableName).where({ Migration: m.name }).first();
206
229
  if (!exists) {
207
- const migration = (await this.Container.resolve(m.type, [cn]));
230
+ const migration = await this.Container.resolve(m.type, [cn]);
231
+ this.Log.info(`Setting up migration ${m.name} from file ${m.file} created at ${m.created} mode: ${down ? 'migrate down' : 'migrate up'}`);
208
232
  await callback(migration, cn);
209
233
  }
210
234
  }
@@ -214,18 +238,12 @@ class Orm extends di_1.AsyncModule {
214
238
  for (const [_, connection] of this.Connections) {
215
239
  const migrationTableName = (_b = (_a = connection.Options.Migration) === null || _a === void 0 ? void 0 : _a.Table) !== null && _b !== void 0 ? _b : MIGRATION_TABLE_NAME;
216
240
  let migrationTable = null;
217
- // if there is no info on migraiton table or query throws we assume table not exists
218
- try {
219
- migrationTable = await connection.tableInfo(migrationTableName);
220
- // tslint:disable-next-line: no-empty
221
- }
222
- catch (_c) { }
241
+ // if there is no info on migraiton table
242
+ migrationTable = await connection.tableInfo(migrationTableName);
223
243
  if (!migrationTable) {
224
- await connection.schema().createTable(migrationTableName, table => {
225
- table
226
- .string('Migration')
227
- .unique()
228
- .notNull();
244
+ this.Log.info(`No migration table in database, recreating migration information ...`);
245
+ await connection.schema().createTable(migrationTableName, (table) => {
246
+ table.string('Migration').unique().notNull();
229
247
  table.dateTime('CreatedAt').notNull();
230
248
  });
231
249
  }
@@ -233,19 +251,23 @@ class Orm extends di_1.AsyncModule {
233
251
  }
234
252
  }
235
253
  __decorate([
236
- reflection_1.ListFromFiles('/**/!(*.d).{ts,js}', 'system.dirs.models'),
254
+ (0, reflection_1.ListFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.models'),
237
255
  __metadata("design:type", Array)
238
256
  ], Orm.prototype, "Models", void 0);
239
257
  __decorate([
240
- reflection_1.ListFromFiles('/**/!(*.d).{ts,js}', 'system.dirs.migrations'),
258
+ (0, reflection_1.ListFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.migrations', migrationFileTypeMatcher),
241
259
  __metadata("design:type", Array)
242
260
  ], Orm.prototype, "Migrations", void 0);
243
261
  __decorate([
244
- log_1.Logger({ module: 'ORM' }),
245
- __metadata("design:type", Object)
262
+ (0, di_1.Autoinject)(),
263
+ __metadata("design:type", di_1.Container)
264
+ ], Orm.prototype, "Container", void 0);
265
+ __decorate([
266
+ (0, log_1.Logger)('ORM'),
267
+ __metadata("design:type", log_1.Log)
246
268
  ], Orm.prototype, "Log", void 0);
247
269
  __decorate([
248
- di_2.Autoinject(),
270
+ (0, di_1.Autoinject)(),
249
271
  __metadata("design:type", configuration_1.Configuration)
250
272
  ], Orm.prototype, "Configuration", void 0);
251
273
  exports.Orm = Orm;
package/lib/orm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"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"}