File tree Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change 1- import { TSchema } from "@sinclair/typebox" ;
21import { castArrayIfExists } from "radashi" ;
32import { RedisChannel , RedisChannelPattern } from "./channel" ;
43import { Materialize , RedisCommand , RedisValue } from "./command" ;
5- import { MessageEvent , Subscriber } from "./subscriber" ;
4+ import { ExtractMessageEvent , Subscriber } from "./subscriber" ;
65import { ConnectionInstance , RedisClientOptions , RedisResponse } from "./type" ;
76import { createParser } from "./utils/create-parser" ;
87import { encodeCommand } from "./utils/encode-command" ;
@@ -245,10 +244,12 @@ export class RedisClient {
245244 * You may unsubscribe through the `ReadableStream#cancel` or
246245 * `MessageEvent#cancel` methods.
247246 */
248- subscribe < T extends TSchema > (
249- pattern : MaybeArray < RedisChannel < T > | RedisChannelPattern < T > > ,
247+ subscribe < TPattern extends MaybeArray < RedisChannel | RedisChannelPattern > > (
248+ pattern : TPattern ,
250249 signal ?: AbortSignal ,
251- ) : ReadableStream < MessageEvent < T > > {
250+ ) : ReadableStream <
251+ ExtractMessageEvent < TPattern extends any [ ] ? TPattern [ number ] : TPattern >
252+ > {
252253 const subscriber = ( this . #subscriber ??= new Subscriber ( this . options ) ) ;
253254 return subscriber . subscribe ( pattern , signal ) ;
254255 }
Original file line number Diff line number Diff line change @@ -195,3 +195,10 @@ export class MessageEvent<T extends TSchema = TSchema> {
195195 this . #stream. readable . cancel ( reason ) ;
196196 }
197197}
198+
199+ export type ExtractMessageEvent < T extends SubscriptionKey > =
200+ T extends SubscriptionKey < infer TSchema >
201+ ? TSchema extends any
202+ ? MessageEvent < TSchema >
203+ : never
204+ : never ;
You can’t perform that action at this time.
0 commit comments