UNPKG

node-red-contrib-home-assistant-websocket

Version:
55 lines (54 loc) 2.71 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _TransformState_haBooleans; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransformType = void 0; var TransformType; (function (TransformType) { TransformType["Boolean"] = "bool"; TransformType["Home_Assistant_Boolean"] = "habool"; TransformType["List"] = "list"; TransformType["Number"] = "num"; TransformType["Regexp"] = "re"; TransformType["String"] = "str"; })(TransformType || (exports.TransformType = TransformType = {})); class TransformState { constructor(haBooleans = 'y|yes|true|on|home|open') { _TransformState_haBooleans.set(this, void 0); __classPrivateFieldSet(this, _TransformState_haBooleans, haBooleans, "f"); } transform(datatype, value) { if (!datatype) return value; switch (datatype) { case TransformType.Number: return parseFloat(value); case TransformType.String: return value + ''; case TransformType.Boolean: return !!value; case TransformType.Home_Assistant_Boolean: { const regex = `^(${__classPrivateFieldGet(this, _TransformState_haBooleans, "f")})$`; return new RegExp(regex, 'i').test(value); } case TransformType.Regexp: return new RegExp(value); case TransformType.List: return value ? value.split(',').map((e) => e.trim()) : []; default: return value; } } } _TransformState_haBooleans = new WeakMap(); exports.default = TransformState;