From 1c822fb250f898f697bc58396acf93a243033734 Mon Sep 17 00:00:00 2001 From: Kyle Seifert Date: Fri, 16 Apr 2021 14:29:03 -0600 Subject: [PATCH] don't bring out the heavy json parse just to check a string --- src/flow-spec/IBlock.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/flow-spec/IBlock.ts b/src/flow-spec/IBlock.ts index d3702913..8bbacdea 100644 --- a/src/flow-spec/IBlock.ts +++ b/src/flow-spec/IBlock.ts @@ -190,7 +190,14 @@ export function createEvalContactFrom(contact: IContact): IContact { } export function evaluateToBool(expr: string, ctx: object): boolean { - return JSON.parse(evaluateToString(expr, ctx).toLowerCase()) + const result = evaluateToString(expr, ctx).toLowerCase().trim() + if (result === 'true') { + return true + } + if (result === 'false') { + return false + } + throw new ValidationException(`Expression "${expr} does not evaluate to bool: ${result}"`) } export function evaluateToString(expr: string, ctx: object): string {