X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2FWorkerBroadcastChannel.ts;h=37987437eee496f7684bc1e2049d55fc90a71084;hb=5a2a53cfa256a32aa342d4dee48492118065e84a;hp=2fa082dddfd844fb872068f91a03e7c957f60ccb;hpb=5e3cb7281de2b6fa8b61a453f964c2f213fefa80;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/WorkerBroadcastChannel.ts b/src/charging-station/WorkerBroadcastChannel.ts index 2fa082dd..37987437 100644 --- a/src/charging-station/WorkerBroadcastChannel.ts +++ b/src/charging-station/WorkerBroadcastChannel.ts @@ -1,12 +1,15 @@ import { BroadcastChannel } from 'worker_threads'; -import BaseError from '../exception/BaseError'; import type { JsonType } from '../types/JsonType'; import type { BroadcastChannelRequest, BroadcastChannelResponse, MessageEvent, } from '../types/WorkerBroadcastChannel'; +import logger from '../utils/Logger'; +import Utils from '../utils/Utils'; + +const moduleName = 'WorkerBroadcastChannel'; export default abstract class WorkerBroadcastChannel extends BroadcastChannel { protected constructor() { @@ -22,17 +25,36 @@ export default abstract class WorkerBroadcastChannel extends BroadcastChannel { } protected isRequest(message: JsonType[]): boolean { - return Array.isArray(message) && message.length === 3; + return Array.isArray(message) === true && message.length === 3; } protected isResponse(message: JsonType[]): boolean { - return Array.isArray(message) && message.length === 2; + return Array.isArray(message) === true && message.length === 2; } - protected validateMessageEvent(messageEvent: MessageEvent): MessageEvent { + protected validateMessageEvent(messageEvent: MessageEvent): MessageEvent | false { if (Array.isArray(messageEvent.data) === false) { - throw new BaseError('Worker broadcast channel protocol message event data is not an array'); + logger.error( + `${this.logPrefix( + moduleName, + 'validateMessageEvent' + )} Worker broadcast channel protocol message event data is not an array` + ); + return false; + } + if (Utils.validateUUID(messageEvent.data[0]) === false) { + logger.error( + `${this.logPrefix( + moduleName, + 'validateMessageEvent' + )} Worker broadcast channel protocol message event data UUID field is invalid` + ); + return false; } return messageEvent; } + + private logPrefix = (modName: string, methodName: string): string => { + return Utils.logPrefix(` Worker Broadcast Channel | ${modName}.${methodName}:`); + }; }