node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.89 kB
JavaScript
;var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var N=(e,s)=>{for(var t in s)a(e,t,{get:s[t],enumerable:!0})},v=(e,s,t,o)=>{if(s&&typeof s=="object"||typeof s=="function")for(let r of g(s))!I.call(e,r)&&r!==t&&a(e,r,{get:()=>s[r],enumerable:!(o=l(s,r))||o.enumerable});return e};var y=e=>v(a({},"__esModule",{value:!0}),e);var S={};N(S,{getHomeAssistant:()=>c,getServerId:()=>b,includesIssue:()=>h,isDynamicValue:()=>A,isHomeAssistantDataLoaded:()=>D,isHomeAssistantNode:()=>H,isIssuesEqual:()=>x,isNodeDisabled:()=>P,publishIssueUpdate:()=>B});module.exports=y(S);var m=require("lodash"),i=require("../../../const"),n=require("../../../globals"),f=require("../../../helpers/assert"),u=require("../../../helpers/utils"),d=require("../../../homeAssistant");function c(e){if(e.type===i.NodeType.Server)return d.homeAssistantConnections.get(e.id);if("server"in e&&(0,f.isString)(e.server)){const s=n.RED.nodes.getNode(e.server);return s?d.homeAssistantConnections.get(s.id):void 0}}function b(e){return e.type===i.NodeType.Server?e.id:e.server}function h(e,s){return e.some(t=>p(t,s))}function x(e,s){return e.length!==s.length?!1:e.every((t,o)=>p(t,s[o]))}function A(e){return(0,u.containsMustache)(e)||(0,u.isNodeRedEnvVar)(e)}function D(e){return c(e)?.websocket.isAllRegistriesLoaded}function H(e){return Object.values(i.NodeType).includes(e.type)}function p(e,s){return e.type===s.type&&e.identity===s.identity&&e.message===s.message}const B=(0,m.throttle)(e=>{n.RED.log.debug("[Home Assistant] Issues sent to client"),n.RED.comms.publish("homeassistant/issues",e,!0)},500);function P(e,s){return e.d===!0?!0:!!s}0&&(module.exports={getHomeAssistant,getServerId,includesIssue,isDynamicValue,isHomeAssistantDataLoaded,isHomeAssistantNode,isIssuesEqual,isNodeDisabled,publishIssueUpdate});