node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 2.24 kB
JavaScript
;var I=Object.create;var s=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var D=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},S=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of B(t))!U.call(e,r)&&r!==o&&s(e,r,{get:()=>t[r],enumerable:!(i=R(t,r))||i.enumerable});return e};var n=(e,t,o)=>(o=e!=null?I(O(e)):{},S(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),L=e=>S(s({},"__esModule",{value:!0}),e);var j={};D(j,{default:()=>w});module.exports=L(j);var a=require("../../common/const"),u=require("../../common/controllers/helpers"),v=n(require("../../common/errors/ConfigError")),y=n(require("../../common/events/ClientEvents")),h=n(require("../../common/services/ComparatorService")),E=n(require("../../common/status/EventStatus")),p=require("../../common/status/Status"),C=n(require("../../common/TransformState")),N=require("../../globals"),x=require("../../helpers/migrate"),f=require("../../helpers/node"),T=require("../../homeAssistant"),b=require("./events"),P=n(require("./EventsStateController"));function w(e){if(N.RED.nodes.createNode(this,e),this.config=(0,x.migrate)(e),!this.config?.entities[a.IdSelectorType.Entity]?.length&&!this.config?.entities[a.IdSelectorType.Substring]?.length&&!this.config?.entities[a.IdSelectorType.Regex]?.length){const d=new v.default("server-state-changed.error.entity_required");throw this.status({fill:p.StatusColor.Red,shape:p.StatusShape.Ring,text:d.statusMessage}),d}const t=(0,f.getServerConfigNode)(this.config.server),o=(0,T.getHomeAssistant)(t),i=(0,f.getExposeAsConfigNode)(this.config.exposeAsEntityConfig),r=new y.default({node:this,emitter:o.eventBus}),g=new E.default({clientEvents:r,config:t.config,exposeAsEntityConfigNode:i,node:this});r.setStatus(g);const c=(0,u.createControllerDependencies)(this,o),m=new C.default(t.config.ha_boolean),A=new h.default({nodeRedContextService:c.nodeRedContextService,homeAssistant:o,jsonataService:c.jsonataService,transformState:m}),l=new P.default({comparatorService:A,node:this,status:g,transformState:m,...c});l.setExposeAsConfigNode(i),(0,b.startListeners)(r,l,o,this,g)}