decentralised message store
at main 734 B view raw
1import type { RawData } from "ws"; 2 3export const wsSyncHandler = ( 4 data: RawData, 5 handler: (jsonData: unknown) => void, 6) => { 7 const jsonText = rawDataToString(data); 8 const jsonData: unknown = JSON.parse(jsonText); 9 try { 10 handler(jsonData); 11 } catch (err: unknown) { 12 console.error( 13 `Something went wrong while executing the WebSocket handler ${handler.name}`, 14 ); 15 console.error(err); 16 } 17}; 18 19export const rawDataToString = (data: RawData): string => { 20 if (Buffer.isBuffer(data)) { 21 return data.toString("utf-8"); 22 } 23 if (Array.isArray(data)) { 24 return Buffer.concat(data).toString("utf-8"); 25 } 26 return new TextDecoder().decode(data); 27};