UNPKG

node-red-contrib-home-assistant-websocket

Version:
2 lines (1 loc) 1.48 kB
"use strict";var N=Object.create;var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var M=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},u=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of O(e))!v.call(t,r)&&r!==o&&i(t,r,{get:()=>e[r],enumerable:!(n=f(e,r))||n.enumerable});return t};var l=(t,e,o)=>(o=t!=null?N(S(t)):{},u(e||!t||!t.__esModule?i(o,"default",{value:t,enumerable:!0}):o,t)),C=t=>u(i({},"__esModule",{value:!0}),t);var x={};M(x,{default:()=>m});module.exports=C(x);var a=require("../errors/inputErrorHandler"),c=require("../events/Events"),I=l(require("../services/InputService")),h=l(require("./OutputController"));class m extends h.default{#e=new Map;constructor(e){super(e),this.inputService=e.inputService,this.integration=e.integration,e.node.on(c.NodeEvent.Input,this.#t.bind(this))}async#t(e,o,n){if(this.#e.size)for(const[,{schema:s,handler:g}]of this.#e){let p=!1;try{p=I.default.validateSchema(s,e)}catch{}if(p)try{if(await g(e,o)){n();return}}catch(d){(0,a.inputErrorHandler)(d,{done:n,status:this.status})}}const r=this.inputService.parse(e);try{this.inputService.validate(r),await this.onInput?.({parsedMessage:r,message:e,send:o,done:n})}catch(s){(0,a.inputErrorHandler)(s,{done:n,status:this.status})}}addOptionalInput(e,o,n){this.#e.set(e,{schema:o,handler:n})}removeOptionalInput(e){this.#e.delete(e)}}