UNPKG

zpt

Version:

Zenon Page Templates - JS (ZPT-JS)

49 lines (36 loc) 1.3 kB
/* JavascriptExpression class */ import { context } from '../../context.js'; import { expressionsUtils } from '../expressionsUtils.js'; import { StringExpression } from '../stringExpression.js'; export const JavascriptExpression = function( expressionToApply ) { var stringExpression = expressionToApply; var evaluate = function( scope ){ var evaluatedString = stringExpression.evaluate( scope ); return eval( evaluatedString ); }; var dependsOn = function( depsDataItem, scope ){ return expressionsUtils.buildDependsOnList( depsDataItem, scope, stringExpression ); }; var toString = function(){ return stringExpression; }; return { evaluate: evaluate, dependsOn: dependsOn, toString: toString }; }; JavascriptExpression.removePrefix = true; JavascriptExpression.getPrefix = function() { if ( JavascriptExpression.prefix === undefined ){ JavascriptExpression.prefix = context.getConf().javaScriptExpression; } return JavascriptExpression.prefix; }; JavascriptExpression.getId = JavascriptExpression.getPrefix; JavascriptExpression.build = function( string ) { return new JavascriptExpression( StringExpression.build( string ) ); };