diff --git a/src/ControllerMessenger.ts b/src/ControllerMessenger.ts index 4010494d174..12568efc6c1 100644 --- a/src/ControllerMessenger.ts +++ b/src/ControllerMessenger.ts @@ -1,19 +1,15 @@ -export type ActionHandler = ( +type ActionHandler = ( ...args: ExtractActionParameters ) => ExtractActionResponse; -export type ExtractActionParameters = Action extends { type: T; handler: (...args: infer H) => any } - ? H - : never; -export type ExtractActionResponse = Action extends { type: T; handler: (...args: any) => infer H } - ? H - : never; +type ExtractActionParameters = Action extends { type: T; handler: (...args: infer H) => any } ? H : never; +type ExtractActionResponse = Action extends { type: T; handler: (...args: any) => infer H } ? H : never; -export type ExtractEvenHandler = Event extends { type: T; payload: infer P } +type ExtractEvenHandler = Event extends { type: T; payload: infer P } ? P extends any[] ? (...payload: P) => void : never : never; -export type ExtractEventPayload = Event extends { type: T; payload: infer P } ? P : never; +type ExtractEventPayload = Event extends { type: T; payload: infer P } ? P : never; type ActionConstraint = { type: string; handler: (...args: any) => unknown }; type EventConstraint = { type: string; payload: unknown[] };