diff --git a/packages/lib/src/data/messages_core.ts b/packages/lib/src/data/messages_core.ts index 36b85720..305905e4 100644 --- a/packages/lib/src/data/messages_core.ts +++ b/packages/lib/src/data/messages_core.ts @@ -102,8 +102,16 @@ export class Address { * Returns a string suitable for indexing the address in a Map * @returns unique string for this address */ - index() { - return `${this.type}:${this.id}:${this.requestId}`; + requestIndex() { + return `${this.type}:${this.id}:${this.requestId}` as const; + } + + /** + * Returns a string suitable for indexing the address in a Map + * @returns unique string for this address, excluding required id + */ + addressIndex() { + return `${this.type}:${this.id}` as const; } /** diff --git a/packages/lib/src/link/link.ts b/packages/lib/src/link/link.ts index ac15d5c6..b7bc8c02 100644 --- a/packages/lib/src/link/link.ts +++ b/packages/lib/src/link/link.ts @@ -219,7 +219,7 @@ export class Link { if (!message.dst.addressedTo(this.connector.src)) { if (message.type === "response" || message.type === "responseError") { - this._forwardedRequests.delete(message.dst.index()); + this._forwardedRequests.delete(message.dst.requestIndex()); } this._routeMessage(message, entry); return; @@ -566,7 +566,7 @@ export class Link { src: message.src, dst: message.dst, }; - this._forwardedRequests.set(message.src.index(), pending); + this._forwardedRequests.set(message.src.requestIndex(), pending); this.connector.forward(message); }