From e4f2587cabdcea92d2096114393aa1daca610671 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 16 Oct 2022 23:11:34 +0200 Subject: webextension: introduce typesafe wallet-core API client --- packages/taler-wallet-core/src/wallet-api-types.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'packages/taler-wallet-core/src') diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts b/packages/taler-wallet-core/src/wallet-api-types.ts index 88e66ff9e..354681734 100644 --- a/packages/taler-wallet-core/src/wallet-api-types.ts +++ b/packages/taler-wallet-core/src/wallet-api-types.ts @@ -707,17 +707,19 @@ export type WalletOperations = { [WalletApiOperation.SetDevMode]: SetDevModeOp; }; -export type RequestType< +export type WalletCoreRequestType< Op extends WalletApiOperation & keyof WalletOperations, > = WalletOperations[Op] extends { request: infer T } ? T : never; -export type ResponseType< +export type WalletCoreResponseType< Op extends WalletApiOperation & keyof WalletOperations, > = WalletOperations[Op] extends { response: infer T } ? T : never; +export type WalletCoreOpKeys = WalletApiOperation & keyof WalletOperations; + export interface WalletCoreApiClient { - call( + call( operation: Op, - payload: RequestType, - ): Promise>; + payload: WalletCoreRequestType, + ): Promise>; } -- cgit v1.2.3