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
|
@@ -74,7 +74,7 @@ var ConnectionOptionsEnvReader = /** @class */ (function () {
|
|
|
74
74
|
return true;
|
|
75
75
|
if (caching === "false" || caching === "FALSE" || caching === "0")
|
|
76
76
|
return false;
|
|
77
|
-
if (caching === "redis" || caching === "database")
|
|
77
|
+
if (caching === "redis" || caching === "ioredis" || caching === "database")
|
|
78
78
|
return {
|
|
79
79
|
type: caching,
|
|
80
80
|
options: PlatformTools.getEnvVariable("TYPEORM_CACHE_OPTIONS") ? JSON.parse(PlatformTools.getEnvVariable("TYPEORM_CACHE_OPTIONS")) : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/connection/options-reader/ConnectionOptionsEnvReader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../browser/src/connection/options-reader/ConnectionOptionsEnvReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsEnvReader.js","sourcesContent":["import {ConnectionOptions} from \"../ConnectionOptions\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\n\n/**\n * Reads connection options from environment variables.\n * Environment variables can have only a single connection.\n * Its strongly required to define TYPEORM_CONNECTION env variable.\n */\nexport class ConnectionOptionsEnvReader {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Reads connection options from environment variables.\n */\n async read(): Promise<ConnectionOptions[]> {\n return [{\n type: PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") || (PlatformTools.getEnvVariable(\"TYPEORM_URL\") ? PlatformTools.getEnvVariable(\"TYPEORM_URL\").split(\"://\")[0] : undefined),\n url: PlatformTools.getEnvVariable(\"TYPEORM_URL\"),\n host: PlatformTools.getEnvVariable(\"TYPEORM_HOST\"),\n port: this.stringToNumber(PlatformTools.getEnvVariable(\"TYPEORM_PORT\")),\n username: PlatformTools.getEnvVariable(\"TYPEORM_USERNAME\"),\n password: PlatformTools.getEnvVariable(\"TYPEORM_PASSWORD\"),\n database: PlatformTools.getEnvVariable(\"TYPEORM_DATABASE\"),\n sid: PlatformTools.getEnvVariable(\"TYPEORM_SID\"),\n schema: PlatformTools.getEnvVariable(\"TYPEORM_SCHEMA\"),\n extra: PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\") ? JSON.parse(PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\")) : undefined,\n synchronize: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_SYNCHRONIZE\")),\n dropSchema: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_DROP_SCHEMA\")),\n migrationsRun: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_RUN\")),\n entities: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES\")),\n migrations: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS\")),\n migrationsTableName: PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_TABLE_NAME\"),\n subscribers: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS\")),\n logging: this.transformLogging(PlatformTools.getEnvVariable(\"TYPEORM_LOGGING\")),\n logger: PlatformTools.getEnvVariable(\"TYPEORM_LOGGER\"),\n entityPrefix: PlatformTools.getEnvVariable(\"TYPEORM_ENTITY_PREFIX\"),\n maxQueryExecutionTime: PlatformTools.getEnvVariable(\"TYPEORM_MAX_QUERY_EXECUTION_TIME\"),\n debug: PlatformTools.getEnvVariable(\"TYPEORM_DEBUG\"),\n cli: {\n entitiesDir: PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES_DIR\"),\n migrationsDir: PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_DIR\"),\n subscribersDir: PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS_DIR\"),\n },\n cache: this.transformCaching(),\n uuidExtension: PlatformTools.getEnvVariable(\"TYPEORM_UUID_EXTENSION\")\n }];\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Transforms logging string into real logging value connection requires.\n */\n protected transformLogging(logging: string): any {\n if (logging === \"true\" || logging === \"TRUE\" || logging === \"1\")\n return true;\n if (logging === \"all\")\n return \"all\";\n\n return this.stringToArray(logging);\n }\n\n /**\n * Transforms caching option into real caching value option requires.\n */\n protected transformCaching(): boolean | object | undefined {\n const caching = PlatformTools.getEnvVariable(\"TYPEORM_CACHE\");\n if (caching === \"true\" || caching === \"TRUE\" || caching === \"1\")\n return true;\n if (caching === \"false\" || caching === \"FALSE\" || caching === \"0\")\n return false;\n if (caching === \"redis\" || caching === \"ioredis\" || caching === \"database\")\n return {\n type: caching,\n options: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\") ? JSON.parse(PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\")) : undefined,\n alwaysEnabled: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_ALWAYS_ENABLED\"),\n duration: parseInt(PlatformTools.getEnvVariable(\"TYPEORM_CACHE_DURATION\"))\n };\n\n return undefined;\n }\n\n /**\n * Converts a string which contains multiple elements split by comma into a string array of strings.\n */\n protected stringToArray(variable?: string) {\n if (!variable)\n return [];\n return variable.split(\",\").map(str => str.trim());\n }\n\n /**\n * Converts a string which contains a number into a javascript number\n */\n private stringToNumber(value: any): number|undefined {\n if (!value) {\n return undefined;\n }\n\n return parseInt(value);\n }\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { ColumnOptions, ColumnType } from "../../";
|
|
2
|
+
/**
|
|
3
|
+
* Describes all primary key column's options.
|
|
4
|
+
* If specified, the nullable field must be set to false.
|
|
5
|
+
*/
|
|
6
|
+
export declare type PrimaryColumnOptions = ColumnOptions & {
|
|
7
|
+
nullable?: false;
|
|
8
|
+
};
|
|
2
9
|
/**
|
|
3
10
|
* Column decorator is used to mark a specific class property as a table column.
|
|
4
11
|
* Only properties decorated with this decorator will be persisted to the database when entity be saved.
|
|
5
12
|
* Primary columns also creates a PRIMARY KEY for this column in a db.
|
|
6
13
|
*/
|
|
7
|
-
export declare function PrimaryColumn(options?:
|
|
14
|
+
export declare function PrimaryColumn(options?: PrimaryColumnOptions): PropertyDecorator;
|
|
8
15
|
/**
|
|
9
16
|
* Column decorator is used to mark a specific class property as a table column.
|
|
10
17
|
* Only properties decorated with this decorator will be persisted to the database when entity be saved.
|
|
11
18
|
* Primary columns also creates a PRIMARY KEY for this column in a db.
|
|
12
19
|
*/
|
|
13
|
-
export declare function PrimaryColumn(type?: ColumnType, options?:
|
|
20
|
+
export declare function PrimaryColumn(type?: ColumnType, options?: PrimaryColumnOptions): PropertyDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/decorator/columns/PrimaryColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,sBAAsB,EAAC,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,kCAAkC,EAAC,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/columns/PrimaryColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,sBAAsB,EAAC,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,kCAAkC,EAAC,MAAM,gDAAgD,CAAC;AAwBlG;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,aAA+C,EAAE,OAA8B;IACzG,OAAO,UAAU,MAAc,EAAE,YAAoB;QAEjD,uBAAuB;QACvB,IAAI,IAA0B,CAAC;QAC/B,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACnC,IAAI,GAAG,aAAa,CAAC;SACxB;aAAM;YACH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAyB,aAAa,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAA0B,CAAC;QAEnD,uDAAuD;QACvD,IAAM,mBAAmB,GAAG,OAAO,IAAK,OAAe,CAAC,WAAW,CAAC,CAAC,CAAE,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpJ,IAAI,CAAC,IAAI,IAAI,mBAAmB;YAC5B,IAAI,GAAG,mBAAmB,CAAC;QAE/B,yGAAyG;QACzG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAExB,yFAAyF;QACzF,IAAI,CAAC,OAAO,CAAC,IAAI;YACb,MAAM,IAAI,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE7D,wFAAwF;QACxF,IAAI,OAAO,CAAC,QAAQ;YAChB,MAAM,IAAI,kCAAkC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEvE,6CAA6C;QAC7C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAEvB,4CAA4C;QAC5C,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;SACG,CAAC,CAAC;QAEzB,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,sBAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtC,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,YAAY,EAAE,YAAY;gBAC1B,QAAQ,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;aAC3D,CAAC,CAAC;SAC/B;IACL,CAAC,CAAC;AACN,CAAC","file":"PrimaryColumn.js","sourcesContent":["import {ColumnOptions, ColumnType, getMetadataArgsStorage} from \"../../\";\nimport {ColumnTypeUndefinedError} from \"../../error/ColumnTypeUndefinedError\";\nimport {PrimaryColumnCannotBeNullableError} from \"../../error/PrimaryColumnCannotBeNullableError\";\nimport {ColumnMetadataArgs} from \"../../metadata-args/ColumnMetadataArgs\";\nimport {GeneratedMetadataArgs} from \"../../metadata-args/GeneratedMetadataArgs\";\n\n/**\n * Describes all primary key column's options.\n * If specified, the nullable field must be set to false.\n */\nexport type PrimaryColumnOptions = ColumnOptions & { nullable?: false };\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(options?: PrimaryColumnOptions): PropertyDecorator;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(type?: ColumnType, options?: PrimaryColumnOptions): PropertyDecorator;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(typeOrOptions?: ColumnType|PrimaryColumnOptions, options?: PrimaryColumnOptions): PropertyDecorator {\n return function (object: Object, propertyName: string) {\n\n // normalize parameters\n let type: ColumnType|undefined;\n if (typeof typeOrOptions === \"string\") {\n type = typeOrOptions;\n } else {\n options = Object.assign({}, <PrimaryColumnOptions> typeOrOptions);\n }\n if (!options) options = {} as PrimaryColumnOptions;\n\n // if type is not given explicitly then try to guess it\n const reflectMetadataType = Reflect && (Reflect as any).getMetadata ? (Reflect as any).getMetadata(\"design:type\", object, propertyName) : undefined;\n if (!type && reflectMetadataType)\n type = reflectMetadataType;\n\n // check if there is no type in column options then set type from first function argument, or guessed one\n if (!options.type && type)\n options.type = type;\n\n // if we still don't have a type then we need to give error to user that type is required\n if (!options.type)\n throw new ColumnTypeUndefinedError(object, propertyName);\n\n // check if column is not nullable, because we cannot allow a primary key to be nullable\n if (options.nullable)\n throw new PrimaryColumnCannotBeNullableError(object, propertyName);\n\n // explicitly set a primary to column options\n options.primary = true;\n\n // create and register a new column metadata\n getMetadataArgsStorage().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options\n } as ColumnMetadataArgs);\n\n if (options.generated) {\n getMetadataArgsStorage().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: typeof options.generated === \"string\" ? options.generated : \"increment\"\n } as GeneratedMetadataArgs);\n }\n };\n}\n\n"],"sourceRoot":"../.."}
|
|
@@ -34,6 +34,12 @@ export interface RelationOptions {
|
|
|
34
34
|
* Can be used only for many-to-one and owner one-to-one relations.
|
|
35
35
|
*/
|
|
36
36
|
primary?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Indicates whether foreign key constraints will be created for join columns.
|
|
39
|
+
* Can be used only for many-to-one and owner one-to-one relations.
|
|
40
|
+
* Defaults to true.
|
|
41
|
+
*/
|
|
42
|
+
createForeignKeyConstraints?: boolean;
|
|
37
43
|
/**
|
|
38
44
|
* Set this relation to be lazy. Note: lazy relations are promises. When you call them they return promise
|
|
39
45
|
* which resolve relation result then. If your property's type is Promise then this relation is set to lazy automatically.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/decorator/options/RelationOptions.ts"],"names":[],"mappings":"","file":"RelationOptions.js","sourcesContent":["import {DeferrableType} from \"../../metadata/types/DeferrableType\";\nimport {OnDeleteType} from \"../../metadata/types/OnDeleteType\";\nimport {OnUpdateType} from \"../../metadata/types/OnUpdateType\";\n\n/**\n * Describes all relation's options.\n */\nexport interface RelationOptions {\n\n /**\n * Sets cascades options for the given relation.\n * If set to true then it means that related object can be allowed to be inserted or updated in the database.\n * You can separately restrict cascades to insertion or updation using following syntax:\n *\n * cascade: [\"insert\", \"update\", \"remove\", \"soft-remove\", \"recover\"] // include or exclude one of them\n */\n cascade?: boolean|(\"insert\"|\"update\"|\"remove\"|\"soft-remove\"|\"recover\")[];\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n nullable?: boolean;\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType;\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType;\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType;\n\n /**\n * Indicates if this relation will be a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n primary?: boolean;\n\n /**\n * Set this relation to be lazy. Note: lazy relations are promises. When you call them they return promise\n * which resolve relation result then. If your property's type is Promise then this relation is set to lazy automatically.\n */\n lazy?: boolean;\n\n /**\n * Set this relation to be eager.\n * Eager relations are always loaded automatically when relation's owner entity is loaded using find* methods.\n * Only using QueryBuilder prevents loading eager relations.\n * Eager flag cannot be set from both sides of relation - you can eager load only one side of the relationship.\n */\n eager?: boolean;\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistence?: boolean;\n\n /**\n * When a child row is removed from its parent, determines if the child row should be orphaned (default) or deleted.\n */\n orphanedRowAction?: \"nullify\" | \"delete\";\n\n}\n"],"sourceRoot":"../.."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/options/RelationOptions.ts"],"names":[],"mappings":"","file":"RelationOptions.js","sourcesContent":["import {DeferrableType} from \"../../metadata/types/DeferrableType\";\nimport {OnDeleteType} from \"../../metadata/types/OnDeleteType\";\nimport {OnUpdateType} from \"../../metadata/types/OnUpdateType\";\n\n/**\n * Describes all relation's options.\n */\nexport interface RelationOptions {\n\n /**\n * Sets cascades options for the given relation.\n * If set to true then it means that related object can be allowed to be inserted or updated in the database.\n * You can separately restrict cascades to insertion or updation using following syntax:\n *\n * cascade: [\"insert\", \"update\", \"remove\", \"soft-remove\", \"recover\"] // include or exclude one of them\n */\n cascade?: boolean|(\"insert\"|\"update\"|\"remove\"|\"soft-remove\"|\"recover\")[];\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n nullable?: boolean;\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType;\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType;\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType;\n\n /**\n * Indicates if this relation will be a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n primary?: boolean;\n\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n createForeignKeyConstraints?: boolean;\n\n /**\n * Set this relation to be lazy. Note: lazy relations are promises. When you call them they return promise\n * which resolve relation result then. If your property's type is Promise then this relation is set to lazy automatically.\n */\n lazy?: boolean;\n\n /**\n * Set this relation to be eager.\n * Eager relations are always loaded automatically when relation's owner entity is loaded using find* methods.\n * Only using QueryBuilder prevents loading eager relations.\n * Eager flag cannot be set from both sides of relation - you can eager load only one side of the relationship.\n */\n eager?: boolean;\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistence?: boolean;\n\n /**\n * When a child row is removed from its parent, determines if the child row should be orphaned (default) or deleted.\n */\n orphanedRowAction?: \"nullify\" | \"delete\";\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ObjectType, RelationOptions } from "../../";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Entity2 can have
|
|
5
|
-
* on its
|
|
3
|
+
* A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but
|
|
4
|
+
* Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of
|
|
5
|
+
* Entity2 on its side of the relation.
|
|
6
6
|
*/
|
|
7
7
|
export declare function ManyToOne<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), options?: RelationOptions): PropertyDecorator;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
* Entity2 can have
|
|
11
|
-
* on its
|
|
9
|
+
* A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but
|
|
10
|
+
* Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of
|
|
11
|
+
* Entity2 on its side of the relation.
|
|
12
12
|
*/
|
|
13
13
|
export declare function ManyToOne<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), inverseSide?: string | ((object: T) => any), options?: RelationOptions): PropertyDecorator;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getMetadataArgsStorage } from "../../";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Entity2 can have
|
|
5
|
-
* on its
|
|
3
|
+
* A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but
|
|
4
|
+
* Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of
|
|
5
|
+
* Entity2 on its side of the relation.
|
|
6
6
|
*/
|
|
7
7
|
export function ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {
|
|
8
|
-
//
|
|
8
|
+
// Normalize parameters.
|
|
9
9
|
var inverseSideProperty;
|
|
10
10
|
if (typeof inverseSideOrOptions === "object") {
|
|
11
11
|
options = inverseSideOrOptions;
|
|
@@ -16,7 +16,7 @@ export function ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {
|
|
|
16
16
|
return function (object, propertyName) {
|
|
17
17
|
if (!options)
|
|
18
18
|
options = {};
|
|
19
|
-
//
|
|
19
|
+
// Now try to determine if it is a lazy relation.
|
|
20
20
|
var isLazy = options && options.lazy === true ? true : false;
|
|
21
21
|
if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination
|
|
22
22
|
var reflectedType = Reflect.getMetadata("design:type", object, propertyName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/decorator/relations/ManyToOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAA8B,MAAM,QAAQ,CAAC;AAmB3E;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAI,oBAA4D,EAC5D,oBAAkE,EAClE,OAAyB;IAElD,
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/relations/ManyToOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAA8B,MAAM,QAAQ,CAAC;AAmB3E;;;;GAIG;AACH,MAAM,UAAU,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,sBAAsB,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","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;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { getMetadataArgsStorage } 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 function OneToMany(typeFunctionOrTarget, inverseSide, options) {
|
|
7
8
|
return function (object, propertyName) {
|
|
8
9
|
if (!options)
|
|
9
10
|
options = {};
|
|
10
|
-
//
|
|
11
|
+
// Now try to determine if it is a lazy relation.
|
|
11
12
|
var isLazy = options && options.lazy === true ? true : false;
|
|
12
13
|
if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination
|
|
13
14
|
var reflectedType = Reflect.getMetadata("design:type", object, propertyName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/decorator/relations/OneToMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAA8B,MAAM,QAAQ,CAAC;AAG3E
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/relations/OneToMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAA8B,MAAM,QAAQ,CAAC;AAG3E;;;;GAIG;AACH,MAAM,UAAU,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,sBAAsB,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","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.
|
|
@@ -28,14 +28,14 @@ export function Transaction(connectionOrOptions) {
|
|
|
28
28
|
}
|
|
29
29
|
var transactionCallback = function (entityManager) {
|
|
30
30
|
var argsWithInjectedTransactionManagerAndRepositories;
|
|
31
|
-
// filter all @
|
|
31
|
+
// filter all @TransactionManager() and @TransactionRepository() decorator usages for this method
|
|
32
32
|
var transactionEntityManagerMetadatas = getMetadataArgsStorage()
|
|
33
33
|
.filterTransactionEntityManagers(target.constructor, methodName)
|
|
34
34
|
.reverse();
|
|
35
35
|
var transactionRepositoryMetadatas = getMetadataArgsStorage()
|
|
36
36
|
.filterTransactionRepository(target.constructor, methodName)
|
|
37
37
|
.reverse();
|
|
38
|
-
// if there are @
|
|
38
|
+
// if there are @TransactionManager() decorator usages the inject them
|
|
39
39
|
if (transactionEntityManagerMetadatas.length > 0) {
|
|
40
40
|
argsWithInjectedTransactionManagerAndRepositories = __spread(args);
|
|
41
41
|
// replace method params with injection of transactionEntityManager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/decorator/transaction/Transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAgB,MAAM,QAAQ,CAAC;AAmBzH,MAAM,UAAU,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":["../browser/src/decorator/transaction/Transaction.ts"],"names":[],"mappings":"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","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":"../.."}
|
|
@@ -2196,10 +2196,16 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
2196
2196
|
c += " CHARACTER SET \"" + column.charset + "\"";
|
|
2197
2197
|
if (column.collation)
|
|
2198
2198
|
c += " COLLATE \"" + column.collation + "\"";
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2199
|
+
var isMariaDb = this.driver.options.type === "mariadb";
|
|
2200
|
+
if (isMariaDb && column.asExpression && (column.generatedType || "VIRTUAL") === "VIRTUAL") {
|
|
2201
|
+
// do nothing - MariaDB does not support NULL/NOT NULL expressions for VIRTUAL columns
|
|
2202
|
+
}
|
|
2203
|
+
else {
|
|
2204
|
+
if (!column.isNullable)
|
|
2205
|
+
c += " NOT NULL";
|
|
2206
|
+
if (column.isNullable)
|
|
2207
|
+
c += " NULL";
|
|
2208
|
+
}
|
|
2203
2209
|
if (column.isPrimary && !skipPrimary)
|
|
2204
2210
|
c += " PRIMARY KEY";
|
|
2205
2211
|
if (column.isGenerated && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc.
|