diff options
author | vnugent <public@vaughnnugent.com> | 2023-11-19 14:54:18 -0500 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2023-11-19 14:54:18 -0500 |
commit | 43429314c0989b423e116be3e9f222eba5b636c3 (patch) | |
tree | 78d394b1a995fa137fc542050e730ee76b423561 /extension/src/webext-bridge/internal/delivery-logger.ts | |
parent | bc7b86a242673d7831f6105d000995d9f4d63e09 (diff) |
include webext-bridge modified source
Diffstat (limited to 'extension/src/webext-bridge/internal/delivery-logger.ts')
-rw-r--r-- | extension/src/webext-bridge/internal/delivery-logger.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/extension/src/webext-bridge/internal/delivery-logger.ts b/extension/src/webext-bridge/internal/delivery-logger.ts new file mode 100644 index 0000000..395f035 --- /dev/null +++ b/extension/src/webext-bridge/internal/delivery-logger.ts @@ -0,0 +1,28 @@ +import type { InternalMessage } from '../types' +import type { EndpointFingerprint } from './endpoint-fingerprint' + +export interface DeliveryReceipt { + message: InternalMessage + to: EndpointFingerprint + from: { + endpointId: string + fingerprint: EndpointFingerprint + } +} + +export const createDeliveryLogger = () => { + let logs: ReadonlyArray<DeliveryReceipt> = [] + + return { + add: (...receipts: DeliveryReceipt[]) => { + logs = [...logs, ...receipts] + }, + remove: (message: string | DeliveryReceipt[]) => { + logs + = typeof message === 'string' + ? logs.filter(receipt => receipt.message.transactionId !== message) + : logs.filter(receipt => !message.includes(receipt)) + }, + entries: () => logs, + } +} |