node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.32 kB
JavaScript
;var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(i,t)=>{for(var e in t)o(i,e,{get:t[e],enumerable:!0})},u=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of h(t))!c.call(i,r)&&r!==e&&o(i,r,{get:()=>t[r],enumerable:!(s=l(t,r))||s.enumerable});return i};var v=i=>u(o({},"__esModule",{value:!0}),i);var E={};p(E,{NodeEvent:()=>a,default:()=>d});module.exports=v(E);var n=require("../errors/inputErrorHandler"),a=(s=>(s.Close="close",s.Input="input",s.StateChanged="state_changed",s))(a||{});class d{#t=[];#e;constructor({node:t,emitter:e}){this.node=t,this.emitter=e,e.setMaxListeners(0),t.on("close",this.#s.bind(this))}#r(t){return async(...e)=>{try{await t(...e)}catch(s){const{error:r,statusMessage:m}=(0,n.getErrorData)(s);this.node.error(r),this.#e?.setFailed(m)}}}#s(t,e){this.removeListeners(),e()}addListener(t,e,s={once:!1}){const r=this.#r(e);this.#t.push([t,r]),s.once===!0?this.emitter.once(t,r):this.emitter.on(t,r)}addListeners(t,e){e.forEach(([s,r])=>{this.addListener(s,r.bind(t))})}removeListeners(){this.#t.forEach(([t,e])=>{this.emitter.removeListener(t,e)}),this.#t=[]}setStatus(t){this.#e=t}emit(t,...e){return this.emitter.emit(t,...e)}}0&&(module.exports={NodeEvent});