UNPKG

node-red-contrib-home-assistant-websocket

Version:
2 lines (1 loc) 2.4 kB
"use strict";var m=Object.create;var s=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var y=(o,t)=>{for(var e in t)s(o,e,{get:t[e],enumerable:!0})},l=(o,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of I(t))!x.call(o,n)&&n!==e&&s(o,n,{get:()=>t[n],enumerable:!(i=C(t,n))||i.enumerable});return o};var u=(o,t,e)=>(e=o!=null?m(w(o)):{},l(t||!o||!o.__esModule?s(e,"default",{value:o,enumerable:!0}):e,o)),N=o=>l(s({},"__esModule",{value:!0}),o);var P={};y(P,{default:()=>f});module.exports=N(P);var h=u(require("../../common/controllers/InputOutputController")),a=u(require("../../common/errors/InputError")),g=u(require("../../common/errors/NoConnectionError")),c=require("../../common/integration/Integration"),p=require("../../const");class f extends h.default{#t;constructor(t){super(t),this.#t=this.integration?.getEntityConfigNode()}async#e({done:t,message:e,send:i}){const n=this.#t?.state?.getLastPayload()?.state;this.status.setSuccess(n),await this.setCustomOutputs(this.node.config.outputProperties,e,{config:this.node.config,value:n}),i(e),t()}async#o({done:t,message:e,parsedMessage:i,send:n}){if(!this.integration?.isConnected)throw new g.default;if(!this.integration?.isIntegrationLoaded)throw new a.default("home-assistant.error.integration_not_loaded","home-assistant.status.error");const r=await this.typedInputService.getValue(i.value.value,i.valueType.value,{message:e});if(this.#n(r)===!1)throw new a.default("home-assistant.error.pattern_not_matched","home-assistant.status.error");const d=this.#t?.state?.getLastPayload()?.state;await this.integration?.updateValue(r),this.#t?.emit(c.IntegrationEvent.ValueChange,r,d),await this.setCustomOutputs(this.node.config.outputProperties,e,{config:this.node.config,value:r,previousValue:d}),this.status.setSuccess(r),n(e),t()}async onInput({done:t,message:e,parsedMessage:i,send:n}){if(this.node.config.mode===p.ValueIntegrationMode.Get)await this.#e({done:t,message:e,parsedMessage:i,send:n});else if(this.node.config.mode===p.ValueIntegrationMode.Set)await this.#o({done:t,message:e,parsedMessage:i,send:n});else throw new a.default("ha-text.error.mode_not_supported","home-assistant.status.error")}#n(t){const e=this.integration?.getEntityHomeAssistantConfigValue("pattern");return e?new RegExp(e).test(t):!0}}