Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 5x 5x 177x 177x 182x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x 29x | 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;
}
|