node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.34 kB
JavaScript
;var n=Object.create;var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var b=(t,a)=>{for(var e in a)i(t,e,{get:a[e],enumerable:!0})},h=(t,a,e,l)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of y(a))!N.call(t,o)&&o!==e&&i(t,o,{get:()=>a[o],enumerable:!(l=c(a,o))||l.enumerable});return t};var P=(t,a,e)=>(e=t!=null?n(D(t)):{},h(a||!t||!t.__esModule?i(e,"default",{value:t,enumerable:!0}):e,t)),m=t=>h(i({},"__esModule",{value:!0}),t);var u={};b(u,{default:()=>r});module.exports=m(u);var d=require("./events/Events"),s=P(require("./services/StorageService"));class r{#t=!0;#e;#a;constructor(a){this.#a=a,this.#t=s.default.getNodeData(a.id,"isEnabled")??!0,this.#e=s.default.getNodeData(a.id,"lastPayload"),a.on(d.NodeEvent.Close,this.#o.bind(this))}async#o(a,e){a&&await s.default.removeNodeData(this.#a.id).catch(e),e()}isEnabled(){return this.#t}async setEnabled(a){this.#t=a,await s.default.saveNodeData(this.#a.id,"isEnabled",a).catch(this.#a.error),this.#s()}async setLastPayload(a){this.#e=a,await s.default.saveNodeData(this.#a.id,"lastPayload",a).catch(this.#a.error),this.#s()}getLastPayload(){return this.#e}#s(){this.#a.emit(d.NodeEvent.StateChanged,{isEnabled:this.#t,lastPayload:this.#e})}}