Skip to content

Commit b99b4ad

Browse files
authored
fix: replacing instanceof Array checks to Array.isArray because instanceof Array seems to be problematic on some platforms (#5606)
1 parent 86328d0 commit b99b4ad

File tree

7 files changed

+17
-17
lines changed

7 files changed

+17
-17
lines changed

src/cache/RedisQueryResultCache.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export class RedisQueryResultCache implements QueryResultCache {
6161
this.client = new this.redis();
6262
}
6363
} else if (this.clientType === "ioredis/cluster") {
64-
if (cacheOptions && cacheOptions.options && cacheOptions.options instanceof Array) {
64+
if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) {
6565
this.client = new this.redis.Cluster(cacheOptions.options);
6666
} else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) {
6767
this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options);

src/entity-manager/EntityManager.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ export class EntityManager {
511511
target = target.options.name;
512512

513513
// if user passed empty array of entities then we don't need to do anything
514-
if (entity instanceof Array && entity.length === 0)
514+
if (Array.isArray(entity) && entity.length === 0)
515515
return Promise.resolve(entity);
516516

517517
// execute soft-remove operation
@@ -564,7 +564,7 @@ export class EntityManager {
564564
target = target.options.name;
565565

566566
// if user passed empty array of entities then we don't need to do anything
567-
if (entity instanceof Array && entity.length === 0)
567+
if (Array.isArray(entity) && entity.length === 0)
568568
return Promise.resolve(entity);
569569

570570
// execute recover operation
@@ -683,15 +683,15 @@ export class EntityManager {
683683
if (criteria === undefined ||
684684
criteria === null ||
685685
criteria === "" ||
686-
(criteria instanceof Array && criteria.length === 0)) {
686+
(Array.isArray(criteria) && criteria.length === 0)) {
687687

688688
return Promise.reject(new Error(`Empty criteria(s) are not allowed for the delete method.`));
689689
}
690690

691691
if (typeof criteria === "string" ||
692692
typeof criteria === "number" ||
693693
criteria instanceof Date ||
694-
criteria instanceof Array) {
694+
Array.isArray(criteria)) {
695695

696696
return this.createQueryBuilder()
697697
.softDelete()
@@ -721,15 +721,15 @@ export class EntityManager {
721721
if (criteria === undefined ||
722722
criteria === null ||
723723
criteria === "" ||
724-
(criteria instanceof Array && criteria.length === 0)) {
724+
(Array.isArray(criteria) && criteria.length === 0)) {
725725

726726
return Promise.reject(new Error(`Empty criteria(s) are not allowed for the delete method.`));
727727
}
728728

729729
if (typeof criteria === "string" ||
730730
typeof criteria === "number" ||
731731
criteria instanceof Date ||
732-
criteria instanceof Array) {
732+
Array.isArray(criteria)) {
733733

734734
return this.createQueryBuilder()
735735
.restore()

src/metadata/RelationMetadata.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,11 @@ export class RelationMetadata {
281281
this.givenInverseSidePropertyFactory = args.inverseSideProperty;
282282

283283
this.isLazy = args.isLazy || false;
284-
this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1);
285-
this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1);
286-
this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1);
287-
this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1);
288-
this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1);
284+
// this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1);
285+
// this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1);
286+
// this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1);
287+
// this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1);
288+
// this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1);
289289
this.isCascadeInsert = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("insert") !== -1);
290290
this.isCascadeUpdate = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("update") !== -1);
291291
this.isCascadeRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("remove") !== -1);

src/query-builder/QueryBuilder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ export abstract class QueryBuilder<Entity> {
778778
return where(this);
779779

780780
} else if (where instanceof Object) {
781-
const wheres: ObjectLiteral[] = where instanceof Array ? where : [where];
781+
const wheres: ObjectLiteral[] = Array.isArray(where) ? where : [where];
782782
let andConditions: string[];
783783
let parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
784784

src/query-builder/SoftDeleteQueryBuilder.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ export class SoftDeleteQueryBuilder<Entity> extends QueryBuilder<Entity> impleme
334334
throw new Error(`.whereEntity method can only be used on queries which update real entity table.`);
335335

336336
this.expressionMap.wheres = [];
337-
const entities: Entity[] = entity instanceof Array ? entity : [entity];
337+
const entities: Entity[] = Array.isArray(entity) ? entity : [entity];
338338
entities.forEach(entity => {
339339

340340
const entityIdMap = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity);
@@ -456,4 +456,4 @@ export class SoftDeleteQueryBuilder<Entity> extends QueryBuilder<Entity> impleme
456456
return "";
457457
}
458458

459-
}
459+
}

src/util/DateUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export class DateUtils {
146146
* Converts each item in the given array to string joined by "," separator.
147147
*/
148148
static simpleArrayToString(value: any[]|any): string[]|any {
149-
if (value instanceof Array) {
149+
if (Array.isArray(value)) {
150150
return (value as any[])
151151
.map(i => String(i))
152152
.join(",");

test/github-issues/587/issue-587.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe("github issues > #587 Ordering of fields in composite indexes defined u
1616
it("should preserve field ordering when fields are specified as string[]", () => Promise.all(connections.map(async connection => {
1717
connection.entityMetadatas.forEach(entityMetadata => {
1818
entityMetadata.indices.forEach(index => {
19-
if (index.givenColumnNames && index.givenColumnNames instanceof Array) {
19+
if (index.givenColumnNames && Array.isArray(index.givenColumnNames)) {
2020
for (let i = 0; i < index.columns.length; i++) {
2121
const givenColumn = (index.givenColumnNames as string[])[i];
2222
const actualColumn = index.columns[i];

0 commit comments

Comments
 (0)