typeorm 0.2.43-dev.6b0b15b → 0.2.43

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 (47) hide show
  1. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  2. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  3. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
  4. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  5. package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  6. package/browser/entity-schema/EntitySchemaEmbeddedError.js +18 -0
  7. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  8. package/browser/entity-schema/EntitySchemaOptions.d.ts +7 -1
  9. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  10. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  11. package/browser/entity-schema/EntitySchemaTransformer.js +217 -191
  12. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  13. package/browser/index.d.ts +1 -0
  14. package/browser/index.js +1 -0
  15. package/browser/index.js.map +1 -1
  16. package/browser/metadata/EmbeddedMetadata.d.ts +1 -1
  17. package/browser/metadata/EmbeddedMetadata.js +3 -0
  18. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  19. package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  20. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  21. package/browser/metadata-builder/EntityMetadataBuilder.js +3 -1
  22. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  23. package/cli.js +0 -0
  24. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  25. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  26. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +11 -0
  27. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  28. package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  29. package/entity-schema/EntitySchemaEmbeddedError.js +21 -0
  30. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  31. package/entity-schema/EntitySchemaOptions.d.ts +7 -1
  32. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  33. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  34. package/entity-schema/EntitySchemaTransformer.js +217 -191
  35. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  36. package/index.d.ts +1 -0
  37. package/index.js +3 -1
  38. package/index.js.map +1 -1
  39. package/index.mjs +2 -0
  40. package/metadata/EmbeddedMetadata.d.ts +1 -1
  41. package/metadata/EmbeddedMetadata.js +3 -0
  42. package/metadata/EmbeddedMetadata.js.map +1 -1
  43. package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  44. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  45. package/metadata-builder/EntityMetadataBuilder.js +3 -1
  46. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  47. package/package.json +252 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntitySchemaTransformer = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var MetadataArgsStorage_1 = require("../metadata-args/MetadataArgsStorage");
6
+ var EntitySchemaEmbeddedError_1 = require("./EntitySchemaEmbeddedError");
6
7
  /**
7
8
  * Transforms entity schema into metadata args storage.
8
9
  * The result will be just like entities read from decorators.
@@ -17,6 +18,7 @@ var EntitySchemaTransformer = /** @class */ (function () {
17
18
  * Transforms entity schema into new metadata args storage object.
18
19
  */
19
20
  EntitySchemaTransformer.prototype.transform = function (schemas) {
21
+ var _this = this;
20
22
  var metadataArgsStorage = new MetadataArgsStorage_1.MetadataArgsStorage();
21
23
  schemas.forEach(function (entitySchema) {
22
24
  var options = entitySchema.options;
@@ -33,209 +35,233 @@ var EntitySchemaTransformer = /** @class */ (function () {
33
35
  expression: options.expression
34
36
  };
35
37
  metadataArgsStorage.tables.push(tableMetadata);
36
- // add columns metadata args from the schema
37
- Object.keys(options.columns).forEach(function (columnName) {
38
- var column = options.columns[columnName];
39
- var mode = "regular";
40
- if (column.createDate)
41
- mode = "createDate";
42
- if (column.updateDate)
43
- mode = "updateDate";
44
- if (column.deleteDate)
45
- mode = "deleteDate";
46
- if (column.version)
47
- mode = "version";
48
- if (column.treeChildrenCount)
49
- mode = "treeChildrenCount";
50
- if (column.treeLevel)
51
- mode = "treeLevel";
52
- if (column.objectId)
53
- mode = "objectId";
54
- var columnAgrs = {
38
+ _this.transformColumnsRecursive(options, metadataArgsStorage);
39
+ });
40
+ return metadataArgsStorage;
41
+ };
42
+ EntitySchemaTransformer.prototype.transformColumnsRecursive = function (options, metadataArgsStorage) {
43
+ var _this = this;
44
+ // add columns metadata args from the schema
45
+ Object.keys(options.columns).forEach(function (columnName) {
46
+ var column = options.columns[columnName];
47
+ var regularColumn = column;
48
+ var mode = "regular";
49
+ if (regularColumn.createDate)
50
+ mode = "createDate";
51
+ if (regularColumn.updateDate)
52
+ mode = "updateDate";
53
+ if (regularColumn.deleteDate)
54
+ mode = "deleteDate";
55
+ if (regularColumn.version)
56
+ mode = "version";
57
+ if (regularColumn.treeChildrenCount)
58
+ mode = "treeChildrenCount";
59
+ if (regularColumn.treeLevel)
60
+ mode = "treeLevel";
61
+ if (regularColumn.objectId)
62
+ mode = "objectId";
63
+ var columnAgrs = {
64
+ target: options.target || options.name,
65
+ mode: mode,
66
+ propertyName: columnName,
67
+ options: {
68
+ type: regularColumn.type,
69
+ name: regularColumn.objectId ? "_id" : regularColumn.name,
70
+ length: regularColumn.length,
71
+ width: regularColumn.width,
72
+ nullable: regularColumn.nullable,
73
+ readonly: regularColumn.readonly,
74
+ update: regularColumn.update,
75
+ select: regularColumn.select,
76
+ insert: regularColumn.insert,
77
+ primary: regularColumn.primary,
78
+ unique: regularColumn.unique,
79
+ comment: regularColumn.comment,
80
+ default: regularColumn.default,
81
+ onUpdate: regularColumn.onUpdate,
82
+ precision: regularColumn.precision,
83
+ scale: regularColumn.scale,
84
+ zerofill: regularColumn.zerofill,
85
+ unsigned: regularColumn.unsigned,
86
+ charset: regularColumn.charset,
87
+ collation: regularColumn.collation,
88
+ enum: regularColumn.enum,
89
+ asExpression: regularColumn.asExpression,
90
+ generatedType: regularColumn.generatedType,
91
+ hstoreType: regularColumn.hstoreType,
92
+ array: regularColumn.array,
93
+ transformer: regularColumn.transformer,
94
+ spatialFeatureType: regularColumn.spatialFeatureType,
95
+ srid: regularColumn.srid
96
+ }
97
+ };
98
+ metadataArgsStorage.columns.push(columnAgrs);
99
+ if (regularColumn.generated) {
100
+ var generationArgs = {
55
101
  target: options.target || options.name,
56
- mode: mode,
57
102
  propertyName: columnName,
103
+ strategy: typeof regularColumn.generated === "string" ? regularColumn.generated : "increment"
104
+ };
105
+ metadataArgsStorage.generations.push(generationArgs);
106
+ }
107
+ if (regularColumn.unique)
108
+ metadataArgsStorage.uniques.push({
109
+ target: options.target || options.name,
110
+ columns: [columnName]
111
+ });
112
+ });
113
+ // add relation metadata args from the schema
114
+ if (options.relations) {
115
+ Object.keys(options.relations).forEach(function (relationName) {
116
+ var e_1, _a;
117
+ var relationSchema = options.relations[relationName];
118
+ var relation = {
119
+ target: options.target || options.name,
120
+ propertyName: relationName,
121
+ relationType: relationSchema.type,
122
+ isLazy: relationSchema.lazy || false,
123
+ type: relationSchema.target,
124
+ inverseSideProperty: relationSchema.inverseSide,
125
+ isTreeParent: relationSchema.treeParent,
126
+ isTreeChildren: relationSchema.treeChildren,
58
127
  options: {
59
- type: column.type,
60
- name: column.objectId ? "_id" : column.name,
61
- length: column.length,
62
- width: column.width,
63
- nullable: column.nullable,
64
- readonly: column.readonly,
65
- update: column.update,
66
- select: column.select,
67
- insert: column.insert,
68
- primary: column.primary,
69
- unique: column.unique,
70
- comment: column.comment,
71
- default: column.default,
72
- onUpdate: column.onUpdate,
73
- precision: column.precision,
74
- scale: column.scale,
75
- zerofill: column.zerofill,
76
- unsigned: column.unsigned,
77
- charset: column.charset,
78
- collation: column.collation,
79
- enum: column.enum,
80
- asExpression: column.asExpression,
81
- generatedType: column.generatedType,
82
- hstoreType: column.hstoreType,
83
- array: column.array,
84
- transformer: column.transformer,
85
- spatialFeatureType: column.spatialFeatureType,
86
- srid: column.srid
128
+ eager: relationSchema.eager || false,
129
+ cascade: relationSchema.cascade,
130
+ nullable: relationSchema.nullable,
131
+ onDelete: relationSchema.onDelete,
132
+ onUpdate: relationSchema.onUpdate,
133
+ deferrable: relationSchema.deferrable,
134
+ primary: relationSchema.primary,
135
+ createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,
136
+ persistence: relationSchema.persistence,
137
+ orphanedRowAction: relationSchema.orphanedRowAction
87
138
  }
88
139
  };
89
- metadataArgsStorage.columns.push(columnAgrs);
90
- if (column.generated) {
91
- var generationArgs = {
92
- target: options.target || options.name,
93
- propertyName: columnName,
94
- strategy: typeof column.generated === "string" ? column.generated : "increment"
95
- };
96
- metadataArgsStorage.generations.push(generationArgs);
97
- }
98
- if (column.unique)
99
- metadataArgsStorage.uniques.push({ target: options.target || options.name, columns: [columnName] });
100
- });
101
- // add relation metadata args from the schema
102
- if (options.relations) {
103
- Object.keys(options.relations).forEach(function (relationName) {
104
- var e_1, _a;
105
- var relationSchema = options.relations[relationName];
106
- var relation = {
107
- target: options.target || options.name,
108
- propertyName: relationName,
109
- relationType: relationSchema.type,
110
- isLazy: relationSchema.lazy || false,
111
- type: relationSchema.target,
112
- inverseSideProperty: relationSchema.inverseSide,
113
- isTreeParent: relationSchema.treeParent,
114
- isTreeChildren: relationSchema.treeChildren,
115
- options: {
116
- eager: relationSchema.eager || false,
117
- cascade: relationSchema.cascade,
118
- nullable: relationSchema.nullable,
119
- onDelete: relationSchema.onDelete,
120
- onUpdate: relationSchema.onUpdate,
121
- deferrable: relationSchema.deferrable,
122
- primary: relationSchema.primary,
123
- createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,
124
- persistence: relationSchema.persistence,
125
- orphanedRowAction: relationSchema.orphanedRowAction
126
- }
127
- };
128
- metadataArgsStorage.relations.push(relation);
129
- // add join column
130
- if (relationSchema.joinColumn) {
131
- if (typeof relationSchema.joinColumn === "boolean") {
132
- var joinColumn = {
133
- target: options.target || options.name,
134
- propertyName: relationName
135
- };
136
- metadataArgsStorage.joinColumns.push(joinColumn);
140
+ metadataArgsStorage.relations.push(relation);
141
+ // add join column
142
+ if (relationSchema.joinColumn) {
143
+ if (typeof relationSchema.joinColumn === "boolean") {
144
+ var joinColumn = {
145
+ target: options.target || options.name,
146
+ propertyName: relationName
147
+ };
148
+ metadataArgsStorage.joinColumns.push(joinColumn);
149
+ }
150
+ else {
151
+ var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];
152
+ try {
153
+ for (var joinColumnsOptions_1 = (0, tslib_1.__values)(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) {
154
+ var joinColumnOption = joinColumnsOptions_1_1.value;
155
+ var joinColumn = {
156
+ target: options.target || options.name,
157
+ propertyName: relationName,
158
+ name: joinColumnOption.name,
159
+ referencedColumnName: joinColumnOption.referencedColumnName
160
+ };
161
+ metadataArgsStorage.joinColumns.push(joinColumn);
162
+ }
137
163
  }
138
- else {
139
- var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];
164
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
165
+ finally {
140
166
  try {
141
- for (var joinColumnsOptions_1 = (0, tslib_1.__values)(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) {
142
- var joinColumnOption = joinColumnsOptions_1_1.value;
143
- var joinColumn = {
144
- target: options.target || options.name,
145
- propertyName: relationName,
146
- name: joinColumnOption.name,
147
- referencedColumnName: joinColumnOption.referencedColumnName
148
- };
149
- metadataArgsStorage.joinColumns.push(joinColumn);
150
- }
151
- }
152
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
153
- finally {
154
- try {
155
- if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1);
156
- }
157
- finally { if (e_1) throw e_1.error; }
167
+ if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1);
158
168
  }
169
+ finally { if (e_1) throw e_1.error; }
159
170
  }
160
171
  }
161
- // add join table
162
- if (relationSchema.joinTable) {
163
- if (typeof relationSchema.joinTable === "boolean") {
164
- var joinTable = {
165
- target: options.target || options.name,
166
- propertyName: relationName
167
- };
168
- metadataArgsStorage.joinTables.push(joinTable);
169
- }
170
- else {
171
- var joinTable = {
172
- target: options.target || options.name,
173
- propertyName: relationName,
174
- name: relationSchema.joinTable.name,
175
- database: relationSchema.joinTable.database,
176
- schema: relationSchema.joinTable.schema,
177
- joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns),
178
- inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns),
179
- };
180
- metadataArgsStorage.joinTables.push(joinTable);
181
- }
172
+ }
173
+ // add join table
174
+ if (relationSchema.joinTable) {
175
+ if (typeof relationSchema.joinTable === "boolean") {
176
+ var joinTable = {
177
+ target: options.target || options.name,
178
+ propertyName: relationName
179
+ };
180
+ metadataArgsStorage.joinTables.push(joinTable);
182
181
  }
182
+ else {
183
+ var joinTable = {
184
+ target: options.target || options.name,
185
+ propertyName: relationName,
186
+ name: relationSchema.joinTable.name,
187
+ database: relationSchema.joinTable.database,
188
+ schema: relationSchema.joinTable.schema,
189
+ joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns),
190
+ inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns),
191
+ };
192
+ metadataArgsStorage.joinTables.push(joinTable);
193
+ }
194
+ }
195
+ });
196
+ }
197
+ // add index metadata args from the schema
198
+ if (options.indices) {
199
+ options.indices.forEach(function (index) {
200
+ var indexAgrs = {
201
+ target: options.target || options.name,
202
+ name: index.name,
203
+ unique: index.unique === true ? true : false,
204
+ spatial: index.spatial === true ? true : false,
205
+ fulltext: index.fulltext === true ? true : false,
206
+ parser: index.parser,
207
+ synchronize: index.synchronize === false ? false : true,
208
+ where: index.where,
209
+ sparse: index.sparse,
210
+ columns: index.columns
211
+ };
212
+ metadataArgsStorage.indices.push(indexAgrs);
213
+ });
214
+ }
215
+ // add unique metadata args from the schema
216
+ if (options.uniques) {
217
+ options.uniques.forEach(function (unique) {
218
+ var uniqueAgrs = {
219
+ target: options.target || options.name,
220
+ name: unique.name,
221
+ columns: unique.columns,
222
+ deferrable: unique.deferrable,
223
+ };
224
+ metadataArgsStorage.uniques.push(uniqueAgrs);
225
+ });
226
+ }
227
+ // add check metadata args from the schema
228
+ if (options.checks) {
229
+ options.checks.forEach(function (check) {
230
+ var checkAgrs = {
231
+ target: options.target || options.name,
232
+ name: check.name,
233
+ expression: check.expression
234
+ };
235
+ metadataArgsStorage.checks.push(checkAgrs);
236
+ });
237
+ }
238
+ // add exclusion metadata args from the schema
239
+ if (options.exclusions) {
240
+ options.exclusions.forEach(function (exclusion) {
241
+ var exclusionArgs = {
242
+ target: options.target || options.name,
243
+ name: exclusion.name,
244
+ expression: exclusion.expression
245
+ };
246
+ metadataArgsStorage.exclusions.push(exclusionArgs);
247
+ });
248
+ }
249
+ if (options.embeddeds) {
250
+ Object.keys(options.embeddeds).forEach(function (columnName) {
251
+ var embeddedOptions = options.embeddeds[columnName];
252
+ if (!embeddedOptions.schema)
253
+ throw EntitySchemaEmbeddedError_1.EntitySchemaEmbeddedError.createEntitySchemaIsRequiredException(columnName);
254
+ var embeddedSchema = embeddedOptions.schema.options;
255
+ metadataArgsStorage.embeddeds.push({
256
+ target: options.target || options.name,
257
+ propertyName: columnName,
258
+ isArray: embeddedOptions.array === true,
259
+ prefix: embeddedOptions.prefix !== undefined ? embeddedOptions.prefix : undefined,
260
+ type: function () { return (embeddedSchema === null || embeddedSchema === void 0 ? void 0 : embeddedSchema.target) || embeddedSchema.name; },
183
261
  });
184
- }
185
- // add index metadata args from the schema
186
- if (options.indices) {
187
- options.indices.forEach(function (index) {
188
- var indexAgrs = {
189
- target: options.target || options.name,
190
- name: index.name,
191
- unique: index.unique === true ? true : false,
192
- spatial: index.spatial === true ? true : false,
193
- fulltext: index.fulltext === true ? true : false,
194
- parser: index.parser,
195
- synchronize: index.synchronize === false ? false : true,
196
- where: index.where,
197
- sparse: index.sparse,
198
- columns: index.columns
199
- };
200
- metadataArgsStorage.indices.push(indexAgrs);
201
- });
202
- }
203
- // add unique metadata args from the schema
204
- if (options.uniques) {
205
- options.uniques.forEach(function (unique) {
206
- var uniqueAgrs = {
207
- target: options.target || options.name,
208
- name: unique.name,
209
- columns: unique.columns,
210
- deferrable: unique.deferrable,
211
- };
212
- metadataArgsStorage.uniques.push(uniqueAgrs);
213
- });
214
- }
215
- // add check metadata args from the schema
216
- if (options.checks) {
217
- options.checks.forEach(function (check) {
218
- var checkAgrs = {
219
- target: options.target || options.name,
220
- name: check.name,
221
- expression: check.expression
222
- };
223
- metadataArgsStorage.checks.push(checkAgrs);
224
- });
225
- }
226
- // add exclusion metadata args from the schema
227
- if (options.exclusions) {
228
- options.exclusions.forEach(function (exclusion) {
229
- var exclusionArgs = {
230
- target: options.target || options.name,
231
- name: exclusion.name,
232
- expression: exclusion.expression
233
- };
234
- metadataArgsStorage.exclusions.push(exclusionArgs);
235
- });
236
- }
237
- });
238
- return metadataArgsStorage;
262
+ _this.transformColumnsRecursive(embeddedSchema, metadataArgsStorage);
263
+ });
264
+ }
239
265
  };
240
266
  return EntitySchemaTransformer;
241
267
  }());
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entity-schema/EntitySchemaTransformer.ts"],"names":[],"mappings":";;;;AACA,4EAAyE;AAezE;;;GAGG;AACH;IAAA;IA0OA,CAAC;IAxOG,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,2CAAS,GAAT,UAAU,OAA4B;QAClC,IAAM,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAEtD,OAAO,CAAC,OAAO,CAAC,UAAA,YAAY;YACxB,IAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAErC,0CAA0C;YAC1C,IAAM,aAAa,GAAsB;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;gBACtC,IAAI,EAAE,OAAO,CAAC,SAAS;gBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;gBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;gBACpC,UAAU,EAAE,OAAO,CAAC,UAAU;aACjC,CAAC;YACF,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE/C,4CAA4C;YAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU;gBAC3C,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAE,CAAC;gBAC5C,IAAI,IAAI,GAAe,SAAS,CAAC;gBACjC,IAAI,MAAM,CAAC,UAAU;oBACjB,IAAI,GAAG,YAAY,CAAC;gBACxB,IAAI,MAAM,CAAC,UAAU;oBACjB,IAAI,GAAG,YAAY,CAAC;gBACxB,IAAI,MAAM,CAAC,UAAU;oBACjB,IAAI,GAAG,YAAY,CAAC;gBACxB,IAAI,MAAM,CAAC,OAAO;oBACd,IAAI,GAAG,SAAS,CAAC;gBACrB,IAAI,MAAM,CAAC,iBAAiB;oBACxB,IAAI,GAAG,mBAAmB,CAAC;gBAC/B,IAAI,MAAM,CAAC,SAAS;oBAChB,IAAI,GAAG,WAAW,CAAC;gBACvB,IAAI,MAAM,CAAC,QAAQ;oBACf,IAAI,GAAG,UAAU,CAAC;gBAEtB,IAAM,UAAU,GAAuB;oBACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;oBACtC,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE;wBACL,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;wBAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;qBACpB;iBACJ,CAAC;gBACF,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE7C,IAAI,MAAM,CAAC,SAAS,EAAE;oBAClB,IAAM,cAAc,GAA0B;wBAC1C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,YAAY,EAAE,UAAU;wBACxB,QAAQ,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;qBAClF,CAAC;oBACF,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACxD;gBAED,IAAI,MAAM,CAAC,MAAM;oBACb,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC5G,CAAC,CAAC,CAAC;YAEH,6CAA6C;YAC7C,IAAI,OAAO,CAAC,SAAS,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAA,YAAY;;oBAC/C,IAAM,cAAc,GAAG,OAAO,CAAC,SAAU,CAAC,YAAY,CAAE,CAAC;oBACzD,IAAM,QAAQ,GAAyB;wBACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,YAAY,EAAE,YAAY;wBAC1B,YAAY,EAAE,cAAc,CAAC,IAAI;wBACjC,MAAM,EAAE,cAAc,CAAC,IAAI,IAAI,KAAK;wBACpC,IAAI,EAAE,cAAc,CAAC,MAAM;wBAC3B,mBAAmB,EAAE,cAAc,CAAC,WAAW;wBAC/C,YAAY,EAAE,cAAc,CAAC,UAAU;wBACvC,cAAc,EAAE,cAAc,CAAC,YAAY;wBAC3C,OAAO,EAAE;4BACL,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,KAAK;4BACpC,OAAO,EAAE,cAAc,CAAC,OAAO;4BAC/B,QAAQ,EAAE,cAAc,CAAC,QAAQ;4BACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;4BACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;4BACjC,UAAU,EAAE,cAAc,CAAC,UAAU;4BACrC,OAAO,EAAE,cAAc,CAAC,OAAO;4BAC/B,2BAA2B,EAAE,cAAc,CAAC,2BAA2B;4BACvE,WAAW,EAAE,cAAc,CAAC,WAAW;4BACvC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;yBACtD;qBACJ,CAAC;oBAEF,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE7C,kBAAkB;oBAClB,IAAI,cAAc,CAAC,UAAU,EAAE;wBAC3B,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,SAAS,EAAE;4BAChD,IAAM,UAAU,GAA2B;gCACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;gCACtC,YAAY,EAAE,YAAY;6BAC7B,CAAC;4BACF,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBACpD;6BAAM;4BACH,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;;gCAE9H,KAA+B,IAAA,uBAAA,sBAAA,kBAAkB,CAAA,sDAAA,sFAAE;oCAA9C,IAAM,gBAAgB,+BAAA;oCACvB,IAAM,UAAU,GAA2B;wCACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wCACtC,YAAY,EAAE,YAAY;wCAC1B,IAAI,EAAE,gBAAgB,CAAC,IAAI;wCAC3B,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB;qCAC9D,CAAC;oCACF,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCACpD;;;;;;;;;yBACJ;qBACJ;oBAED,iBAAiB;oBACjB,IAAI,cAAc,CAAC,SAAS,EAAE;wBAC1B,IAAI,OAAO,cAAc,CAAC,SAAS,KAAK,SAAS,EAAE;4BAC/C,IAAM,SAAS,GAA0B;gCACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;gCACtC,YAAY,EAAE,YAAY;6BAC7B,CAAC;4BACF,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAClD;6BAAM;4BACH,IAAM,SAAS,GAA0B;gCACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;gCACtC,YAAY,EAAE,YAAY;gCAC1B,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI;gCACnC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ;gCAC3C,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM;gCACvC,WAAW,EAAE,CAAE,cAAc,CAAC,SAA8B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,SAA8B,CAAC,UAAW,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,SAA6C,CAAC,WAAW,CAAQ;gCAC1N,kBAAkB,EAAE,CAAE,cAAc,CAAC,SAA8B,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,SAA8B,CAAC,iBAAkB,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,SAA6C,CAAC,kBAAkB,CAAQ;6BACzP,CAAC;4BACF,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAClD;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;YAED,0CAA0C;YAC1C,IAAI,OAAO,CAAC,OAAO,EAAE;gBACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,KAAK;oBACzB,IAAM,SAAS,GAAsB;wBACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAC5C,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,WAAW,EAAE,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;wBACvD,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACzB,CAAC;oBACF,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACN;YAED,2CAA2C;YAC3C,IAAI,OAAO,CAAC,OAAO,EAAE;gBACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;oBAC1B,IAAM,UAAU,GAAuB;wBACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAChC,CAAC;oBACF,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;aACN;YAED,0CAA0C;YAC1C,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;oBACxB,IAAM,SAAS,GAAsB;wBACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC/B,CAAC;oBACF,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;aACN;YAED,8CAA8C;YAC9C,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS;oBAChC,IAAM,aAAa,GAA0B;wBACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;wBACtC,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,UAAU,EAAE,SAAS,CAAC,UAAU;qBACnC,CAAC;oBACF,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;aACN;QAEL,CAAC,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IACL,8BAAC;AAAD,CA1OA,AA0OC,IAAA;AA1OY,0DAAuB","file":"EntitySchemaTransformer.js","sourcesContent":["import {EntitySchema} from \"./EntitySchema\";\nimport {MetadataArgsStorage} from \"../metadata-args/MetadataArgsStorage\";\nimport {TableMetadataArgs} from \"../metadata-args/TableMetadataArgs\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {IndexMetadataArgs} from \"../metadata-args/IndexMetadataArgs\";\nimport {RelationMetadataArgs} from \"../metadata-args/RelationMetadataArgs\";\nimport {JoinColumnMetadataArgs} from \"../metadata-args/JoinColumnMetadataArgs\";\nimport {JoinTableMetadataArgs} from \"../metadata-args/JoinTableMetadataArgs\";\nimport {JoinTableOptions} from \"../decorator/options/JoinTableOptions\";\nimport {JoinTableMultipleColumnsOptions} from \"../decorator/options/JoinTableMultipleColumnsOptions\";\nimport {ColumnMode} from \"../metadata-args/types/ColumnMode\";\nimport {GeneratedMetadataArgs} from \"../metadata-args/GeneratedMetadataArgs\";\nimport {UniqueMetadataArgs} from \"../metadata-args/UniqueMetadataArgs\";\nimport {CheckMetadataArgs} from \"../metadata-args/CheckMetadataArgs\";\nimport {ExclusionMetadataArgs} from \"../metadata-args/ExclusionMetadataArgs\";\n\n/**\n * Transforms entity schema into metadata args storage.\n * The result will be just like entities read from decorators.\n */\nexport class EntitySchemaTransformer {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms entity schema into new metadata args storage object.\n */\n transform(schemas: EntitySchema<any>[]): MetadataArgsStorage {\n const metadataArgsStorage = new MetadataArgsStorage();\n\n schemas.forEach(entitySchema => {\n const options = entitySchema.options;\n\n // add table metadata args from the schema\n const tableMetadata: TableMetadataArgs = {\n target: options.target || options.name,\n name: options.tableName,\n database: options.database,\n schema: options.schema,\n type: options.type || \"regular\",\n orderBy: options.orderBy,\n synchronize: options.synchronize,\n withoutRowid: !!options.withoutRowid,\n expression: options.expression\n };\n metadataArgsStorage.tables.push(tableMetadata);\n\n // add columns metadata args from the schema\n Object.keys(options.columns).forEach(columnName => {\n const column = options.columns[columnName]!;\n let mode: ColumnMode = \"regular\";\n if (column.createDate)\n mode = \"createDate\";\n if (column.updateDate)\n mode = \"updateDate\";\n if (column.deleteDate)\n mode = \"deleteDate\";\n if (column.version)\n mode = \"version\";\n if (column.treeChildrenCount)\n mode = \"treeChildrenCount\";\n if (column.treeLevel)\n mode = \"treeLevel\";\n if (column.objectId)\n mode = \"objectId\";\n\n const columnAgrs: ColumnMetadataArgs = {\n target: options.target || options.name,\n mode: mode,\n propertyName: columnName,\n options: {\n type: column.type,\n name: column.objectId ? \"_id\" : column.name,\n length: column.length,\n width: column.width,\n nullable: column.nullable,\n readonly: column.readonly,\n update: column.update,\n select: column.select,\n insert: column.insert,\n primary: column.primary,\n unique: column.unique,\n comment: column.comment,\n default: column.default,\n onUpdate: column.onUpdate,\n precision: column.precision,\n scale: column.scale,\n zerofill: column.zerofill,\n unsigned: column.unsigned,\n charset: column.charset,\n collation: column.collation,\n enum: column.enum,\n asExpression: column.asExpression,\n generatedType: column.generatedType,\n hstoreType: column.hstoreType,\n array: column.array,\n transformer: column.transformer,\n spatialFeatureType: column.spatialFeatureType,\n srid: column.srid\n }\n };\n metadataArgsStorage.columns.push(columnAgrs);\n\n if (column.generated) {\n const generationArgs: GeneratedMetadataArgs = {\n target: options.target || options.name,\n propertyName: columnName,\n strategy: typeof column.generated === \"string\" ? column.generated : \"increment\"\n };\n metadataArgsStorage.generations.push(generationArgs);\n }\n\n if (column.unique)\n metadataArgsStorage.uniques.push({ target: options.target || options.name, columns: [columnName] });\n });\n\n // add relation metadata args from the schema\n if (options.relations) {\n Object.keys(options.relations).forEach(relationName => {\n const relationSchema = options.relations![relationName]!;\n const relation: RelationMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n relationType: relationSchema.type,\n isLazy: relationSchema.lazy || false,\n type: relationSchema.target,\n inverseSideProperty: relationSchema.inverseSide,\n isTreeParent: relationSchema.treeParent,\n isTreeChildren: relationSchema.treeChildren,\n options: {\n eager: relationSchema.eager || false,\n cascade: relationSchema.cascade,\n nullable: relationSchema.nullable,\n onDelete: relationSchema.onDelete,\n onUpdate: relationSchema.onUpdate,\n deferrable: relationSchema.deferrable,\n primary: relationSchema.primary,\n createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,\n persistence: relationSchema.persistence,\n orphanedRowAction: relationSchema.orphanedRowAction\n }\n };\n\n metadataArgsStorage.relations.push(relation);\n\n // add join column\n if (relationSchema.joinColumn) {\n if (typeof relationSchema.joinColumn === \"boolean\") {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n } else {\n const joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];\n\n for (const joinColumnOption of joinColumnsOptions) {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: joinColumnOption.name,\n referencedColumnName: joinColumnOption.referencedColumnName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n }\n }\n }\n\n // add join table\n if (relationSchema.joinTable) {\n if (typeof relationSchema.joinTable === \"boolean\") {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinTables.push(joinTable);\n } else {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: relationSchema.joinTable.name,\n database: relationSchema.joinTable.database,\n schema: relationSchema.joinTable.schema,\n joinColumns: ((relationSchema.joinTable as JoinTableOptions).joinColumn ? [(relationSchema.joinTable as JoinTableOptions).joinColumn!] : (relationSchema.joinTable as JoinTableMultipleColumnsOptions).joinColumns) as any,\n inverseJoinColumns: ((relationSchema.joinTable as JoinTableOptions).inverseJoinColumn ? [(relationSchema.joinTable as JoinTableOptions).inverseJoinColumn!] : (relationSchema.joinTable as JoinTableMultipleColumnsOptions).inverseJoinColumns) as any,\n };\n metadataArgsStorage.joinTables.push(joinTable);\n }\n }\n });\n }\n\n // add index metadata args from the schema\n if (options.indices) {\n options.indices.forEach(index => {\n const indexAgrs: IndexMetadataArgs = {\n target: options.target || options.name,\n name: index.name,\n unique: index.unique === true ? true : false,\n spatial: index.spatial === true ? true : false,\n fulltext: index.fulltext === true ? true : false,\n parser: index.parser,\n synchronize: index.synchronize === false ? false : true,\n where: index.where,\n sparse: index.sparse,\n columns: index.columns\n };\n metadataArgsStorage.indices.push(indexAgrs);\n });\n }\n\n // add unique metadata args from the schema\n if (options.uniques) {\n options.uniques.forEach(unique => {\n const uniqueAgrs: UniqueMetadataArgs = {\n target: options.target || options.name,\n name: unique.name,\n columns: unique.columns,\n deferrable: unique.deferrable,\n };\n metadataArgsStorage.uniques.push(uniqueAgrs);\n });\n }\n\n // add check metadata args from the schema\n if (options.checks) {\n options.checks.forEach(check => {\n const checkAgrs: CheckMetadataArgs = {\n target: options.target || options.name,\n name: check.name,\n expression: check.expression\n };\n metadataArgsStorage.checks.push(checkAgrs);\n });\n }\n\n // add exclusion metadata args from the schema\n if (options.exclusions) {\n options.exclusions.forEach(exclusion => {\n const exclusionArgs: ExclusionMetadataArgs = {\n target: options.target || options.name,\n name: exclusion.name,\n expression: exclusion.expression\n };\n metadataArgsStorage.exclusions.push(exclusionArgs);\n });\n }\n\n });\n\n return metadataArgsStorage;\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/entity-schema/EntitySchemaTransformer.ts"],"names":[],"mappings":"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","file":"EntitySchemaTransformer.js","sourcesContent":["import {EntitySchema} from \"./EntitySchema\";\nimport {MetadataArgsStorage} from \"../metadata-args/MetadataArgsStorage\";\nimport {TableMetadataArgs} from \"../metadata-args/TableMetadataArgs\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {IndexMetadataArgs} from \"../metadata-args/IndexMetadataArgs\";\nimport {RelationMetadataArgs} from \"../metadata-args/RelationMetadataArgs\";\nimport {JoinColumnMetadataArgs} from \"../metadata-args/JoinColumnMetadataArgs\";\nimport {JoinTableMetadataArgs} from \"../metadata-args/JoinTableMetadataArgs\";\nimport {JoinTableOptions} from \"../decorator/options/JoinTableOptions\";\nimport {JoinTableMultipleColumnsOptions} from \"../decorator/options/JoinTableMultipleColumnsOptions\";\nimport {ColumnMode} from \"../metadata-args/types/ColumnMode\";\nimport {GeneratedMetadataArgs} from \"../metadata-args/GeneratedMetadataArgs\";\nimport {UniqueMetadataArgs} from \"../metadata-args/UniqueMetadataArgs\";\nimport {CheckMetadataArgs} from \"../metadata-args/CheckMetadataArgs\";\nimport {ExclusionMetadataArgs} from \"../metadata-args/ExclusionMetadataArgs\";\nimport { EntitySchemaColumnOptions } from \"./EntitySchemaColumnOptions\";\nimport { EntitySchemaOptions } from \"./EntitySchemaOptions\";\nimport { EntitySchemaEmbeddedError } from \"./EntitySchemaEmbeddedError\";\n\n/**\n * Transforms entity schema into metadata args storage.\n * The result will be just like entities read from decorators.\n */\nexport class EntitySchemaTransformer {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms entity schema into new metadata args storage object.\n */\n transform(schemas: EntitySchema<any>[]): MetadataArgsStorage {\n const metadataArgsStorage = new MetadataArgsStorage();\n\n schemas.forEach(entitySchema => {\n const options = entitySchema.options;\n\n // add table metadata args from the schema\n const tableMetadata: TableMetadataArgs = {\n target: options.target || options.name,\n name: options.tableName,\n database: options.database,\n schema: options.schema,\n type: options.type || \"regular\",\n orderBy: options.orderBy,\n synchronize: options.synchronize,\n withoutRowid: !!options.withoutRowid,\n expression: options.expression\n };\n metadataArgsStorage.tables.push(tableMetadata);\n\n this.transformColumnsRecursive(options, metadataArgsStorage);\n });\n\n return metadataArgsStorage;\n }\n\n private transformColumnsRecursive(options: EntitySchemaOptions<any>, metadataArgsStorage: MetadataArgsStorage): void {\n // add columns metadata args from the schema\n Object.keys(options.columns).forEach(columnName => {\n const column = options.columns[columnName]!;\n\n const regularColumn = column as EntitySchemaColumnOptions;\n let mode: ColumnMode = \"regular\";\n if (regularColumn.createDate)\n mode = \"createDate\";\n if (regularColumn.updateDate)\n mode = \"updateDate\";\n if (regularColumn.deleteDate)\n mode = \"deleteDate\";\n if (regularColumn.version)\n mode = \"version\";\n if (regularColumn.treeChildrenCount)\n mode = \"treeChildrenCount\";\n if (regularColumn.treeLevel)\n mode = \"treeLevel\";\n if (regularColumn.objectId)\n mode = \"objectId\";\n\n const columnAgrs: ColumnMetadataArgs = {\n target: options.target || options.name,\n mode: mode,\n propertyName: columnName,\n options: {\n type: regularColumn.type,\n name: regularColumn.objectId ? \"_id\" : regularColumn.name,\n length: regularColumn.length,\n width: regularColumn.width,\n nullable: regularColumn.nullable,\n readonly: regularColumn.readonly,\n update: regularColumn.update,\n select: regularColumn.select,\n insert: regularColumn.insert,\n primary: regularColumn.primary,\n unique: regularColumn.unique,\n comment: regularColumn.comment,\n default: regularColumn.default,\n onUpdate: regularColumn.onUpdate,\n precision: regularColumn.precision,\n scale: regularColumn.scale,\n zerofill: regularColumn.zerofill,\n unsigned: regularColumn.unsigned,\n charset: regularColumn.charset,\n collation: regularColumn.collation,\n enum: regularColumn.enum,\n asExpression: regularColumn.asExpression,\n generatedType: regularColumn.generatedType,\n hstoreType: regularColumn.hstoreType,\n array: regularColumn.array,\n transformer: regularColumn.transformer,\n spatialFeatureType: regularColumn.spatialFeatureType,\n srid: regularColumn.srid\n }\n };\n metadataArgsStorage.columns.push(columnAgrs);\n\n if (regularColumn.generated) {\n const generationArgs: GeneratedMetadataArgs = {\n target: options.target || options.name,\n propertyName: columnName,\n strategy: typeof regularColumn.generated === \"string\" ? regularColumn.generated : \"increment\"\n };\n metadataArgsStorage.generations.push(generationArgs);\n }\n\n if (regularColumn.unique)\n metadataArgsStorage.uniques.push({\n target: options.target || options.name,\n columns: [columnName]\n });\n });\n\n // add relation metadata args from the schema\n if (options.relations) {\n Object.keys(options.relations).forEach(relationName => {\n const relationSchema = options.relations![relationName]!;\n const relation: RelationMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n relationType: relationSchema.type,\n isLazy: relationSchema.lazy || false,\n type: relationSchema.target,\n inverseSideProperty: relationSchema.inverseSide,\n isTreeParent: relationSchema.treeParent,\n isTreeChildren: relationSchema.treeChildren,\n options: {\n eager: relationSchema.eager || false,\n cascade: relationSchema.cascade,\n nullable: relationSchema.nullable,\n onDelete: relationSchema.onDelete,\n onUpdate: relationSchema.onUpdate,\n deferrable: relationSchema.deferrable,\n primary: relationSchema.primary,\n createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,\n persistence: relationSchema.persistence,\n orphanedRowAction: relationSchema.orphanedRowAction\n }\n };\n\n metadataArgsStorage.relations.push(relation);\n\n // add join column\n if (relationSchema.joinColumn) {\n if (typeof relationSchema.joinColumn === \"boolean\") {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n } else {\n const joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];\n\n for (const joinColumnOption of joinColumnsOptions) {\n const joinColumn: JoinColumnMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: joinColumnOption.name,\n referencedColumnName: joinColumnOption.referencedColumnName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n }\n }\n }\n\n // add join table\n if (relationSchema.joinTable) {\n if (typeof relationSchema.joinTable === \"boolean\") {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinTables.push(joinTable);\n } else {\n const joinTable: JoinTableMetadataArgs = {\n target: options.target || options.name,\n propertyName: relationName,\n name: relationSchema.joinTable.name,\n database: relationSchema.joinTable.database,\n schema: relationSchema.joinTable.schema,\n joinColumns: ((relationSchema.joinTable as JoinTableOptions).joinColumn ? [(relationSchema.joinTable as JoinTableOptions).joinColumn!] : (relationSchema.joinTable as JoinTableMultipleColumnsOptions).joinColumns) as any,\n inverseJoinColumns: ((relationSchema.joinTable as JoinTableOptions).inverseJoinColumn ? [(relationSchema.joinTable as JoinTableOptions).inverseJoinColumn!] : (relationSchema.joinTable as JoinTableMultipleColumnsOptions).inverseJoinColumns) as any,\n };\n metadataArgsStorage.joinTables.push(joinTable);\n }\n }\n });\n }\n\n // add index metadata args from the schema\n if (options.indices) {\n options.indices.forEach(index => {\n const indexAgrs: IndexMetadataArgs = {\n target: options.target || options.name,\n name: index.name,\n unique: index.unique === true ? true : false,\n spatial: index.spatial === true ? true : false,\n fulltext: index.fulltext === true ? true : false,\n parser: index.parser,\n synchronize: index.synchronize === false ? false : true,\n where: index.where,\n sparse: index.sparse,\n columns: index.columns\n };\n metadataArgsStorage.indices.push(indexAgrs);\n });\n }\n\n // add unique metadata args from the schema\n if (options.uniques) {\n options.uniques.forEach(unique => {\n const uniqueAgrs: UniqueMetadataArgs = {\n target: options.target || options.name,\n name: unique.name,\n columns: unique.columns,\n deferrable: unique.deferrable,\n };\n metadataArgsStorage.uniques.push(uniqueAgrs);\n });\n }\n\n // add check metadata args from the schema\n if (options.checks) {\n options.checks.forEach(check => {\n const checkAgrs: CheckMetadataArgs = {\n target: options.target || options.name,\n name: check.name,\n expression: check.expression\n };\n metadataArgsStorage.checks.push(checkAgrs);\n });\n }\n\n // add exclusion metadata args from the schema\n if (options.exclusions) {\n options.exclusions.forEach(exclusion => {\n const exclusionArgs: ExclusionMetadataArgs = {\n target: options.target || options.name,\n name: exclusion.name,\n expression: exclusion.expression\n };\n metadataArgsStorage.exclusions.push(exclusionArgs);\n });\n }\n\n if (options.embeddeds) {\n Object.keys(options.embeddeds).forEach(columnName => {\n const embeddedOptions = options.embeddeds![columnName];\n\n if (!embeddedOptions.schema)\n throw EntitySchemaEmbeddedError.createEntitySchemaIsRequiredException(columnName);\n\n const embeddedSchema = embeddedOptions.schema.options;\n\n metadataArgsStorage.embeddeds.push({\n target: options.target || options.name,\n propertyName: columnName,\n isArray: embeddedOptions.array === true,\n prefix: embeddedOptions.prefix !== undefined ? embeddedOptions.prefix : undefined,\n type: () => embeddedSchema?.target || embeddedSchema.name,\n });\n\n this.transformColumnsRecursive(embeddedSchema, metadataArgsStorage);\n });\n }\n }\n}\n"],"sourceRoot":".."}
package/index.d.ts CHANGED
@@ -156,4 +156,5 @@ export { EntitySchema } from "./entity-schema/EntitySchema";
156
156
  export { EntitySchemaColumnOptions } from "./entity-schema/EntitySchemaColumnOptions";
157
157
  export { EntitySchemaIndexOptions } from "./entity-schema/EntitySchemaIndexOptions";
158
158
  export { EntitySchemaRelationOptions } from "./entity-schema/EntitySchemaRelationOptions";
159
+ export { EntitySchemaEmbeddedColumnOptions } from "./entity-schema/EntitySchemaEmbeddedColumnOptions";
159
160
  export { ColumnType } from "./driver/types/ColumnTypes";
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntitySchema = exports.DefaultNamingStrategy = exports.MigrationExecutor = exports.Migration = exports.MongoEntityManager = exports.QueryResult = exports.DeleteResult = exports.UpdateResult = exports.InsertResult = exports.NotBrackets = exports.Brackets = exports.RelationQueryBuilder = exports.UpdateQueryBuilder = exports.InsertQueryBuilder = exports.DeleteQueryBuilder = exports.SelectQueryBuilder = exports.QueryBuilder = exports.ConnectionManager = exports.Connection = exports.ConnectionOptionsReader = void 0;
3
+ exports.EntitySchemaEmbeddedColumnOptions = exports.EntitySchema = exports.DefaultNamingStrategy = exports.MigrationExecutor = exports.Migration = exports.MongoEntityManager = exports.QueryResult = exports.DeleteResult = exports.UpdateResult = exports.InsertResult = exports.NotBrackets = exports.Brackets = exports.RelationQueryBuilder = exports.UpdateQueryBuilder = exports.InsertQueryBuilder = exports.DeleteQueryBuilder = exports.SelectQueryBuilder = exports.QueryBuilder = exports.ConnectionManager = exports.Connection = exports.ConnectionOptionsReader = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  /*!
6
6
  */
@@ -163,5 +163,7 @@ var DefaultNamingStrategy_1 = require("./naming-strategy/DefaultNamingStrategy")
163
163
  Object.defineProperty(exports, "DefaultNamingStrategy", { enumerable: true, get: function () { return DefaultNamingStrategy_1.DefaultNamingStrategy; } });
164
164
  var EntitySchema_1 = require("./entity-schema/EntitySchema");
165
165
  Object.defineProperty(exports, "EntitySchema", { enumerable: true, get: function () { return EntitySchema_1.EntitySchema; } });
166
+ var EntitySchemaEmbeddedColumnOptions_1 = require("./entity-schema/EntitySchemaEmbeddedColumnOptions");
167
+ Object.defineProperty(exports, "EntitySchemaEmbeddedColumnOptions", { enumerable: true, get: function () { return EntitySchemaEmbeddedColumnOptions_1.EntitySchemaEmbeddedColumnOptions; } });
166
168
 
167
169
  //# sourceMappingURL=index.js.map