typeorm 0.3.23-dev.055eafd → 0.3.23-dev.184f463
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/decorator/ForeignKey.d.ts +22 -0
- package/browser/decorator/ForeignKey.js +41 -0
- package/browser/decorator/ForeignKey.js.map +1 -0
- package/browser/decorator/options/ForeignKeyOptions.d.ts +24 -0
- package/browser/decorator/options/ForeignKeyOptions.js +3 -0
- package/browser/decorator/options/ForeignKeyOptions.js.map +1 -0
- package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
- package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +6 -1
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -0
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -0
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
- package/browser/entity-schema/EntitySchemaOptions.d.ts +5 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +29 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/index.d.ts +1 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.js +14 -2
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
- package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -0
- package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
- package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js +8 -0
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
- package/browser/metadata-builder/EntityMetadataBuilder.js +70 -0
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/subscriber/event/UpdateEvent.d.ts +4 -0
- package/browser/subscriber/event/UpdateEvent.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +3 -1
- package/commands/MigrationCreateCommand.js +17 -3
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +3 -1
- package/commands/MigrationGenerateCommand.js +17 -3
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/decorator/ForeignKey.d.ts +22 -0
- package/decorator/ForeignKey.js +44 -0
- package/decorator/ForeignKey.js.map +1 -0
- package/decorator/options/ForeignKeyOptions.d.ts +24 -0
- package/decorator/options/ForeignKeyOptions.js +4 -0
- package/decorator/options/ForeignKeyOptions.js.map +1 -0
- package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
- package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +6 -1
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +4 -0
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
- package/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
- package/entity-schema/EntitySchemaForeignKeyOptions.js +4 -0
- package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
- package/entity-schema/EntitySchemaOptions.d.ts +5 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +29 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.mjs +2 -0
- package/metadata/EntityListenerMetadata.js +14 -2
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
- package/metadata-args/ForeignKeyMetadataArgs.js +4 -0
- package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
- package/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/metadata-args/MetadataArgsStorage.js +8 -0
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
- package/metadata-builder/EntityMetadataBuilder.js +70 -0
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/package.json +1 -1
- package/subscriber/event/UpdateEvent.d.ts +4 -0
- package/subscriber/event/UpdateEvent.js.map +1 -1
- package/typeorm-model-shim.js +6 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ObjectType } from "../common/ObjectType";
|
|
2
|
+
import { ForeignKeyOptions } from "./options/ForeignKeyOptions";
|
|
3
|
+
/**
|
|
4
|
+
* Creates a database foreign key. Can be used on entity property or on entity.
|
|
5
|
+
* Can create foreign key with composite columns when used on entity.
|
|
6
|
+
* Warning! Don't use this with relations; relation decorators create foreign keys automatically.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ForeignKey<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), options?: ForeignKeyOptions): PropertyDecorator;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a database foreign key. Can be used on entity property or on entity.
|
|
11
|
+
* Can create foreign key with composite columns when used on entity.
|
|
12
|
+
* Warning! Don't use this with relations; relation decorators create foreign keys automatically.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ForeignKey<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), inverseSide: string | ((object: T) => any), options?: ForeignKeyOptions): PropertyDecorator;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a database foreign key. Can be used on entity property or on entity.
|
|
17
|
+
* Can create foreign key with composite columns when used on entity.
|
|
18
|
+
* Warning! Don't use this with relations; relation decorators create foreign keys automatically.
|
|
19
|
+
*/
|
|
20
|
+
export declare function ForeignKey<T, C extends (readonly [] | readonly string[]) & (number extends C["length"] ? readonly [] : unknown)>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), columnNames: C, referencedColumnNames: {
|
|
21
|
+
[K in keyof C]: string;
|
|
22
|
+
}, options?: ForeignKeyOptions): ClassDecorator;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getMetadataArgsStorage } from "../globals";
|
|
2
|
+
import { ObjectUtils } from "../util/ObjectUtils";
|
|
3
|
+
/**
|
|
4
|
+
* Creates a database foreign key. Can be used on entity property or on entity.
|
|
5
|
+
* Can create foreign key with composite columns when used on entity.
|
|
6
|
+
* Warning! Don't use this with relations; relation decorators create foreign keys automatically.
|
|
7
|
+
*/
|
|
8
|
+
export function ForeignKey(typeFunctionOrTarget, inverseSideOrColumnNamesOrOptions, referencedColumnNamesOrOptions, maybeOptions) {
|
|
9
|
+
const inverseSide = typeof inverseSideOrColumnNamesOrOptions === "string" ||
|
|
10
|
+
typeof inverseSideOrColumnNamesOrOptions === "function"
|
|
11
|
+
? inverseSideOrColumnNamesOrOptions
|
|
12
|
+
: undefined;
|
|
13
|
+
const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)
|
|
14
|
+
? inverseSideOrColumnNamesOrOptions
|
|
15
|
+
: undefined;
|
|
16
|
+
const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)
|
|
17
|
+
? referencedColumnNamesOrOptions
|
|
18
|
+
: undefined;
|
|
19
|
+
const options = ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&
|
|
20
|
+
!Array.isArray(inverseSideOrColumnNamesOrOptions)
|
|
21
|
+
? inverseSideOrColumnNamesOrOptions
|
|
22
|
+
: ObjectUtils.isObject(referencedColumnNamesOrOptions) &&
|
|
23
|
+
!Array.isArray(referencedColumnNamesOrOptions)
|
|
24
|
+
? referencedColumnNamesOrOptions
|
|
25
|
+
: maybeOptions;
|
|
26
|
+
return function (clsOrObject, propertyName) {
|
|
27
|
+
getMetadataArgsStorage().foreignKeys.push({
|
|
28
|
+
target: propertyName
|
|
29
|
+
? clsOrObject.constructor
|
|
30
|
+
: clsOrObject,
|
|
31
|
+
propertyName: propertyName,
|
|
32
|
+
type: typeFunctionOrTarget,
|
|
33
|
+
inverseSide,
|
|
34
|
+
columnNames,
|
|
35
|
+
referencedColumnNames,
|
|
36
|
+
...options,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=ForeignKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/ForeignKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAwCjD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAKtB,oBAA8D,EAC9D,iCAIuB,EACvB,8BAEuB,EACvB,YAAgC;IAEhC,MAAM,WAAW,GACb,OAAO,iCAAiC,KAAK,QAAQ;QACrD,OAAO,iCAAiC,KAAK,UAAU;QACnD,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAChE,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;QACvE,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,OAAO,GACT,WAAW,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACvD,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAC7C,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACpD,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAChD,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,YAAY,CAAA;IAEtB,OAAO,UACH,WAA8B,EAC9B,YAA8B;QAE9B,sBAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YACtC,MAAM,EAAE,YAAY;gBAChB,CAAC,CAAC,WAAW,CAAC,WAAW;gBACzB,CAAC,CAAE,WAAwB;YAC/B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,WAAW;YACX,WAAW;YACX,qBAAqB;YACrB,GAAI,OAA6B;SACV,CAAC,CAAA;IAChC,CAAC,CAAA;AACL,CAAC","file":"ForeignKey.js","sourcesContent":["import { ObjectType } from \"../common/ObjectType\"\nimport { getMetadataArgsStorage } from \"../globals\"\nimport { ForeignKeyMetadataArgs } from \"../metadata-args/ForeignKeyMetadataArgs\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { ForeignKeyOptions } from \"./options/ForeignKeyOptions\"\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSide: string | ((object: T) => any),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n columnNames: C,\n referencedColumnNames: { [K in keyof C]: string },\n options?: ForeignKeyOptions,\n): ClassDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSideOrColumnNamesOrOptions?:\n | string\n | ((object: T) => any)\n | C\n | ForeignKeyOptions,\n referencedColumnNamesOrOptions?:\n | { [K in keyof C]: string }\n | ForeignKeyOptions,\n maybeOptions?: ForeignKeyOptions,\n): ClassDecorator & PropertyDecorator {\n const inverseSide =\n typeof inverseSideOrColumnNamesOrOptions === \"string\" ||\n typeof inverseSideOrColumnNamesOrOptions === \"function\"\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : undefined\n\n const options =\n ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&\n !Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : ObjectUtils.isObject(referencedColumnNamesOrOptions) &&\n !Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : maybeOptions\n\n return function (\n clsOrObject: Function | Object,\n propertyName?: string | symbol,\n ) {\n getMetadataArgsStorage().foreignKeys.push({\n target: propertyName\n ? clsOrObject.constructor\n : (clsOrObject as Function),\n propertyName: propertyName,\n type: typeFunctionOrTarget,\n inverseSide,\n columnNames,\n referencedColumnNames,\n ...(options as ForeignKeyOptions),\n } as ForeignKeyMetadataArgs)\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DeferrableType } from "../../metadata/types/DeferrableType";
|
|
2
|
+
import { OnDeleteType } from "../../metadata/types/OnDeleteType";
|
|
3
|
+
import { OnUpdateType } from "../../metadata/types/OnUpdateType";
|
|
4
|
+
/**
|
|
5
|
+
* Describes all foreign key options.
|
|
6
|
+
*/
|
|
7
|
+
export interface ForeignKeyOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Name of the foreign key constraint.
|
|
10
|
+
*/
|
|
11
|
+
name?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Database cascade action on delete.
|
|
14
|
+
*/
|
|
15
|
+
onDelete?: OnDeleteType;
|
|
16
|
+
/**
|
|
17
|
+
* Database cascade action on update.
|
|
18
|
+
*/
|
|
19
|
+
onUpdate?: OnUpdateType;
|
|
20
|
+
/**
|
|
21
|
+
* Indicate if foreign key constraints can be deferred.
|
|
22
|
+
*/
|
|
23
|
+
deferrable?: DeferrableType;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../browser/src/decorator/options/ForeignKeyOptions.ts"],"names":[],"mappings":"","file":"ForeignKeyOptions.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 foreign key options.\n */\nexport interface ForeignKeyOptions {\n /**\n * Name of the foreign key constraint.\n */\n name?: string\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"],"sourceRoot":"../.."}
|
|
@@ -90,6 +90,12 @@ export interface MysqlConnectionOptions extends BaseDataSourceOptions, MysqlConn
|
|
|
90
90
|
* but you can specify it manually
|
|
91
91
|
*/
|
|
92
92
|
readonly connectorPackage?: "mysql" | "mysql2";
|
|
93
|
+
/**
|
|
94
|
+
* If a value is specified for maxQueryExecutionTime, in addition to generating a warning log when a query exceeds this time limit,
|
|
95
|
+
* the specified maxQueryExecutionTime value is also used as the timeout for the query.
|
|
96
|
+
* For more information, check https://github.com/mysqljs/mysql?tab=readme-ov-file#timeouts
|
|
97
|
+
*/
|
|
98
|
+
readonly enableQueryTimeout?: boolean;
|
|
93
99
|
/**
|
|
94
100
|
* Replication setup.
|
|
95
101
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/driver/mysql/MysqlConnectionOptions.ts"],"names":[],"mappings":"","file":"MysqlConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { MysqlConnectionCredentialsOptions } from \"./MysqlConnectionCredentialsOptions\"\n\n/**\n * MySQL specific connection options.\n *\n * @see https://github.com/mysqljs/mysql#connection-options\n */\nexport interface MysqlConnectionOptions\n extends BaseDataSourceOptions,\n MysqlConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"mysql\" | \"mariadb\"\n\n /**\n * The driver object\n * This defaults to require(\"mysql\").\n * Falls back to require(\"mysql2\")\n */\n readonly driver?: any\n\n /**\n * The charset for the connection. This is called \"collation\" in the SQL-level of MySQL (like utf8_general_ci).\n * If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used.\n * Default: 'UTF8_GENERAL_CI'\n */\n readonly charset?: string\n\n /**\n * The timezone configured on the MySQL server.\n * This is used to type cast server date/time values to JavaScript Date object and vice versa.\n * This can be 'local', 'Z', or an offset in the form +HH:MM or -HH:MM. (Default: 'local')\n */\n readonly timezone?: string\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n */\n readonly connectTimeout?: number\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n * This difference between connectTimeout and acquireTimeout is subtle and is described in the mysqljs/mysql docs\n * https://github.com/mysqljs/mysql/tree/master#pool-options\n */\n readonly acquireTimeout?: number\n\n /**\n * Allow connecting to MySQL instances that ask for the old (insecure) authentication method. (Default: false)\n */\n readonly insecureAuth?: boolean\n\n /**\n * When dealing with big numbers (BIGINT and DECIMAL columns) in the database, you should enable this option (Default: false)\n */\n readonly supportBigNumbers?: boolean\n\n /**\n * Enabling both supportBigNumbers and bigNumberStrings forces big numbers (BIGINT and DECIMAL columns) to be always\n * returned as JavaScript String objects (Default: false). Enabling supportBigNumbers but leaving bigNumberStrings\n * disabled will return big numbers as String objects only when they cannot be accurately represented with\n * [JavaScript Number objects](http://ecma262-5.com/ELS5_HTML.htm#Section_8.5) (which happens when they exceed the [-2^53, +2^53] range),\n * otherwise they will be returned as Number objects. This option is ignored if supportBigNumbers is disabled.\n */\n readonly bigNumberStrings?: boolean\n\n /**\n * Force date types (TIMESTAMP, DATETIME, DATE) to be returned as strings rather then inflated into JavaScript Date objects.\n * Can be true/false or an array of type names to keep as strings.\n */\n readonly dateStrings?: boolean | string[]\n\n /**\n * Prints protocol details to stdout. Can be true/false or an array of packet type names that should be printed.\n * (Default: false)\n */\n readonly debug?: boolean | string[]\n\n /**\n * Generates stack traces on Error to include call site of library entrance (\"long stack traces\").\n * Slight performance penalty for most calls. (Default: true)\n */\n readonly trace?: boolean\n\n /**\n * Allow multiple mysql statements per query. Be careful with this, it could increase the scope of SQL injection attacks.\n * (Default: false)\n */\n readonly multipleStatements?: boolean\n\n /**\n * Use spatial functions like GeomFromText and AsText which are removed in MySQL 8.\n * (Default: true)\n */\n readonly legacySpatialSupport?: boolean\n\n /**\n * List of connection flags to use other than the default ones. It is also possible to blacklist default ones.\n * For more information, check https://github.com/mysqljs/mysql#connection-flags.\n */\n readonly flags?: string[]\n\n /**\n * TypeORM will automatically use package found in your node_modules, prioritizing mysql over mysql2,\n * but you can specify it manually\n */\n readonly connectorPackage?: \"mysql\" | \"mysql2\"\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: MysqlConnectionCredentialsOptions\n\n /**\n * List of read-from servers (slaves).\n */\n readonly slaves: MysqlConnectionCredentialsOptions[]\n\n /**\n * If true, PoolCluster will attempt to reconnect when connection fails. (Default: true)\n */\n readonly canRetry?: boolean\n\n /**\n * If connection fails, node's errorCount increases.\n * When errorCount is greater than removeNodeErrorCount, remove a node in the PoolCluster. (Default: 5)\n */\n readonly removeNodeErrorCount?: number\n\n /**\n * If connection fails, specifies the number of milliseconds before another connection attempt will be made.\n * If set to 0, then node will be removed instead and never re-used. (Default: 0)\n */\n readonly restoreNodeTimeout?: number\n\n /**\n * Determines how slaves are selected:\n * RR: Select one alternately (Round-Robin).\n * RANDOM: Select the node by random function.\n * ORDER: Select the first node available unconditionally.\n */\n readonly selector?: \"RR\" | \"RANDOM\" | \"ORDER\"\n\n /**\n * Default connection pool to use for SELECT queries\n * @default \"slave\"\n */\n readonly defaultMode?: ReplicationMode\n }\n}\n"],"sourceRoot":"../.."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/driver/mysql/MysqlConnectionOptions.ts"],"names":[],"mappings":"","file":"MysqlConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { MysqlConnectionCredentialsOptions } from \"./MysqlConnectionCredentialsOptions\"\n\n/**\n * MySQL specific connection options.\n *\n * @see https://github.com/mysqljs/mysql#connection-options\n */\nexport interface MysqlConnectionOptions\n extends BaseDataSourceOptions,\n MysqlConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"mysql\" | \"mariadb\"\n\n /**\n * The driver object\n * This defaults to require(\"mysql\").\n * Falls back to require(\"mysql2\")\n */\n readonly driver?: any\n\n /**\n * The charset for the connection. This is called \"collation\" in the SQL-level of MySQL (like utf8_general_ci).\n * If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used.\n * Default: 'UTF8_GENERAL_CI'\n */\n readonly charset?: string\n\n /**\n * The timezone configured on the MySQL server.\n * This is used to type cast server date/time values to JavaScript Date object and vice versa.\n * This can be 'local', 'Z', or an offset in the form +HH:MM or -HH:MM. (Default: 'local')\n */\n readonly timezone?: string\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n */\n readonly connectTimeout?: number\n\n /**\n * The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10000)\n * This difference between connectTimeout and acquireTimeout is subtle and is described in the mysqljs/mysql docs\n * https://github.com/mysqljs/mysql/tree/master#pool-options\n */\n readonly acquireTimeout?: number\n\n /**\n * Allow connecting to MySQL instances that ask for the old (insecure) authentication method. (Default: false)\n */\n readonly insecureAuth?: boolean\n\n /**\n * When dealing with big numbers (BIGINT and DECIMAL columns) in the database, you should enable this option (Default: false)\n */\n readonly supportBigNumbers?: boolean\n\n /**\n * Enabling both supportBigNumbers and bigNumberStrings forces big numbers (BIGINT and DECIMAL columns) to be always\n * returned as JavaScript String objects (Default: false). Enabling supportBigNumbers but leaving bigNumberStrings\n * disabled will return big numbers as String objects only when they cannot be accurately represented with\n * [JavaScript Number objects](http://ecma262-5.com/ELS5_HTML.htm#Section_8.5) (which happens when they exceed the [-2^53, +2^53] range),\n * otherwise they will be returned as Number objects. This option is ignored if supportBigNumbers is disabled.\n */\n readonly bigNumberStrings?: boolean\n\n /**\n * Force date types (TIMESTAMP, DATETIME, DATE) to be returned as strings rather then inflated into JavaScript Date objects.\n * Can be true/false or an array of type names to keep as strings.\n */\n readonly dateStrings?: boolean | string[]\n\n /**\n * Prints protocol details to stdout. Can be true/false or an array of packet type names that should be printed.\n * (Default: false)\n */\n readonly debug?: boolean | string[]\n\n /**\n * Generates stack traces on Error to include call site of library entrance (\"long stack traces\").\n * Slight performance penalty for most calls. (Default: true)\n */\n readonly trace?: boolean\n\n /**\n * Allow multiple mysql statements per query. Be careful with this, it could increase the scope of SQL injection attacks.\n * (Default: false)\n */\n readonly multipleStatements?: boolean\n\n /**\n * Use spatial functions like GeomFromText and AsText which are removed in MySQL 8.\n * (Default: true)\n */\n readonly legacySpatialSupport?: boolean\n\n /**\n * List of connection flags to use other than the default ones. It is also possible to blacklist default ones.\n * For more information, check https://github.com/mysqljs/mysql#connection-flags.\n */\n readonly flags?: string[]\n\n /**\n * TypeORM will automatically use package found in your node_modules, prioritizing mysql over mysql2,\n * but you can specify it manually\n */\n readonly connectorPackage?: \"mysql\" | \"mysql2\"\n\n /**\n * If a value is specified for maxQueryExecutionTime, in addition to generating a warning log when a query exceeds this time limit,\n * the specified maxQueryExecutionTime value is also used as the timeout for the query.\n * For more information, check https://github.com/mysqljs/mysql?tab=readme-ov-file#timeouts\n */\n readonly enableQueryTimeout?: boolean\n\n /**\n * Replication setup.\n */\n readonly replication?: {\n /**\n * Master server used by orm to perform writes.\n */\n readonly master: MysqlConnectionCredentialsOptions\n\n /**\n * List of read-from servers (slaves).\n */\n readonly slaves: MysqlConnectionCredentialsOptions[]\n\n /**\n * If true, PoolCluster will attempt to reconnect when connection fails. (Default: true)\n */\n readonly canRetry?: boolean\n\n /**\n * If connection fails, node's errorCount increases.\n * When errorCount is greater than removeNodeErrorCount, remove a node in the PoolCluster. (Default: 5)\n */\n readonly removeNodeErrorCount?: number\n\n /**\n * If connection fails, specifies the number of milliseconds before another connection attempt will be made.\n * If set to 0, then node will be removed instead and never re-used. (Default: 0)\n */\n readonly restoreNodeTimeout?: number\n\n /**\n * Determines how slaves are selected:\n * RR: Select one alternately (Round-Robin).\n * RANDOM: Select the node by random function.\n * ORDER: Select the first node available unconditionally.\n */\n readonly selector?: \"RR\" | \"RANDOM\" | \"ORDER\"\n\n /**\n * Default connection pool to use for SELECT queries\n * @default \"slave\"\n */\n readonly defaultMode?: ReplicationMode\n }\n}\n"],"sourceRoot":"../.."}
|
|
@@ -144,8 +144,13 @@ export class MysqlQueryRunner extends BaseQueryRunner {
|
|
|
144
144
|
const databaseConnection = await this.connect();
|
|
145
145
|
this.driver.connection.logger.logQuery(query, parameters, this);
|
|
146
146
|
this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
|
|
147
|
+
const enableQueryTimeout = this.driver.options.enableQueryTimeout;
|
|
148
|
+
const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
|
|
149
|
+
const queryPayload = enableQueryTimeout && maxQueryExecutionTime
|
|
150
|
+
? { sql: query, timeout: maxQueryExecutionTime }
|
|
151
|
+
: query;
|
|
147
152
|
const queryStartTime = +new Date();
|
|
148
|
-
databaseConnection.query(
|
|
153
|
+
databaseConnection.query(queryPayload, parameters, async (err, raw) => {
|
|
149
154
|
// log slow queries if maxQueryExecution time is set
|
|
150
155
|
const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
|
|
151
156
|
const queryEndTime = +new Date();
|