diff --git a/src/cache/RedisQueryResultCache.ts b/src/cache/RedisQueryResultCache.ts index 2178dd4d5d..735a427980 100644 --- a/src/cache/RedisQueryResultCache.ts +++ b/src/cache/RedisQueryResultCache.ts @@ -61,7 +61,7 @@ export class RedisQueryResultCache implements QueryResultCache { this.client = new this.redis(); } } else if (this.clientType === "ioredis/cluster") { - if (cacheOptions && cacheOptions.options && cacheOptions.options instanceof Array) { + if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) { this.client = new this.redis.Cluster(cacheOptions.options); } else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) { this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options); diff --git a/src/entity-manager/EntityManager.ts b/src/entity-manager/EntityManager.ts index f5be6f286c..8e3dcd8408 100644 --- a/src/entity-manager/EntityManager.ts +++ b/src/entity-manager/EntityManager.ts @@ -511,7 +511,7 @@ export class EntityManager { target = target.options.name; // if user passed empty array of entities then we don't need to do anything - if (entity instanceof Array && entity.length === 0) + if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute soft-remove operation @@ -564,7 +564,7 @@ export class EntityManager { target = target.options.name; // if user passed empty array of entities then we don't need to do anything - if (entity instanceof Array && entity.length === 0) + if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute recover operation @@ -683,7 +683,7 @@ export class EntityManager { if (criteria === undefined || criteria === null || criteria === "" || - (criteria instanceof Array && criteria.length === 0)) { + (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error(`Empty criteria(s) are not allowed for the delete method.`)); } @@ -691,7 +691,7 @@ export class EntityManager { if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || - criteria instanceof Array) { + Array.isArray(criteria)) { return this.createQueryBuilder() .softDelete() @@ -721,7 +721,7 @@ export class EntityManager { if (criteria === undefined || criteria === null || criteria === "" || - (criteria instanceof Array && criteria.length === 0)) { + (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error(`Empty criteria(s) are not allowed for the delete method.`)); } @@ -729,7 +729,7 @@ export class EntityManager { if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || - criteria instanceof Array) { + Array.isArray(criteria)) { return this.createQueryBuilder() .restore() diff --git a/src/metadata/RelationMetadata.ts b/src/metadata/RelationMetadata.ts index f51d20ff0b..654747b5a9 100644 --- a/src/metadata/RelationMetadata.ts +++ b/src/metadata/RelationMetadata.ts @@ -281,11 +281,11 @@ export class RelationMetadata { this.givenInverseSidePropertyFactory = args.inverseSideProperty; this.isLazy = args.isLazy || false; - this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1); - this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1); - this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1); - this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1); - this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1); + // this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1); + // this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1); + // this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1); + // this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1); + // this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1); this.isCascadeInsert = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("insert") !== -1); this.isCascadeUpdate = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("update") !== -1); this.isCascadeRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("remove") !== -1); diff --git a/src/query-builder/QueryBuilder.ts b/src/query-builder/QueryBuilder.ts index 5c2cdb2a0a..004df423ef 100644 --- a/src/query-builder/QueryBuilder.ts +++ b/src/query-builder/QueryBuilder.ts @@ -778,7 +778,7 @@ export abstract class QueryBuilder { return where(this); } else if (where instanceof Object) { - const wheres: ObjectLiteral[] = where instanceof Array ? where : [where]; + const wheres: ObjectLiteral[] = Array.isArray(where) ? where : [where]; let andConditions: string[]; let parameterIndex = Object.keys(this.expressionMap.nativeParameters).length; diff --git a/src/query-builder/SoftDeleteQueryBuilder.ts b/src/query-builder/SoftDeleteQueryBuilder.ts index cd9b11e605..3f5b903f48 100644 --- a/src/query-builder/SoftDeleteQueryBuilder.ts +++ b/src/query-builder/SoftDeleteQueryBuilder.ts @@ -334,7 +334,7 @@ export class SoftDeleteQueryBuilder extends QueryBuilder impleme throw new Error(`.whereEntity method can only be used on queries which update real entity table.`); this.expressionMap.wheres = []; - const entities: Entity[] = entity instanceof Array ? entity : [entity]; + const entities: Entity[] = Array.isArray(entity) ? entity : [entity]; entities.forEach(entity => { const entityIdMap = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity); @@ -456,4 +456,4 @@ export class SoftDeleteQueryBuilder extends QueryBuilder impleme return ""; } -} \ No newline at end of file +} diff --git a/src/util/DateUtils.ts b/src/util/DateUtils.ts index 0e3ee0714d..bd6ec2a24c 100644 --- a/src/util/DateUtils.ts +++ b/src/util/DateUtils.ts @@ -146,7 +146,7 @@ export class DateUtils { * Converts each item in the given array to string joined by "," separator. */ static simpleArrayToString(value: any[]|any): string[]|any { - if (value instanceof Array) { + if (Array.isArray(value)) { return (value as any[]) .map(i => String(i)) .join(","); diff --git a/test/github-issues/587/issue-587.ts b/test/github-issues/587/issue-587.ts index d3dc979c47..5ebbbfde67 100644 --- a/test/github-issues/587/issue-587.ts +++ b/test/github-issues/587/issue-587.ts @@ -16,7 +16,7 @@ describe("github issues > #587 Ordering of fields in composite indexes defined u it("should preserve field ordering when fields are specified as string[]", () => Promise.all(connections.map(async connection => { connection.entityMetadatas.forEach(entityMetadata => { entityMetadata.indices.forEach(index => { - if (index.givenColumnNames && index.givenColumnNames instanceof Array) { + if (index.givenColumnNames && Array.isArray(index.givenColumnNames)) { for (let i = 0; i < index.columns.length; i++) { const givenColumn = (index.givenColumnNames as string[])[i]; const actualColumn = index.columns[i];