From cc7f9b4e0c9fc6d97cf9a600091a49cc0274bf09 Mon Sep 17 00:00:00 2001 From: Shahar Mor Date: Tue, 2 Jan 2018 22:46:47 +0200 Subject: [PATCH] support all Redis.Cluster node types (#22500) --- types/ioredis/index.d.ts | 10 +++++++++- types/ioredis/ioredis-tests.ts | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/types/ioredis/index.d.ts b/types/ioredis/index.d.ts index ff2810ebd4..de71a9f083 100644 --- a/types/ioredis/index.d.ts +++ b/types/ioredis/index.d.ts @@ -4,6 +4,7 @@ // Christopher Eck // Yoga Aliarham // Ebrahim +// Shahar Mor // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -744,8 +745,15 @@ declare namespace IORedis { pfcount(...keys: string[]): Pipeline; } + interface NodeConfiguration { + host?: string; + port?: number; + } + + type ClusterNode = string | number | NodeConfiguration; + interface Cluster extends NodeJS.EventEmitter, Commander { - new(nodes: Array<{ host: string; port: number; }>, options?: ClusterOptions): Redis; + new(nodes: ClusterNode[], options?: ClusterOptions): Redis; connect(callback: () => void): Promise; disconnect(): void; nodes(role: string): Redis[]; diff --git a/types/ioredis/ioredis-tests.ts b/types/ioredis/ioredis-tests.ts index 99c7efada3..2e80cd80e4 100644 --- a/types/ioredis/ioredis-tests.ts +++ b/types/ioredis/ioredis-tests.ts @@ -107,3 +107,24 @@ redis.multi([ const keys = [ 'foo', 'bar' ]; redis.mget(...keys); + +new Redis.Cluster([ + 'localhost' +]); + +new Redis.Cluster([ + 6379 +]); + +new Redis.Cluster([{ + host: 'localhost' +}]); + +new Redis.Cluster([{ + port: 6379 +}]); + +new Redis.Cluster([{ + host: 'localhost', + port: 6379 +}]);