From 3c226215419ca815712e9568f7d871a96f5ff1cf Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Wed, 20 Dec 2023 00:18:55 -0500 Subject: Simplify message handlers (#396) --- types/ext/backend.d.ts | 8 -------- types/ext/core.d.ts | 26 ++++++-------------------- types/ext/offscreen.d.ts | 6 +++++- 3 files changed, 11 insertions(+), 29 deletions(-) (limited to 'types/ext') diff --git a/types/ext/backend.d.ts b/types/ext/backend.d.ts index 08cbf4b0..6cbe7938 100644 --- a/types/ext/backend.d.ts +++ b/types/ext/backend.d.ts @@ -18,14 +18,6 @@ import type * as Api from './api'; import type * as Core from './core'; -export type MessageHandlerDetails = { - async: boolean; - contentScript: boolean; - handler: (params: Core.SerializableObject | undefined, sender: chrome.runtime.MessageSender) => unknown; -}; -export type MessageHandlerMap = Map; -export type MessageHandlerMapInit = [key: string, handlerDetails: MessageHandlerDetails][]; - export type MessageHandlerWithProgressDetails = { async: boolean; contentScript: boolean; diff --git a/types/ext/core.d.ts b/types/ext/core.d.ts index d1a4ef8f..c71a8ec4 100644 --- a/types/ext/core.d.ts +++ b/types/ext/core.d.ts @@ -75,30 +75,16 @@ export type ResponseError = { export type Response = ResponseSuccess | ResponseError; export type MessageHandler = (params: SafeAny, ...extraArgs: SafeAny[]) => ( - SafeAny | - Promise | - MessageHandlerAsyncResult + MessageHandlerResult | + Promise ); -export type MessageHandlerAsyncResult = { - async: boolean; - result: SafeAny | Promise; -}; +export type MessageHandlerResult = SafeAny; -export type MessageHandlerDetails = { - /** - * Whether or not the handler is async or not. Values include `false`, `true`, or `'dynamic'`. - * When the value is `'dynamic'`, the handler should return an object of the format `{async: boolean, result: any}`. - */ - async: boolean | 'dynamic'; - /** - * A handler function which is passed `params` and `...extraArgs` as arguments. - */ - handler: MessageHandler; -}; +export type MessageHandlerMap = Map; -export type MessageHandlerMap = Map; +export type MessageHandlerMapInit = MessageHandlerMapInitItem[]; -export type MessageHandlerArray = [key: string, handlerDetails: MessageHandlerDetails][]; +export type MessageHandlerMapInitItem = [key: string, handlerDetails: MessageHandler]; export type Timeout = number | NodeJS.Timeout; diff --git a/types/ext/offscreen.d.ts b/types/ext/offscreen.d.ts index 85bce1ff..c741ac99 100644 --- a/types/ext/offscreen.d.ts +++ b/types/ext/offscreen.d.ts @@ -110,4 +110,8 @@ export type MessageHandler< details: MessageDetailsMap[TMessage], ) => (TIsAsync extends true ? Promise> : MessageReturn); -export type MessageHandlerMap = Map; +export type MessageHandlerMap = Map; + +export type MessageHandlerMapInit = MessageHandlerMapInitItem[]; + +export type MessageHandlerMapInitItem = [messageType: MessageType, handler: Core.MessageHandler]; -- cgit v1.2.3