mframejs
Version:
simple framework
50 lines • 2.39 kB
JavaScript
import { traverseAST, valueConvert, getBehavior } from './ast/traverseAst';
import { tokenize } from './ast/tokenize';
import { generateAST } from './ast/generateAst';
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';
export class BindingEngine {
static tokenizeParseAndTraverseAST(expression, context) {
let ast;
if (Cache.expressionMap.has(expression)) {
const cacheX = Cache.expressionMap.get(expression);
ast = cacheX.ast;
}
else {
const tokens = tokenize(expression);
ast = generateAST(tokens);
}
return traverseAST(ast, context);
}
static printTokensAndAST(expression, context) {
const tokens = tokenize(expression);
const ast = generateAST(tokens);
const result = traverseAST(ast, context);
console.log('tokens:', tokens);
console.log('ast:', ast);
console.log('result:', result);
}
}
BindingEngine.tokenize = tokenize;
BindingEngine.traverseAST = traverseAST;
BindingEngine.generateAST = generateAST;
BindingEngine.valueConvert = valueConvert;
BindingEngine.getBehavior = getBehavior;
BindingEngine.createBindingExpression = createBindingExpression;
BindingEngine.setValue = setValue;
BindingEngine.subscribeClassProperty = subscribeClassProperty;
BindingEngine.unSubscribeClassProperty = unSubscribeClassProperty;
BindingEngine.evaluateExpression = evaluateExpression;
BindingEngine.subscribeClassArray = subscribeClassArray;
BindingEngine.unSubscribeClassArray = unSubscribeClassArray;
BindingEngine.unSubscribeClassMetaBinding = unSubscribeClassMetaBinding;
BindingEngine.subscribeClassMetaBinding = subscribeClassMetaBinding;
//# sourceMappingURL=bindingEngine.js.map