mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
32 lines
647 B
TypeScript
32 lines
647 B
TypeScript
import { ContextKeyExpr, ContextKeyExpression } from './contextkey/contextkey';
|
|
|
|
export default class BooleanExpression {
|
|
|
|
private expression_:string;
|
|
private rules_:ContextKeyExpression = null;
|
|
|
|
constructor(expression:string) {
|
|
this.expression_ = expression;
|
|
}
|
|
|
|
private createContext(ctx: any) {
|
|
return {
|
|
getValue: (key: string) => {
|
|
return ctx[key];
|
|
},
|
|
};
|
|
}
|
|
|
|
private get rules():ContextKeyExpression {
|
|
if (!this.rules_) {
|
|
this.rules_ = ContextKeyExpr.deserialize(this.expression_);
|
|
}
|
|
return this.rules_;
|
|
}
|
|
|
|
public evaluate(context:any):boolean {
|
|
return this.rules.evaluate(this.createContext(context));
|
|
}
|
|
|
|
}
|