typeorm 0.2.43-dev.a5493fb → 0.2.44-dev.5a71803

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 (128) hide show
  1. package/browser/driver/Driver.d.ts +2 -1
  2. package/browser/driver/Driver.js.map +1 -1
  3. package/browser/driver/expo/ExpoQueryRunner.js +69 -45
  4. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  5. package/browser/driver/mysql/MysqlDriver.d.ts +6 -2
  6. package/browser/driver/mysql/MysqlDriver.js +42 -6
  7. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  8. package/browser/driver/sap/SapQueryRunner.js +12 -0
  9. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  10. package/browser/entity-manager/EntityManager.js +3 -1
  11. package/browser/entity-manager/EntityManager.js.map +1 -1
  12. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  13. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  14. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
  15. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  16. package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  17. package/browser/entity-schema/EntitySchemaEmbeddedError.js +18 -0
  18. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  19. package/browser/entity-schema/EntitySchemaOptions.d.ts +7 -1
  20. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  21. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  22. package/browser/entity-schema/EntitySchemaTransformer.js +217 -191
  23. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  24. package/browser/error/ReturningStatementNotSupportedError.js +1 -1
  25. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  26. package/browser/index.d.ts +1 -0
  27. package/browser/index.js +1 -0
  28. package/browser/index.js.map +1 -1
  29. package/browser/metadata/EmbeddedMetadata.d.ts +1 -1
  30. package/browser/metadata/EmbeddedMetadata.js +3 -0
  31. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  32. package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  33. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  34. package/browser/metadata-builder/EntityMetadataBuilder.js +3 -1
  35. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  36. package/browser/persistence/SubjectExecutor.d.ts +0 -2
  37. package/browser/persistence/SubjectExecutor.js +9 -100
  38. package/browser/persistence/SubjectExecutor.js.map +1 -1
  39. package/browser/query-builder/DeleteQueryBuilder.js +7 -10
  40. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  41. package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  42. package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
  43. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
  44. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -1
  45. package/browser/query-builder/InsertQueryBuilder.js +19 -5
  46. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  47. package/browser/query-builder/QueryBuilder.d.ts +2 -1
  48. package/browser/query-builder/QueryBuilder.js +2 -2
  49. package/browser/query-builder/QueryBuilder.js.map +1 -1
  50. package/browser/query-builder/QueryExpressionMap.d.ts +1 -0
  51. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  52. package/browser/query-builder/RelationLoader.js +1 -1
  53. package/browser/query-builder/RelationLoader.js.map +1 -1
  54. package/browser/query-builder/ReturningResultsEntityUpdator.js +4 -3
  55. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  56. package/browser/query-builder/SoftDeleteQueryBuilder.js +7 -12
  57. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  58. package/browser/query-builder/UpdateQueryBuilder.js +7 -11
  59. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  60. package/browser/repository/UpsertOptions.d.ts +4 -0
  61. package/browser/repository/UpsertOptions.js.map +1 -1
  62. package/browser/util/ImportUtils.js +2 -1
  63. package/browser/util/ImportUtils.js.map +1 -1
  64. package/driver/Driver.d.ts +2 -1
  65. package/driver/Driver.js.map +1 -1
  66. package/driver/expo/ExpoQueryRunner.js +69 -45
  67. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  68. package/driver/mysql/MysqlDriver.d.ts +6 -2
  69. package/driver/mysql/MysqlDriver.js +42 -6
  70. package/driver/mysql/MysqlDriver.js.map +1 -1
  71. package/driver/sap/SapQueryRunner.js +12 -0
  72. package/driver/sap/SapQueryRunner.js.map +1 -1
  73. package/entity-manager/EntityManager.js +3 -1
  74. package/entity-manager/EntityManager.js.map +1 -1
  75. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  76. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  77. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +11 -0
  78. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  79. package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  80. package/entity-schema/EntitySchemaEmbeddedError.js +21 -0
  81. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  82. package/entity-schema/EntitySchemaOptions.d.ts +7 -1
  83. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  84. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  85. package/entity-schema/EntitySchemaTransformer.js +217 -191
  86. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  87. package/error/ReturningStatementNotSupportedError.js +1 -1
  88. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  89. package/index.d.ts +1 -0
  90. package/index.js +3 -1
  91. package/index.js.map +1 -1
  92. package/index.mjs +2 -0
  93. package/metadata/EmbeddedMetadata.d.ts +1 -1
  94. package/metadata/EmbeddedMetadata.js +3 -0
  95. package/metadata/EmbeddedMetadata.js.map +1 -1
  96. package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  97. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  98. package/metadata-builder/EntityMetadataBuilder.js +3 -1
  99. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  100. package/package.json +1 -1
  101. package/persistence/SubjectExecutor.d.ts +0 -2
  102. package/persistence/SubjectExecutor.js +9 -100
  103. package/persistence/SubjectExecutor.js.map +1 -1
  104. package/query-builder/DeleteQueryBuilder.js +7 -10
  105. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  106. package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  107. package/query-builder/InsertOrUpdateOptions.js +4 -0
  108. package/query-builder/InsertOrUpdateOptions.js.map +1 -0
  109. package/query-builder/InsertQueryBuilder.d.ts +2 -1
  110. package/query-builder/InsertQueryBuilder.js +19 -5
  111. package/query-builder/InsertQueryBuilder.js.map +1 -1
  112. package/query-builder/QueryBuilder.d.ts +2 -1
  113. package/query-builder/QueryBuilder.js +2 -2
  114. package/query-builder/QueryBuilder.js.map +1 -1
  115. package/query-builder/QueryExpressionMap.d.ts +1 -0
  116. package/query-builder/QueryExpressionMap.js.map +1 -1
  117. package/query-builder/RelationLoader.js +5 -5
  118. package/query-builder/RelationLoader.js.map +1 -1
  119. package/query-builder/ReturningResultsEntityUpdator.js +4 -3
  120. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  121. package/query-builder/SoftDeleteQueryBuilder.js +7 -12
  122. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  123. package/query-builder/UpdateQueryBuilder.js +7 -11
  124. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  125. package/repository/UpsertOptions.d.ts +4 -0
  126. package/repository/UpsertOptions.js.map +1 -1
  127. package/util/ImportUtils.js +2 -1
  128. package/util/ImportUtils.js.map +1 -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":"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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\";\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":".."}
@@ -10,7 +10,7 @@ var TypeORMError_1 = require("./TypeORMError");
10
10
  var ReturningStatementNotSupportedError = /** @class */ (function (_super) {
11
11
  (0, tslib_1.__extends)(ReturningStatementNotSupportedError, _super);
12
12
  function ReturningStatementNotSupportedError() {
13
- return _super.call(this, "OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL databases.") || this;
13
+ return _super.call(this, "OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL or MariaDB databases.") || this;
14
14
  }
15
15
  return ReturningStatementNotSupportedError;
16
16
  }(TypeORMError_1.TypeORMError));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/ReturningStatementNotSupportedError.ts"],"names":[],"mappings":";;;;AAAA,+CAA4C;AAE5C;;;GAGG;AACH;IAAyD,oEAAY;IACjE;eACI,kBACI,4FAA4F,CAC/F;IACL,CAAC;IACL,0CAAC;AAAD,CANA,AAMC,CANwD,2BAAY,GAMpE;AANY,kFAAmC","file":"ReturningStatementNotSupportedError.js","sourcesContent":["import {TypeORMError} from \"./TypeORMError\";\n\n/**\n * Thrown when user tries to build a query with RETURNING / OUTPUT statement,\n * but used database does not support it.\n */\nexport class ReturningStatementNotSupportedError extends TypeORMError {\n constructor() {\n super(\n `OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL databases.`\n );\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/error/ReturningStatementNotSupportedError.ts"],"names":[],"mappings":";;;;AAAA,+CAA4C;AAE5C;;;GAGG;AACH;IAAyD,oEAAY;IACjE;eACI,kBACI,uGAAuG,CAC1G;IACL,CAAC;IACL,0CAAC;AAAD,CANA,AAMC,CANwD,2BAAY,GAMpE;AANY,kFAAmC","file":"ReturningStatementNotSupportedError.js","sourcesContent":["import {TypeORMError} from \"./TypeORMError\";\n\n/**\n * Thrown when user tries to build a query with RETURNING / OUTPUT statement,\n * but used database does not support it.\n */\nexport class ReturningStatementNotSupportedError extends TypeORMError {\n constructor() {\n super(\n `OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL or MariaDB databases.`\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