@showbridge/lib
Version:
Main library for showbridge protocol router
30 lines (29 loc) • 1.16 kB
JavaScript
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;