aboutsummaryrefslogtreecommitdiff
path: root/extension/src/webext-bridge/internal/delivery-logger.ts
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-11-19 14:54:18 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2023-11-19 14:54:18 -0500
commit43429314c0989b423e116be3e9f222eba5b636c3 (patch)
tree78d394b1a995fa137fc542050e730ee76b423561 /extension/src/webext-bridge/internal/delivery-logger.ts
parentbc7b86a242673d7831f6105d000995d9f4d63e09 (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.ts28
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,
+ }
+}