From f669b2d16881bdc3e6029ca4e79d2ac3d0d7a1cb Mon Sep 17 00:00:00 2001 From: Jorrin Date: Tue, 9 Jan 2024 23:01:11 +0100 Subject: [PATCH] improve typings --- src/background/messages/hello.ts | 9 +++++++-- src/background/messages/makeRequest.ts | 14 +++++++++++--- src/background/messages/prepareStream.ts | 9 +++++---- src/types/request.ts | 2 +- src/types/response.ts | 8 ++++++++ 5 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/types/response.ts diff --git a/src/background/messages/hello.ts b/src/background/messages/hello.ts index 4489421..ecff028 100644 --- a/src/background/messages/hello.ts +++ b/src/background/messages/hello.ts @@ -1,9 +1,14 @@ import type { PlasmoMessaging } from '@plasmohq/messaging'; -import type { BaseRequestBody } from '~types/request'; +import type { BaseRequest } from '~types/request'; +import type { BaseResponse } from '~types/response'; import { validateDomainWhiteList } from '~utils/storage'; -const handler: PlasmoMessaging.MessageHandler = async (req, res) => { +type Response = BaseResponse<{ + version: string; +}>; + +const handler: PlasmoMessaging.MessageHandler = async (req, res) => { try { await validateDomainWhiteList(req.body.requestDomain); diff --git a/src/background/messages/makeRequest.ts b/src/background/messages/makeRequest.ts index b9996aa..fd53e79 100644 --- a/src/background/messages/makeRequest.ts +++ b/src/background/messages/makeRequest.ts @@ -1,16 +1,24 @@ import type { PlasmoMessaging } from '@plasmohq/messaging'; -import type { BaseRequestBody } from '~types/request'; +import type { BaseRequest } from '~types/request'; +import type { BaseResponse } from '~types/response'; import { validateDomainWhiteList } from '~utils/storage'; -interface RequestBody extends BaseRequestBody { +interface Request extends BaseRequest { url: string; method: string; headers?: Record; body?: string | FormData | URLSearchParams; } -const handler: PlasmoMessaging.MessageHandler = async (req, res) => { +type Response = BaseResponse<{ + status: number; + requestHeaders: Record; + responseHeaders: Record; + data: string | Record; +}>; + +const handler: PlasmoMessaging.MessageHandler = async (req, res) => { try { await validateDomainWhiteList(req.body.requestDomain); diff --git a/src/background/messages/prepareStream.ts b/src/background/messages/prepareStream.ts index e3f2933..3d6dc1d 100644 --- a/src/background/messages/prepareStream.ts +++ b/src/background/messages/prepareStream.ts @@ -1,10 +1,11 @@ import type { PlasmoMessaging } from '@plasmohq/messaging'; +import type { BaseRequest } from '~types/request'; +import type { BaseResponse } from '~types/response'; import { validateDomainWhiteList } from '~utils/storage'; -interface RequestBody { +interface Request extends BaseRequest { ruleId: number; - hostDomain: string; targetDomains: [string, ...string[]]; requestHeaders?: Record; responseHeaders?: Record; @@ -20,9 +21,9 @@ const mapHeadersToDeclarativeNetRequestHeaders = ( })); }; -const handler: PlasmoMessaging.MessageHandler = async (req, res) => { +const handler: PlasmoMessaging.MessageHandler = async (req, res) => { try { - await validateDomainWhiteList(req.body.hostDomain); + await validateDomainWhiteList(req.body.requestDomain); await chrome.declarativeNetRequest.updateDynamicRules({ removeRuleIds: [req.body.ruleId], diff --git a/src/types/request.ts b/src/types/request.ts index c4f4e1c..8509221 100644 --- a/src/types/request.ts +++ b/src/types/request.ts @@ -1,3 +1,3 @@ -export interface BaseRequestBody { +export interface BaseRequest { requestDomain: string; } diff --git a/src/types/response.ts b/src/types/response.ts new file mode 100644 index 0000000..37c4c65 --- /dev/null +++ b/src/types/response.ts @@ -0,0 +1,8 @@ +export type BaseResponse = + | ({ + success: true; + } & T) + | { + success: false; + error: string; + };