typeorm 0.2.30 → 0.2.31
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.
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +6 -0
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +6 -6
- package/browser/decorator/relations/ManyToOne.js +5 -5
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +3 -2
- package/browser/decorator/relations/OneToMany.js +4 -3
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/transaction/Transaction.d.ts +1 -1
- package/browser/decorator/transaction/Transaction.js +2 -2
- package/browser/decorator/transaction/Transaction.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +10 -4
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
- package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +3 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +3 -0
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +7 -5
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/error/index.d.ts +61 -0
- package/browser/error/index.js +63 -0
- package/browser/error/index.js.map +1 -0
- package/browser/index.d.ts +1 -1
- package/browser/index.js +1 -1
- package/browser/index.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +11 -0
- package/browser/metadata/RelationMetadata.js +17 -2
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +5 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +5 -5
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/persistence/SubjectExecutor.js +9 -5
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
- package/browser/query-builder/InsertQueryBuilder.js +31 -5
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js +5 -3
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +13 -1
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js +2 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/util/DateUtils.d.ts +1 -1
- package/browser/util/DateUtils.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +9 -2
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +6 -0
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +6 -6
- package/decorator/relations/ManyToOne.js +5 -5
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +3 -2
- package/decorator/relations/OneToMany.js +4 -3
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/transaction/Transaction.d.ts +1 -1
- package/decorator/transaction/Transaction.js +2 -2
- package/decorator/transaction/Transaction.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +10 -4
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
- package/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/driver/oracle/OracleDriver.js +3 -0
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +3 -0
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +7 -5
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +1 -1
- package/driver/types/ColumnTypes.js.map +1 -1
- package/error/index.d.ts +61 -0
- package/error/index.js +66 -0
- package/error/index.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +11 -0
- package/metadata/RelationMetadata.js +17 -2
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +5 -1
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
- package/metadata-builder/RelationJoinColumnBuilder.js +5 -5
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/package.json +2 -2
- package/persistence/SubjectExecutor.js +9 -5
- package/persistence/SubjectExecutor.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +6 -0
- package/query-builder/InsertQueryBuilder.js +31 -5
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.js +5 -3
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +13 -1
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.js +2 -1
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/util/DateUtils.d.ts +1 -1
- package/util/DateUtils.js.map +1 -1
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var __1 = require("../../");
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* Entity2 can have
|
|
7
|
-
* on its
|
|
5
|
+
* A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but
|
|
6
|
+
* Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of
|
|
7
|
+
* Entity2 on its side of the relation.
|
|
8
8
|
*/
|
|
9
9
|
function ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {
|
|
10
|
-
//
|
|
10
|
+
// Normalize parameters.
|
|
11
11
|
var inverseSideProperty;
|
|
12
12
|
if (typeof inverseSideOrOptions === "object") {
|
|
13
13
|
options = inverseSideOrOptions;
|
|
@@ -18,7 +18,7 @@ function ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {
|
|
|
18
18
|
return function (object, propertyName) {
|
|
19
19
|
if (!options)
|
|
20
20
|
options = {};
|
|
21
|
-
//
|
|
21
|
+
// Now try to determine if it is a lazy relation.
|
|
22
22
|
var isLazy = options && options.lazy === true ? true : false;
|
|
23
23
|
if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination
|
|
24
24
|
var reflectedType = Reflect.getMetadata("design:type", object, propertyName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/decorator/relations/ManyToOne.ts"],"names":[],"mappings":";;AAAA,4BAA2E;AAmB3E;;;;GAIG;AACH,SAAgB,SAAS,CAAI,oBAA4D,EAC5D,oBAAkE,EAClE,OAAyB;IAElD,
|
|
1
|
+
{"version":3,"sources":["../../src/decorator/relations/ManyToOne.ts"],"names":[],"mappings":";;AAAA,4BAA2E;AAmB3E;;;;GAIG;AACH,SAAgB,SAAS,CAAI,oBAA4D,EAC5D,oBAAkE,EAClE,OAAyB;IAElD,wBAAwB;IACxB,IAAI,mBAAgD,CAAC;IACrD,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;QAC1C,OAAO,GAAqB,oBAAoB,CAAC;KACpD;SAAM;QACH,mBAAmB,GAAiC,oBAAoB,CAAC;KAC5E;IAED,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAqB,CAAC;QAE9C,iDAAiD;QACjD,IAAI,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,MAAM,IAAI,OAAO,IAAK,OAAe,CAAC,WAAW,EAAE,EAAE,0BAA0B;YAChF,IAAM,aAAa,GAAI,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACxF,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;gBACzG,MAAM,GAAG,IAAI,CAAC;SACrB;QAED,0BAAsB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YACpC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,+BAA+B;YAC/B,YAAY,EAAE,aAAa;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,mBAAmB,EAAE,mBAAmB;YACxC,OAAO,EAAE,OAAO;SACK,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC;AAlCD,8BAkCC","file":"ManyToOne.js","sourcesContent":["import {getMetadataArgsStorage, ObjectType, RelationOptions} from \"../../\";\nimport {RelationMetadataArgs} from \"../../metadata-args/RelationMetadataArgs\";\n\n/**\n * A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but\n * Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of\n * Entity2 on its side of the relation.\n */\nexport function ManyToOne<T>(typeFunctionOrTarget: string|((type?: any) => ObjectType<T>), options?: RelationOptions): PropertyDecorator;\n\n/**\n * A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but\n * Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of\n * Entity2 on its side of the relation.\n */\nexport function ManyToOne<T>(typeFunctionOrTarget: string|((type?: any) => ObjectType<T>),\n inverseSide?: string|((object: T) => any),\n options?: RelationOptions): PropertyDecorator;\n\n/**\n * A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but\n * Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of\n * Entity2 on its side of the relation.\n */\nexport function ManyToOne<T>(typeFunctionOrTarget: string|((type?: any) => ObjectType<T>),\n inverseSideOrOptions?: string|((object: T) => any)|RelationOptions,\n options?: RelationOptions): PropertyDecorator {\n\n // Normalize parameters.\n let inverseSideProperty: string|((object: T) => any);\n if (typeof inverseSideOrOptions === \"object\") {\n options = <RelationOptions> inverseSideOrOptions;\n } else {\n inverseSideProperty = <string|((object: T) => any)> inverseSideOrOptions;\n }\n\n return function (object: Object, propertyName: string) {\n if (!options) options = {} as RelationOptions;\n\n // Now try to determine if it is a lazy relation.\n let isLazy = options && options.lazy === true ? true : false;\n if (!isLazy && Reflect && (Reflect as any).getMetadata) { // automatic determination\n const reflectedType = (Reflect as any).getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n\n getMetadataArgsStorage().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n relationType: \"many-to-one\",\n isLazy: isLazy,\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSideProperty,\n options: options\n } as RelationMetadataArgs);\n };\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ObjectType, RelationOptions } from "../../";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Entity2 has only one Entity1. Entity2 is the owner of the relationship and stores
|
|
3
|
+
* A one-to-many relation allows creating the type of relation where Entity1 can have multiple instances of Entity2,
|
|
4
|
+
* but Entity2 has only one Entity1. Entity2 is the owner of the relationship, and stores the id of Entity1 on its
|
|
5
|
+
* side of the relation.
|
|
5
6
|
*/
|
|
6
7
|
export declare function OneToMany<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), inverseSide: string | ((object: T) => any), options?: RelationOptions): PropertyDecorator;
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var __1 = require("../../");
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* Entity2 has only one Entity1. Entity2 is the owner of the relationship and stores
|
|
5
|
+
* A one-to-many relation allows creating the type of relation where Entity1 can have multiple instances of Entity2,
|
|
6
|
+
* but Entity2 has only one Entity1. Entity2 is the owner of the relationship, and stores the id of Entity1 on its
|
|
7
|
+
* side of the relation.
|
|
7
8
|
*/
|
|
8
9
|
function OneToMany(typeFunctionOrTarget, inverseSide, options) {
|
|
9
10
|
return function (object, propertyName) {
|
|
10
11
|
if (!options)
|
|
11
12
|
options = {};
|
|
12
|
-
//
|
|
13
|
+
// Now try to determine if it is a lazy relation.
|
|
13
14
|
var isLazy = options && options.lazy === true ? true : false;
|
|
14
15
|
if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination
|
|
15
16
|
var reflectedType = Reflect.getMetadata("design:type", object, propertyName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/decorator/relations/OneToMany.ts"],"names":[],"mappings":";;AAAA,4BAA2E;AAG3E
|
|
1
|
+
{"version":3,"sources":["../../src/decorator/relations/OneToMany.ts"],"names":[],"mappings":";;AAAA,4BAA2E;AAG3E;;;;GAIG;AACH,SAAgB,SAAS,CAAI,oBAA4D,EAAE,WAAwC,EAAE,OAAyB;IAC1J,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAqB,CAAC;QAE9C,iDAAiD;QACjD,IAAI,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,MAAM,IAAI,OAAO,IAAK,OAAe,CAAC,WAAW,EAAE,EAAE,0BAA0B;YAChF,IAAM,aAAa,GAAI,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACxF,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;gBACzG,MAAM,GAAG,IAAI,CAAC;SACrB;QAED,0BAAsB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YACpC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,+BAA+B;YAC/B,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,oBAAoB;YAC1B,mBAAmB,EAAE,WAAW;YAChC,OAAO,EAAE,OAAO;SACK,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC;AAvBD,8BAuBC","file":"OneToMany.js","sourcesContent":["import {getMetadataArgsStorage, ObjectType, RelationOptions} from \"../../\";\nimport {RelationMetadataArgs} from \"../../metadata-args/RelationMetadataArgs\";\n\n/**\n * A one-to-many relation allows creating the type of relation where Entity1 can have multiple instances of Entity2,\n * but Entity2 has only one Entity1. Entity2 is the owner of the relationship, and stores the id of Entity1 on its\n * side of the relation.\n */\nexport function OneToMany<T>(typeFunctionOrTarget: string|((type?: any) => ObjectType<T>), inverseSide: string|((object: T) => any), options?: RelationOptions): PropertyDecorator {\n return function (object: Object, propertyName: string) {\n if (!options) options = {} as RelationOptions;\n\n // Now try to determine if it is a lazy relation.\n let isLazy = options && options.lazy === true ? true : false;\n if (!isLazy && Reflect && (Reflect as any).getMetadata) { // automatic determination\n const reflectedType = (Reflect as any).getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n\n getMetadataArgsStorage().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n isLazy: isLazy,\n relationType: \"one-to-many\",\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSide,\n options: options\n } as RelationMetadataArgs);\n };\n}\n"],"sourceRoot":"../.."}
|
|
@@ -7,7 +7,7 @@ import { TransactionOptions } from "../options/TransactionOptions";
|
|
|
7
7
|
* as a first parameter into the wrapped method.
|
|
8
8
|
*
|
|
9
9
|
* If you want to control at what position in your method parameters entity manager should be injected,
|
|
10
|
-
* then use @
|
|
10
|
+
* then use @TransactionManager() decorator.
|
|
11
11
|
*
|
|
12
12
|
* If you want to use repositories instead of bare entity manager,
|
|
13
13
|
* then use @TransactionRepository() decorator.
|
|
@@ -30,14 +30,14 @@ function Transaction(connectionOrOptions) {
|
|
|
30
30
|
}
|
|
31
31
|
var transactionCallback = function (entityManager) {
|
|
32
32
|
var argsWithInjectedTransactionManagerAndRepositories;
|
|
33
|
-
// filter all @
|
|
33
|
+
// filter all @TransactionManager() and @TransactionRepository() decorator usages for this method
|
|
34
34
|
var transactionEntityManagerMetadatas = __1.getMetadataArgsStorage()
|
|
35
35
|
.filterTransactionEntityManagers(target.constructor, methodName)
|
|
36
36
|
.reverse();
|
|
37
37
|
var transactionRepositoryMetadatas = __1.getMetadataArgsStorage()
|
|
38
38
|
.filterTransactionRepository(target.constructor, methodName)
|
|
39
39
|
.reverse();
|
|
40
|
-
// if there are @
|
|
40
|
+
// if there are @TransactionManager() decorator usages the inject them
|
|
41
41
|
if (transactionEntityManagerMetadatas.length > 0) {
|
|
42
42
|
argsWithInjectedTransactionManagerAndRepositories = tslib_1.__spread(args);
|
|
43
43
|
// replace method params with injection of transactionEntityManager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/decorator/transaction/Transaction.ts"],"names":[],"mappings":";;;AAAA,4BAAyH;AAmBzH,SAAgB,WAAW,CAAC,mBAAiD;IACzE,OAAO,UAAU,MAAc,EAAE,UAAkB,EAAE,UAA8B;QAE/E,0CAA0C;QAC1C,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,+CAA+C;QAC/C,UAAU,CAAC,KAAK,GAAG;YAAA,iBAyElB;YAzE2B,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACtC,IAAI,cAAc,GAAG,SAAS,CAAC;YAC/B,IAAI,cAAc,GAA+B,SAAS,CAAC;YAC3D,IAAI,mBAAmB,EAAE;gBACrB,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;oBACzC,cAAc,GAAG,mBAAmB,CAAC;iBACxC;qBAAM;oBACH,IAAI,mBAAmB,CAAC,cAAc,EAAE;wBACpC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;qBACvD;oBACD,IAAI,mBAAmB,CAAC,SAAS,EAAE;wBAC/B,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC;qBAClD;iBACJ;aACJ;YAED,IAAM,mBAAmB,GAAG,UAAC,aAA4B;gBACrD,IAAI,iDAAwD,CAAC;gBAE7D,
|
|
1
|
+
{"version":3,"sources":["../../src/decorator/transaction/Transaction.ts"],"names":[],"mappings":";;;AAAA,4BAAyH;AAmBzH,SAAgB,WAAW,CAAC,mBAAiD;IACzE,OAAO,UAAU,MAAc,EAAE,UAAkB,EAAE,UAA8B;QAE/E,0CAA0C;QAC1C,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,+CAA+C;QAC/C,UAAU,CAAC,KAAK,GAAG;YAAA,iBAyElB;YAzE2B,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACtC,IAAI,cAAc,GAAG,SAAS,CAAC;YAC/B,IAAI,cAAc,GAA+B,SAAS,CAAC;YAC3D,IAAI,mBAAmB,EAAE;gBACrB,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;oBACzC,cAAc,GAAG,mBAAmB,CAAC;iBACxC;qBAAM;oBACH,IAAI,mBAAmB,CAAC,cAAc,EAAE;wBACpC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;qBACvD;oBACD,IAAI,mBAAmB,CAAC,SAAS,EAAE;wBAC/B,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC;qBAClD;iBACJ;aACJ;YAED,IAAM,mBAAmB,GAAG,UAAC,aAA4B;gBACrD,IAAI,iDAAwD,CAAC;gBAE7D,iGAAiG;gBACjG,IAAM,iCAAiC,GAAG,0BAAsB,EAAE;qBAC7D,+BAA+B,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;qBAC/D,OAAO,EAAE,CAAC;gBACf,IAAM,8BAA8B,GAAG,0BAAsB,EAAE;qBAC1D,2BAA2B,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;qBAC3D,OAAO,EAAE,CAAC;gBAEf,sEAAsE;gBACtE,IAAI,iCAAiC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9C,iDAAiD,oBAAO,IAAI,CAAC,CAAC;oBAC9D,mEAAmE;oBACnE,iCAAiC,CAAC,OAAO,CAAC,UAAA,QAAQ;wBAC9C,iDAAiD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;oBAC/F,CAAC,CAAC,CAAC;iBAEN;qBAAM,IAAI,8BAA8B,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,0FAA0F;oBAChJ,iDAAiD,qBAAI,aAAa,GAAK,IAAI,CAAC,CAAC;iBAEhF;qBAAM;oBACH,iDAAiD,oBAAO,IAAI,CAAC,CAAC;iBACjE;gBAED,sDAAsD;gBACtD,8BAA8B,CAAC,OAAO,CAAC,UAAA,QAAQ;oBAC3C,IAAI,kBAAuB,CAAC;oBAE5B,iFAAiF;oBACjF,QAAQ,QAAQ,CAAC,cAAc,EAAE;wBAC7B,KAAK,cAAU;4BACX,kBAAkB,GAAG,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAW,CAAC,CAAC;4BACvE,MAAM;wBACV,KAAK,mBAAe;4BAChB,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAW,CAAC,CAAC;4BAC5E,MAAM;wBACV,KAAK,kBAAc;4BACf,kBAAkB,GAAG,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAW,CAAC,CAAC;4BAC3E,MAAM;wBACV,qEAAqE;wBACrE;4BACI,kBAAkB,GAAG,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;qBACvF;oBAED,6DAA6D;oBAC7D,iDAAiD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACpG,CAAC,CAAC,CAAC;gBAEH,OAAO,cAAc,CAAC,KAAK,CAAC,KAAI,EAAE,iDAAiD,CAAC,CAAC;YACzF,CAAC,CAAC;YACF,IAAI,cAAc,EAAE;gBAChB,OAAO,iBAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;aACjG;iBAAM;gBACH,OAAO,iBAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;aACjF;QACL,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAlFD,kCAkFC","file":"Transaction.js","sourcesContent":["import {getConnection, getMetadataArgsStorage, MongoRepository, Repository, TreeRepository, EntityManager} from \"../../\";\nimport {TransactionOptions} from \"../options/TransactionOptions\";\nimport {IsolationLevel} from \"../../driver/types/IsolationLevel\";\n\n/**\n * Wraps some method into the transaction.\n *\n * Method result will return a promise if this decorator applied.\n * All database operations in the wrapped method should be executed using entity managed passed\n * as a first parameter into the wrapped method.\n *\n * If you want to control at what position in your method parameters entity manager should be injected,\n * then use @TransactionManager() decorator.\n *\n * If you want to use repositories instead of bare entity manager,\n * then use @TransactionRepository() decorator.\n */\nexport function Transaction(connectionName?: string): MethodDecorator;\nexport function Transaction(options?: TransactionOptions): MethodDecorator;\nexport function Transaction(connectionOrOptions?: string | TransactionOptions): MethodDecorator {\n return function (target: Object, methodName: string, descriptor: PropertyDescriptor) {\n\n // save original method - we gonna need it\n const originalMethod = descriptor.value;\n\n // override method descriptor with proxy method\n descriptor.value = function(...args: any[]) {\n let connectionName = \"default\";\n let isolationLevel: IsolationLevel | undefined = undefined;\n if (connectionOrOptions) {\n if (typeof connectionOrOptions === \"string\") {\n connectionName = connectionOrOptions;\n } else {\n if (connectionOrOptions.connectionName) {\n connectionName = connectionOrOptions.connectionName;\n }\n if (connectionOrOptions.isolation) {\n isolationLevel = connectionOrOptions.isolation;\n }\n }\n }\n\n const transactionCallback = (entityManager: EntityManager) => {\n let argsWithInjectedTransactionManagerAndRepositories: any[];\n\n // filter all @TransactionManager() and @TransactionRepository() decorator usages for this method\n const transactionEntityManagerMetadatas = getMetadataArgsStorage()\n .filterTransactionEntityManagers(target.constructor, methodName)\n .reverse();\n const transactionRepositoryMetadatas = getMetadataArgsStorage()\n .filterTransactionRepository(target.constructor, methodName)\n .reverse();\n\n // if there are @TransactionManager() decorator usages the inject them\n if (transactionEntityManagerMetadatas.length > 0) {\n argsWithInjectedTransactionManagerAndRepositories = [...args];\n // replace method params with injection of transactionEntityManager\n transactionEntityManagerMetadatas.forEach(metadata => {\n argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, entityManager);\n });\n\n } else if (transactionRepositoryMetadatas.length === 0) { // otherwise if there's no transaction repositories in use, inject it as a first parameter\n argsWithInjectedTransactionManagerAndRepositories = [entityManager, ...args];\n\n } else {\n argsWithInjectedTransactionManagerAndRepositories = [...args];\n }\n\n // for every usage of @TransactionRepository decorator\n transactionRepositoryMetadatas.forEach(metadata => {\n let repositoryInstance: any;\n\n // detect type of the repository and get instance from transaction entity manager\n switch (metadata.repositoryType) {\n case Repository:\n repositoryInstance = entityManager.getRepository(metadata.entityType!);\n break;\n case MongoRepository:\n repositoryInstance = entityManager.getMongoRepository(metadata.entityType!);\n break;\n case TreeRepository:\n repositoryInstance = entityManager.getTreeRepository(metadata.entityType!);\n break;\n // if not the TypeORM's ones, there must be custom repository classes\n default:\n repositoryInstance = entityManager.getCustomRepository(metadata.repositoryType);\n }\n\n // replace method param with injection of repository instance\n argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, repositoryInstance);\n });\n\n return originalMethod.apply(this, argsWithInjectedTransactionManagerAndRepositories);\n };\n if (isolationLevel) {\n return getConnection(connectionName).manager.transaction(isolationLevel, transactionCallback);\n } else {\n return getConnection(connectionName).manager.transaction(transactionCallback);\n }\n };\n };\n}\n"],"sourceRoot":"../.."}
|
|
@@ -2198,10 +2198,16 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
2198
2198
|
c += " CHARACTER SET \"" + column.charset + "\"";
|
|
2199
2199
|
if (column.collation)
|
|
2200
2200
|
c += " COLLATE \"" + column.collation + "\"";
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2201
|
+
var isMariaDb = this.driver.options.type === "mariadb";
|
|
2202
|
+
if (isMariaDb && column.asExpression && (column.generatedType || "VIRTUAL") === "VIRTUAL") {
|
|
2203
|
+
// do nothing - MariaDB does not support NULL/NOT NULL expressions for VIRTUAL columns
|
|
2204
|
+
}
|
|
2205
|
+
else {
|
|
2206
|
+
if (!column.isNullable)
|
|
2207
|
+
c += " NOT NULL";
|
|
2208
|
+
if (column.isNullable)
|
|
2209
|
+
c += " NULL";
|
|
2210
|
+
}
|
|
2205
2211
|
if (column.isPrimary && !skipPrimary)
|
|
2206
2212
|
c += " PRIMARY KEY";
|
|
2207
2213
|
if (column.isGenerated && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc.
|