-import { ResponsePayload, ResponseStatus } from '../types/UIProtocol';
+import { type ResponsePayload, ResponseStatus } from '../types/UIProtocol';
import type {
BroadcastChannelResponse,
BroadcastChannelResponsePayload,
}
private responseHandler(messageEvent: MessageEvent): void {
- if (this.isRequest(messageEvent.data) === true) {
+ const validatedMessageEvent = this.validateMessageEvent(messageEvent);
+ if (validatedMessageEvent === false) {
return;
}
- const [uuid, responsePayload] = this.validateMessageEvent(messageEvent)
- .data as BroadcastChannelResponse;
+ if (this.isRequest(validatedMessageEvent.data) === true) {
+ return;
+ }
+ const [uuid, responsePayload] = validatedMessageEvent.data as BroadcastChannelResponse;
if (this.responses.has(uuid) === false) {
this.responses.set(uuid, {
responsesExpected: this.uiService.getBroadcastChannelExpectedResponses(uuid),
private buildResponsePayload(uuid: string): ResponsePayload {
const responsesStatus = this.responses
.get(uuid)
- ?.responses.every((response) => response.status === ResponseStatus.SUCCESS)
+ ?.responses.every(({ status }) => status === ResponseStatus.SUCCESS)
? ResponseStatus.SUCCESS
: ResponseStatus.FAILURE;
return {
})
.filter((hashId) => hashId !== undefined),
}),
+ ...(responsesStatus === ResponseStatus.FAILURE && {
+ responsesFailed: this.responses
+ .get(uuid)
+ ?.responses.map((response) => {
+ if (response.status === ResponseStatus.FAILURE) {
+ return response;
+ }
+ })
+ .filter((response) => response !== undefined),
+ }),
};
}
private messageErrorHandler(messageEvent: MessageEvent): void {
logger.error(
`${this.uiService.logPrefix(moduleName, 'messageErrorHandler')} Error at handling message:`,
- { messageEvent }
+ messageEvent
);
}
}