@tomorrowevening/hermes
Version:
An extendable set of Web Tools controlled via a separate window for non-intereference with content.
2 lines (1 loc) • 774 B
JavaScript
"use strict";class a{name;debug;editor;broadcastChannel;onMessageHandler;constructor(e,s=!1,t=!1){this.name=e,this.debug=s,this.editor=t,s&&(this.broadcastChannel=new BroadcastChannel(e),this.onMessageHandler=this.messageHandler.bind(this),this.broadcastChannel.addEventListener("message",this.onMessageHandler))}dispose(){this.broadcastChannel?.removeEventListener("message",this.onMessageHandler),this.broadcastChannel?.close()}send(e){if(this.editor&&e.target==="app"||!this.editor&&e.target==="editor")try{this.broadcastChannel?.postMessage(e)}catch(t){console.log("Hermes - Error sending message:"),console.log(t),console.log(e)}}messageHandler(e){const s=e.data;s.target==="app"?this.handleApp(s):this.handleEditor(s)}handleApp(e){}handleEditor(e){}}module.exports=a;