From 8fce214517711203199421d2c00e96f64fff6f54 Mon Sep 17 00:00:00 2001 From: Clovis Guillemot Date: Fri, 22 Mar 2024 15:27:11 +0100 Subject: [PATCH] [fix #2982] use DispatcherInterceptor type for Dispatcher#Compose (#2983) --- test/types/dispatcher.test-d.ts | 30 ++++++++++++++++++++++++++++-- types/dispatcher.d.ts | 4 ++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/test/types/dispatcher.test-d.ts b/test/types/dispatcher.test-d.ts index 245ee218d59..4e9aabc93bc 100644 --- a/test/types/dispatcher.test-d.ts +++ b/test/types/dispatcher.test-d.ts @@ -129,8 +129,34 @@ declare const { body }: Dispatcher.ResponseData; // compose { - expectAssignable(new Dispatcher().compose(new Dispatcher().dispatch, new Dispatcher().dispatch)) - expectAssignable(new Dispatcher().compose([new Dispatcher().dispatch, new Dispatcher().dispatch])) + expectAssignable(new Dispatcher().compose( + (dispatcher) => { + expectAssignable(dispatcher); + return (opts, handlers) => { + expectAssignable(opts); + expectAssignable(handlers); + return dispatcher(opts, handlers) + } + } + )) + expectAssignable(new Dispatcher().compose([ + (dispatcher) => { + expectAssignable(dispatcher); + return (opts, handlers) => { + expectAssignable(opts); + expectAssignable(handlers); + return dispatcher(opts, handlers) + } + }, + (dispatcher) => { + expectAssignable(dispatcher); + return (opts, handlers) => { + expectAssignable(opts); + expectAssignable(handlers); + return dispatcher(opts, handlers) + } + } + ])) } { diff --git a/types/dispatcher.d.ts b/types/dispatcher.d.ts index e632e0e921a..7665ae32841 100644 --- a/types/dispatcher.d.ts +++ b/types/dispatcher.d.ts @@ -19,8 +19,8 @@ declare class Dispatcher extends EventEmitter { connect(options: Dispatcher.ConnectOptions): Promise; connect(options: Dispatcher.ConnectOptions, callback: (err: Error | null, data: Dispatcher.ConnectData) => void): void; /** Compose a chain of dispatchers */ - compose(dispatchers: Dispatcher['dispatch'][]): Dispatcher.ComposedDispatcher; - compose(...dispatchers: Dispatcher['dispatch'][]): Dispatcher.ComposedDispatcher; + compose(dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher; + compose(...dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher; /** Performs an HTTP request. */ request(options: Dispatcher.RequestOptions): Promise; request(options: Dispatcher.RequestOptions, callback: (err: Error | null, data: Dispatcher.ResponseData) => void): void;