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
@@ -1,5 +1,6 @@
1
1
  import { __values } from "tslib";
2
2
  import { MetadataArgsStorage } from "../metadata-args/MetadataArgsStorage";
3
+ import { EntitySchemaEmbeddedError } from "./EntitySchemaEmbeddedError";
3
4
  /**
4
5
  * Transforms entity schema into metadata args storage.
5
6
  * The result will be just like entities read from decorators.
@@ -14,6 +15,7 @@ var EntitySchemaTransformer = /** @class */ (function () {
14
15
  * Transforms entity schema into new metadata args storage object.
15
16
  */
16
17
  EntitySchemaTransformer.prototype.transform = function (schemas) {
18
+ var _this = this;
17
19
  var metadataArgsStorage = new MetadataArgsStorage();
18
20
  schemas.forEach(function (entitySchema) {
19
21
  var options = entitySchema.options;
@@ -30,209 +32,233 @@ var EntitySchemaTransformer = /** @class */ (function () {
30
32
  expression: options.expression
31
33
  };
32
34
  metadataArgsStorage.tables.push(tableMetadata);
33
- // add columns metadata args from the schema
34
- Object.keys(options.columns).forEach(function (columnName) {
35
- var column = options.columns[columnName];
36
- var mode = "regular";
37
- if (column.createDate)
38
- mode = "createDate";
39
- if (column.updateDate)
40
- mode = "updateDate";
41
- if (column.deleteDate)
42
- mode = "deleteDate";
43
- if (column.version)
44
- mode = "version";
45
- if (column.treeChildrenCount)
46
- mode = "treeChildrenCount";
47
- if (column.treeLevel)
48
- mode = "treeLevel";
49
- if (column.objectId)
50
- mode = "objectId";
51
- var columnAgrs = {
35
+ _this.transformColumnsRecursive(options, metadataArgsStorage);
36
+ });
37
+ return metadataArgsStorage;
38
+ };
39
+ EntitySchemaTransformer.prototype.transformColumnsRecursive = function (options, metadataArgsStorage) {
40
+ var _this = this;
41
+ // add columns metadata args from the schema
42
+ Object.keys(options.columns).forEach(function (columnName) {
43
+ var column = options.columns[columnName];
44
+ var regularColumn = column;
45
+ var mode = "regular";
46
+ if (regularColumn.createDate)
47
+ mode = "createDate";
48
+ if (regularColumn.updateDate)
49
+ mode = "updateDate";
50
+ if (regularColumn.deleteDate)
51
+ mode = "deleteDate";
52
+ if (regularColumn.version)
53
+ mode = "version";
54
+ if (regularColumn.treeChildrenCount)
55
+ mode = "treeChildrenCount";
56
+ if (regularColumn.treeLevel)
57
+ mode = "treeLevel";
58
+ if (regularColumn.objectId)
59
+ mode = "objectId";
60
+ var columnAgrs = {
61
+ target: options.target || options.name,
62
+ mode: mode,
63
+ propertyName: columnName,
64
+ options: {
65
+ type: regularColumn.type,
66
+ name: regularColumn.objectId ? "_id" : regularColumn.name,
67
+ length: regularColumn.length,
68
+ width: regularColumn.width,
69
+ nullable: regularColumn.nullable,
70
+ readonly: regularColumn.readonly,
71
+ update: regularColumn.update,
72
+ select: regularColumn.select,
73
+ insert: regularColumn.insert,
74
+ primary: regularColumn.primary,
75
+ unique: regularColumn.unique,
76
+ comment: regularColumn.comment,
77
+ default: regularColumn.default,
78
+ onUpdate: regularColumn.onUpdate,
79
+ precision: regularColumn.precision,
80
+ scale: regularColumn.scale,
81
+ zerofill: regularColumn.zerofill,
82
+ unsigned: regularColumn.unsigned,
83
+ charset: regularColumn.charset,
84
+ collation: regularColumn.collation,
85
+ enum: regularColumn.enum,
86
+ asExpression: regularColumn.asExpression,
87
+ generatedType: regularColumn.generatedType,
88
+ hstoreType: regularColumn.hstoreType,
89
+ array: regularColumn.array,
90
+ transformer: regularColumn.transformer,
91
+ spatialFeatureType: regularColumn.spatialFeatureType,
92
+ srid: regularColumn.srid
93
+ }
94
+ };
95
+ metadataArgsStorage.columns.push(columnAgrs);
96
+ if (regularColumn.generated) {
97
+ var generationArgs = {
52
98
  target: options.target || options.name,
53
- mode: mode,
54
99
  propertyName: columnName,
100
+ strategy: typeof regularColumn.generated === "string" ? regularColumn.generated : "increment"
101
+ };
102
+ metadataArgsStorage.generations.push(generationArgs);
103
+ }
104
+ if (regularColumn.unique)
105
+ metadataArgsStorage.uniques.push({
106
+ target: options.target || options.name,
107
+ columns: [columnName]
108
+ });
109
+ });
110
+ // add relation metadata args from the schema
111
+ if (options.relations) {
112
+ Object.keys(options.relations).forEach(function (relationName) {
113
+ var e_1, _a;
114
+ var relationSchema = options.relations[relationName];
115
+ var relation = {
116
+ target: options.target || options.name,
117
+ propertyName: relationName,
118
+ relationType: relationSchema.type,
119
+ isLazy: relationSchema.lazy || false,
120
+ type: relationSchema.target,
121
+ inverseSideProperty: relationSchema.inverseSide,
122
+ isTreeParent: relationSchema.treeParent,
123
+ isTreeChildren: relationSchema.treeChildren,
55
124
  options: {
56
- type: column.type,
57
- name: column.objectId ? "_id" : column.name,
58
- length: column.length,
59
- width: column.width,
60
- nullable: column.nullable,
61
- readonly: column.readonly,
62
- update: column.update,
63
- select: column.select,
64
- insert: column.insert,
65
- primary: column.primary,
66
- unique: column.unique,
67
- comment: column.comment,
68
- default: column.default,
69
- onUpdate: column.onUpdate,
70
- precision: column.precision,
71
- scale: column.scale,
72
- zerofill: column.zerofill,
73
- unsigned: column.unsigned,
74
- charset: column.charset,
75
- collation: column.collation,
76
- enum: column.enum,
77
- asExpression: column.asExpression,
78
- generatedType: column.generatedType,
79
- hstoreType: column.hstoreType,
80
- array: column.array,
81
- transformer: column.transformer,
82
- spatialFeatureType: column.spatialFeatureType,
83
- srid: column.srid
125
+ eager: relationSchema.eager || false,
126
+ cascade: relationSchema.cascade,
127
+ nullable: relationSchema.nullable,
128
+ onDelete: relationSchema.onDelete,
129
+ onUpdate: relationSchema.onUpdate,
130
+ deferrable: relationSchema.deferrable,
131
+ primary: relationSchema.primary,
132
+ createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,
133
+ persistence: relationSchema.persistence,
134
+ orphanedRowAction: relationSchema.orphanedRowAction
84
135
  }
85
136
  };
86
- metadataArgsStorage.columns.push(columnAgrs);
87
- if (column.generated) {
88
- var generationArgs = {
89
- target: options.target || options.name,
90
- propertyName: columnName,
91
- strategy: typeof column.generated === "string" ? column.generated : "increment"
92
- };
93
- metadataArgsStorage.generations.push(generationArgs);
94
- }
95
- if (column.unique)
96
- metadataArgsStorage.uniques.push({ target: options.target || options.name, columns: [columnName] });
97
- });
98
- // add relation metadata args from the schema
99
- if (options.relations) {
100
- Object.keys(options.relations).forEach(function (relationName) {
101
- var e_1, _a;
102
- var relationSchema = options.relations[relationName];
103
- var relation = {
104
- target: options.target || options.name,
105
- propertyName: relationName,
106
- relationType: relationSchema.type,
107
- isLazy: relationSchema.lazy || false,
108
- type: relationSchema.target,
109
- inverseSideProperty: relationSchema.inverseSide,
110
- isTreeParent: relationSchema.treeParent,
111
- isTreeChildren: relationSchema.treeChildren,
112
- options: {
113
- eager: relationSchema.eager || false,
114
- cascade: relationSchema.cascade,
115
- nullable: relationSchema.nullable,
116
- onDelete: relationSchema.onDelete,
117
- onUpdate: relationSchema.onUpdate,
118
- deferrable: relationSchema.deferrable,
119
- primary: relationSchema.primary,
120
- createForeignKeyConstraints: relationSchema.createForeignKeyConstraints,
121
- persistence: relationSchema.persistence,
122
- orphanedRowAction: relationSchema.orphanedRowAction
123
- }
124
- };
125
- metadataArgsStorage.relations.push(relation);
126
- // add join column
127
- if (relationSchema.joinColumn) {
128
- if (typeof relationSchema.joinColumn === "boolean") {
129
- var joinColumn = {
130
- target: options.target || options.name,
131
- propertyName: relationName
132
- };
133
- metadataArgsStorage.joinColumns.push(joinColumn);
137
+ metadataArgsStorage.relations.push(relation);
138
+ // add join column
139
+ if (relationSchema.joinColumn) {
140
+ if (typeof relationSchema.joinColumn === "boolean") {
141
+ var joinColumn = {
142
+ target: options.target || options.name,
143
+ propertyName: relationName
144
+ };
145
+ metadataArgsStorage.joinColumns.push(joinColumn);
146
+ }
147
+ else {
148
+ var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];
149
+ try {
150
+ for (var joinColumnsOptions_1 = __values(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) {
151
+ var joinColumnOption = joinColumnsOptions_1_1.value;
152
+ var joinColumn = {
153
+ target: options.target || options.name,
154
+ propertyName: relationName,
155
+ name: joinColumnOption.name,
156
+ referencedColumnName: joinColumnOption.referencedColumnName
157
+ };
158
+ metadataArgsStorage.joinColumns.push(joinColumn);
159
+ }
134
160
  }
135
- else {
136
- var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];
161
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
162
+ finally {
137
163
  try {
138
- for (var joinColumnsOptions_1 = __values(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) {
139
- var joinColumnOption = joinColumnsOptions_1_1.value;
140
- var joinColumn = {
141
- target: options.target || options.name,
142
- propertyName: relationName,
143
- name: joinColumnOption.name,
144
- referencedColumnName: joinColumnOption.referencedColumnName
145
- };
146
- metadataArgsStorage.joinColumns.push(joinColumn);
147
- }
148
- }
149
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
150
- finally {
151
- try {
152
- if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1);
153
- }
154
- finally { if (e_1) throw e_1.error; }
164
+ if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1);
155
165
  }
166
+ finally { if (e_1) throw e_1.error; }
156
167
  }
157
168
  }
158
- // add join table
159
- if (relationSchema.joinTable) {
160
- if (typeof relationSchema.joinTable === "boolean") {
161
- var joinTable = {
162
- target: options.target || options.name,
163
- propertyName: relationName
164
- };
165
- metadataArgsStorage.joinTables.push(joinTable);
166
- }
167
- else {
168
- var joinTable = {
169
- target: options.target || options.name,
170
- propertyName: relationName,
171
- name: relationSchema.joinTable.name,
172
- database: relationSchema.joinTable.database,
173
- schema: relationSchema.joinTable.schema,
174
- joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns),
175
- inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns),
176
- };
177
- metadataArgsStorage.joinTables.push(joinTable);
178
- }
169
+ }
170
+ // add join table
171
+ if (relationSchema.joinTable) {
172
+ if (typeof relationSchema.joinTable === "boolean") {
173
+ var joinTable = {
174
+ target: options.target || options.name,
175
+ propertyName: relationName
176
+ };
177
+ metadataArgsStorage.joinTables.push(joinTable);
179
178
  }
179
+ else {
180
+ var joinTable = {
181
+ target: options.target || options.name,
182
+ propertyName: relationName,
183
+ name: relationSchema.joinTable.name,
184
+ database: relationSchema.joinTable.database,
185
+ schema: relationSchema.joinTable.schema,
186
+ joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns),
187
+ inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns),
188
+ };
189
+ metadataArgsStorage.joinTables.push(joinTable);
190
+ }
191
+ }
192
+ });
193
+ }
194
+ // add index metadata args from the schema
195
+ if (options.indices) {
196
+ options.indices.forEach(function (index) {
197
+ var indexAgrs = {
198
+ target: options.target || options.name,
199
+ name: index.name,
200
+ unique: index.unique === true ? true : false,
201
+ spatial: index.spatial === true ? true : false,
202
+ fulltext: index.fulltext === true ? true : false,
203
+ parser: index.parser,
204
+ synchronize: index.synchronize === false ? false : true,
205
+ where: index.where,
206
+ sparse: index.sparse,
207
+ columns: index.columns
208
+ };
209
+ metadataArgsStorage.indices.push(indexAgrs);
210
+ });
211
+ }
212
+ // add unique metadata args from the schema
213
+ if (options.uniques) {
214
+ options.uniques.forEach(function (unique) {
215
+ var uniqueAgrs = {
216
+ target: options.target || options.name,
217
+ name: unique.name,
218
+ columns: unique.columns,
219
+ deferrable: unique.deferrable,
220
+ };
221
+ metadataArgsStorage.uniques.push(uniqueAgrs);
222
+ });
223
+ }
224
+ // add check metadata args from the schema
225
+ if (options.checks) {
226
+ options.checks.forEach(function (check) {
227
+ var checkAgrs = {
228
+ target: options.target || options.name,
229
+ name: check.name,
230
+ expression: check.expression
231
+ };
232
+ metadataArgsStorage.checks.push(checkAgrs);
233
+ });
234
+ }
235
+ // add exclusion metadata args from the schema
236
+ if (options.exclusions) {
237
+ options.exclusions.forEach(function (exclusion) {
238
+ var exclusionArgs = {
239
+ target: options.target || options.name,
240
+ name: exclusion.name,
241
+ expression: exclusion.expression
242
+ };
243
+ metadataArgsStorage.exclusions.push(exclusionArgs);
244
+ });
245
+ }
246
+ if (options.embeddeds) {
247
+ Object.keys(options.embeddeds).forEach(function (columnName) {
248
+ var embeddedOptions = options.embeddeds[columnName];
249
+ if (!embeddedOptions.schema)
250
+ throw EntitySchemaEmbeddedError.createEntitySchemaIsRequiredException(columnName);
251
+ var embeddedSchema = embeddedOptions.schema.options;
252
+ metadataArgsStorage.embeddeds.push({
253
+ target: options.target || options.name,
254
+ propertyName: columnName,
255
+ isArray: embeddedOptions.array === true,
256
+ prefix: embeddedOptions.prefix !== undefined ? embeddedOptions.prefix : undefined,
257
+ type: function () { return (embeddedSchema === null || embeddedSchema === void 0 ? void 0 : embeddedSchema.target) || embeddedSchema.name; },
180
258
  });
181
- }
182
- // add index metadata args from the schema
183
- if (options.indices) {
184
- options.indices.forEach(function (index) {
185
- var indexAgrs = {
186
- target: options.target || options.name,
187
- name: index.name,
188
- unique: index.unique === true ? true : false,
189
- spatial: index.spatial === true ? true : false,
190
- fulltext: index.fulltext === true ? true : false,
191
- parser: index.parser,
192
- synchronize: index.synchronize === false ? false : true,
193
- where: index.where,
194
- sparse: index.sparse,
195
- columns: index.columns
196
- };
197
- metadataArgsStorage.indices.push(indexAgrs);
198
- });
199
- }
200
- // add unique metadata args from the schema
201
- if (options.uniques) {
202
- options.uniques.forEach(function (unique) {
203
- var uniqueAgrs = {
204
- target: options.target || options.name,
205
- name: unique.name,
206
- columns: unique.columns,
207
- deferrable: unique.deferrable,
208
- };
209
- metadataArgsStorage.uniques.push(uniqueAgrs);
210
- });
211
- }
212
- // add check metadata args from the schema
213
- if (options.checks) {
214
- options.checks.forEach(function (check) {
215
- var checkAgrs = {
216
- target: options.target || options.name,
217
- name: check.name,
218
- expression: check.expression
219
- };
220
- metadataArgsStorage.checks.push(checkAgrs);
221
- });
222
- }
223
- // add exclusion metadata args from the schema
224
- if (options.exclusions) {
225
- options.exclusions.forEach(function (exclusion) {
226
- var exclusionArgs = {
227
- target: options.target || options.name,
228
- name: exclusion.name,
229
- expression: exclusion.expression
230
- };
231
- metadataArgsStorage.exclusions.push(exclusionArgs);
232
- });
233
- }
234
- });
235
- return metadataArgsStorage;
259
+ _this.transformColumnsRecursive(embeddedSchema, metadataArgsStorage);
260
+ });
261
+ }
236
262
  };
237
263
  return EntitySchemaTransformer;
238
264
  }());
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/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":["../browser/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":".."}
@@ -7,7 +7,7 @@ import { TypeORMError } from "./TypeORMError";
7
7
  var ReturningStatementNotSupportedError = /** @class */ (function (_super) {
8
8
  __extends(ReturningStatementNotSupportedError, _super);
9
9
  function ReturningStatementNotSupportedError() {
10
- return _super.call(this, "OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL databases.") || this;
10
+ return _super.call(this, "OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL or MariaDB databases.") || this;
11
11
  }
12
12
  return ReturningStatementNotSupportedError;
13
13
  }(TypeORMError));
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/error/ReturningStatementNotSupportedError.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH;IAAyD,uDAAY;IACjE;eACI,kBACI,4FAA4F,CAC/F;IACL,CAAC;IACL,0CAAC;AAAD,CANA,AAMC,CANwD,YAAY,GAMpE","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":["../browser/src/error/ReturningStatementNotSupportedError.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH;IAAyD,uDAAY;IACjE;eACI,kBACI,uGAAuG,CAC1G;IACL,CAAC;IACL,0CAAC;AAAD,CANA,AAMC,CANwD,YAAY,GAMpE","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":".."}
@@ -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/browser/index.js CHANGED
@@ -139,5 +139,6 @@ export { Migration } from "./migration/Migration";
139
139
  export { MigrationExecutor } from "./migration/MigrationExecutor";
140
140
  export { DefaultNamingStrategy } from "./naming-strategy/DefaultNamingStrategy";
141
141
  export { EntitySchema } from "./entity-schema/EntitySchema";
142
+ export { EntitySchemaEmbeddedColumnOptions } from "./entity-schema/EntitySchemaEmbeddedColumnOptions";
142
143
 
143
144
  //# sourceMappingURL=index.js.map