From 34264db89575ee2759263c21733b7edca2712cc8 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Sat, 9 Jan 2021 16:25:55 -0400 Subject: [PATCH] typings --- utils/lightningServices/lightning-services.js | 3 +++ utils/lightningServices/types.ts | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/utils/lightningServices/lightning-services.js b/utils/lightningServices/lightning-services.js index 6f61e0d9..71ef98d9 100644 --- a/utils/lightningServices/lightning-services.js +++ b/utils/lightningServices/lightning-services.js @@ -74,6 +74,9 @@ class LightningServices { } } + /** + * @returns {import('./types').Services} + */ getServices() { return this.services } diff --git a/utils/lightningServices/types.ts b/utils/lightningServices/types.ts index f8e77d81..4b8b5781 100644 --- a/utils/lightningServices/types.ts +++ b/utils/lightningServices/types.ts @@ -106,3 +106,28 @@ export interface SendPaymentInvoiceParams { payment_request: string timeoutSeconds?: number } + +type StreamListener = (data: any) => void + +/** + * Caution: Not all methods return an stream. + */ +interface LightningStream { + on(ev: 'data' | 'end' | 'error' | 'status', listener: StreamListener): void +} + +type LightningCB = (err: Error, data: Record) => void + +type LightningMethod = ( + args: Record, + cb?: LightningCB +) => LightningStream + +/** + * Makes it easier for code calling services. + */ +export interface Services { + lightning: Record + walletUnlocker: Record + router: Record +}