Skip to content

Commit 8fce214

Browse files
[fix #2982] use DispatcherInterceptor type for Dispatcher#Compose (#2983)
1 parent fcbf6de commit 8fce214

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

test/types/dispatcher.test-d.ts

+28-2
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,34 @@ declare const { body }: Dispatcher.ResponseData;
129129

130130
// compose
131131
{
132-
expectAssignable<Dispatcher.ComposedDispatcher>(new Dispatcher().compose(new Dispatcher().dispatch, new Dispatcher().dispatch))
133-
expectAssignable<Dispatcher.ComposedDispatcher>(new Dispatcher().compose([new Dispatcher().dispatch, new Dispatcher().dispatch]))
132+
expectAssignable<Dispatcher.ComposedDispatcher>(new Dispatcher().compose(
133+
(dispatcher) => {
134+
expectAssignable<Dispatcher['dispatch']>(dispatcher);
135+
return (opts, handlers) => {
136+
expectAssignable<Dispatcher.DispatchOptions>(opts);
137+
expectAssignable<Dispatcher.DispatchHandlers>(handlers);
138+
return dispatcher(opts, handlers)
139+
}
140+
}
141+
))
142+
expectAssignable<Dispatcher.ComposedDispatcher>(new Dispatcher().compose([
143+
(dispatcher) => {
144+
expectAssignable<Dispatcher['dispatch']>(dispatcher);
145+
return (opts, handlers) => {
146+
expectAssignable<Dispatcher.DispatchOptions>(opts);
147+
expectAssignable<Dispatcher.DispatchHandlers>(handlers);
148+
return dispatcher(opts, handlers)
149+
}
150+
},
151+
(dispatcher) => {
152+
expectAssignable<Dispatcher['dispatch']>(dispatcher);
153+
return (opts, handlers) => {
154+
expectAssignable<Dispatcher.DispatchOptions>(opts);
155+
expectAssignable<Dispatcher.DispatchHandlers>(handlers);
156+
return dispatcher(opts, handlers)
157+
}
158+
}
159+
]))
134160
}
135161

136162
{

types/dispatcher.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ declare class Dispatcher extends EventEmitter {
1919
connect(options: Dispatcher.ConnectOptions): Promise<Dispatcher.ConnectData>;
2020
connect(options: Dispatcher.ConnectOptions, callback: (err: Error | null, data: Dispatcher.ConnectData) => void): void;
2121
/** Compose a chain of dispatchers */
22-
compose(dispatchers: Dispatcher['dispatch'][]): Dispatcher.ComposedDispatcher;
23-
compose(...dispatchers: Dispatcher['dispatch'][]): Dispatcher.ComposedDispatcher;
22+
compose(dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher;
23+
compose(...dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher;
2424
/** Performs an HTTP request. */
2525
request(options: Dispatcher.RequestOptions): Promise<Dispatcher.ResponseData>;
2626
request(options: Dispatcher.RequestOptions, callback: (err: Error | null, data: Dispatcher.ResponseData) => void): void;

0 commit comments

Comments
 (0)