UNPKG

mframejs

Version:
83 lines (57 loc) 2.74 kB
import { traverseAST, valueConvert, getBehavior } from './ast/traverseAst'; import { tokenize } from './ast/tokenize'; import { generateAST } from './ast/generateAst'; import { ITokens, IBindingContext } from '../interface/exported'; import { createBindingExpression } from './createBindingExpression'; import { setValue } from './setValue'; import { subscribeClassProperty } from './property/subscribeClassProperty'; import { unSubscribeClassProperty } from './property/unSubscribeClassProperty'; import { evaluateExpression } from './evaluateExpression'; import { subscribeClassArray } from './array/subscribeClassArray'; import { unSubscribeClassArray } from './array/unSubscribeClassArray'; import { unSubscribeClassMetaBinding } from './unSubscribeClassMetaBinding'; import { subscribeClassMetaBinding } from './subscribeClassMetaBinding'; import { Cache } from '../utils/exported'; /** * Common class to export all internal functions so its easier to use * */ export class BindingEngine { /** * all in one * */ public static tokenizeParseAndTraverseAST(expression: string, context: IBindingContext) { let ast: any; if (Cache.expressionMap.has(expression)) { const cacheX = Cache.expressionMap.get(expression); ast = (<any>cacheX).ast; } else { const tokens: ITokens[] = tokenize(expression); ast = generateAST(tokens); } return traverseAST(ast, context); } public static printTokensAndAST(expression: string, context: IBindingContext) { const tokens: ITokens[] = tokenize(expression); const ast = generateAST(tokens); const result = traverseAST(ast, context); console.log('tokens:', tokens); console.log('ast:', ast); console.log('result:', result); } public static tokenize = tokenize; public static traverseAST = traverseAST; public static generateAST = generateAST; public static valueConvert = valueConvert; public static getBehavior = getBehavior; public static createBindingExpression = createBindingExpression; public static setValue = setValue; public static subscribeClassProperty = subscribeClassProperty; public static unSubscribeClassProperty = unSubscribeClassProperty; public static evaluateExpression = evaluateExpression; public static subscribeClassArray = subscribeClassArray; public static unSubscribeClassArray = unSubscribeClassArray; public static unSubscribeClassMetaBinding = unSubscribeClassMetaBinding; public static subscribeClassMetaBinding = subscribeClassMetaBinding; }