UNPKG

node-red-contrib-home-assistant-websocket

Version:
2 lines (1 loc) 2.44 kB
"use strict";var l=Object.create;var i=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var C=(n,t)=>{for(var r in t)i(n,r,{get:t[r],enumerable:!0})},d=(n,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of N(t))!u.call(n,a)&&a!==r&&i(n,a,{get:()=>t[a],enumerable:!(s=k(t,a))||s.enumerable});return n};var S=(n,t,r)=>(r=n!=null?l(h(n)):{},d(t||!n||!n.__esModule?i(r,"default",{value:n,enumerable:!0}):r,n)),I=n=>d(i({},"__esModule",{value:!0}),n);var D={};C(D,{default:()=>b});module.exports=I(D);var y=require("lodash"),f=S(require("selectn")),e=require("../../const"),g=require("../../helpers/node"),m=require("../../helpers/utils");class b{#e;#t;#a;constructor({nodeConfig:t,context:r,jsonata:s}){this.#e=t,this.#t=r,this.#a=s}async getValue(t,r,s={}){let a;switch(r){case e.TypedInputTypes.Message:case e.TypedInputTypes.Flow:case e.TypedInputTypes.Global:a=this.#t.get(r,t,s.message);break;case e.TypedInputTypes.Boolean:a=t==="true";break;case e.TypedInputTypes.JSON:try{a=JSON.parse(t)}catch{}break;case e.TypedInputTypes.Date:a=Date.now();break;case e.TypedInputTypes.JSONata:if(t===""){a=void 0;break}a=await this.#a.evaluate(t,{data:s.data,entity:s.entity,entityId:s.entityId,eventData:s.eventData,message:s.message,prevEntity:s.prevEntity,results:s.results});break;case e.TypedInputTypes.Number:a=Number(t);break;case e.TypedInputTypes.None:a=void 0;break;case e.TypedInputTypes.Config:{a=(0,y.cloneDeep)(t.length?(0,f.default)(t,this.#e):this.#e);break}case e.TypedInputTypes.EntityState:switch(t){case e.EntityStateCastType.Number:a=Number(s.entity?.state);break;case e.EntityStateCastType.Boolean:a=(0,m.parseValueToBoolean)(s.entity?.state);break;case e.EntityStateCastType.HA_Boolean:{const o=this.#e.server,c=(0,g.getServerConfigNode)(o)?.config.ha_boolean;if(!c){a=!1;break}a=c.includes(s.entity?.state)}break;case e.EntityStateCastType.String:default:a=s.entity?.state;break}break;case e.TypedInputTypes.Data:case e.TypedInputTypes.DeviceId:case e.TypedInputTypes.Entity:case e.TypedInputTypes.EventData:case e.TypedInputTypes.Headers:case e.TypedInputTypes.Params:case e.TypedInputTypes.PrevEntity:case e.TypedInputTypes.PreviousValue:case e.TypedInputTypes.Results:case e.TypedInputTypes.TriggerId:case e.TypedInputTypes.Value:case e.TypedInputTypes.CalendarItem:a=s[r];break;default:a=t}return a}}