UNPKG

@showbridge/lib

Version:

Main library for showbridge protocol router

30 lines (29 loc) 1.16 kB
import { set } from 'lodash-es'; import { Templating, logger } from '../utils/index.js'; import Transform from './transform.js'; class TemplateTransform extends Transform { _transform(msg, vars) { try { const resolvedParams = this.resolveTemplatedParams({ msg, vars }); let newValue = Templating.getTemplateResult(resolvedParams.template, { msg, vars }); // NOTE(jwetzell): try to convert it to a number if it is one if (!Number.isNaN(parseFloat(newValue))) { if (newValue.includes('.')) { set(msg, resolvedParams.property, parseFloat(newValue)); } else { set(msg, resolvedParams.property, parseInt(newValue)); } } else { set(msg, resolvedParams.property, newValue); } logger.trace(`transform: after ${this.type} = ${msg}`); } catch (error) { logger.error(`transform: problem executing template transform - ${error}`); logger.error(error); } } } export default TemplateTransform;