Skip to content

Commit 8160fa7

Browse files
authored
fix #1865 - add defaults to RedisModules and RedisScripts (#1885)
1 parent ac1a61f commit 8160fa7

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

packages/client/lib/client/index.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ import { ClientClosedError, DisconnectsClientError, AuthError } from '../errors'
1515
import { URL } from 'url';
1616
import { TcpSocketConnectOpts } from 'net';
1717

18-
export interface RedisClientOptions<M extends RedisModules, S extends RedisScripts> extends RedisPlugins<M, S> {
18+
export interface RedisClientOptions<
19+
M extends RedisModules = Record<string, never>,
20+
S extends RedisScripts = Record<string, never>
21+
> extends RedisPlugins<M, S> {
1922
url?: string;
2023
socket?: RedisSocketOptions;
2124
username?: string;
@@ -73,8 +76,10 @@ export type WithScripts<S extends RedisScripts> = {
7376
[P in keyof S as ExcludeMappedString<P>]: RedisClientCommandSignature<S[P]>;
7477
};
7578

76-
export type RedisClientType<M extends RedisModules, S extends RedisScripts> =
77-
RedisClient<M, S> & WithCommands & WithModules<M> & WithScripts<S>;
79+
export type RedisClientType<
80+
M extends RedisModules = Record<string, never>,
81+
S extends RedisScripts = Record<string, never>
82+
> = RedisClient<M, S> & WithCommands & WithModules<M> & WithScripts<S>;
7883

7984
export type InstantiableRedisClient<M extends RedisModules, S extends RedisScripts> =
8085
new (options?: RedisClientOptions<M, S>) => RedisClientType<M, S>;
@@ -112,10 +117,10 @@ export default class RedisClient<M extends RedisModules, S extends RedisScripts>
112117
return new (RedisClient.extend(options))(options);
113118
}
114119

115-
static parseURL(url: string): RedisClientOptions<Record<string, never>, Record<string, never>> {
120+
static parseURL(url: string): RedisClientOptions {
116121
// https://www.iana.org/assignments/uri-schemes/prov/redis
117122
const { hostname, port, protocol, username, password, pathname } = new URL(url),
118-
parsed: RedisClientOptions<Record<string, never>, Record<string, never>> = {
123+
parsed: RedisClientOptions = {
119124
socket: {
120125
host: hostname
121126
}

packages/client/lib/cluster/index.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ import { EventEmitter } from 'events';
77
import RedisClusterMultiCommand, { RedisClusterMultiCommandType } from './multi-command';
88
import { RedisMultiQueuedCommand } from '../multi-command';
99

10-
export type RedisClusterClientOptions = Omit<RedisClientOptions<Record<string, never>, Record<string, never>>, 'modules' | 'scripts'>;
10+
export type RedisClusterClientOptions = Omit<RedisClientOptions, 'modules' | 'scripts'>;
1111

12-
export interface RedisClusterOptions<M extends RedisModules, S extends RedisScripts> extends RedisPlugins<M, S> {
12+
export interface RedisClusterOptions<
13+
M extends RedisModules = Record<string, never>,
14+
S extends RedisScripts = Record<string, never>
15+
> extends RedisPlugins<M, S> {
1316
rootNodes: Array<RedisClusterClientOptions>;
1417
defaults?: Partial<RedisClusterClientOptions>;
1518
useReplicas?: boolean;
@@ -20,8 +23,10 @@ type WithCommands = {
2023
[P in keyof typeof COMMANDS]: RedisClientCommandSignature<(typeof COMMANDS)[P]>;
2124
};
2225

23-
export type RedisClusterType<M extends RedisModules, S extends RedisScripts> =
24-
RedisCluster<M, S> & WithCommands & WithModules<M> & WithScripts<S>;
26+
export type RedisClusterType<
27+
M extends RedisModules = Record<string, never>,
28+
S extends RedisScripts = Record<string, never>
29+
> = RedisCluster<M, S> & WithCommands & WithModules<M> & WithScripts<S>;
2530

2631
export default class RedisCluster<M extends RedisModules, S extends RedisScripts> extends EventEmitter {
2732
static extractFirstKey(command: RedisCommand, originalArgs: Array<unknown>, redisArgs: RedisCommandArguments): RedisCommandArgument | undefined {

0 commit comments

Comments
 (0)