From 0186d11fe8bde00a621776e4011092339d6c042f Mon Sep 17 00:00:00 2001 From: Maurizio Vitale Date: Wed, 13 May 2020 22:19:07 +0100 Subject: [PATCH] Ability to evaluate an object as payload (#5697) --- .../src/lib/services/extension.service.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/extensions/src/lib/services/extension.service.ts b/lib/extensions/src/lib/services/extension.service.ts index 38abe6108e..c097478366 100644 --- a/lib/extensions/src/lib/services/extension.service.ts +++ b/lib/extensions/src/lib/services/extension.service.ts @@ -198,7 +198,18 @@ export class ExtensionService { * @param context Parameter object for the expression with details of app state * @returns Result of evaluated expression, if found, or the literal value otherwise */ - runExpression(value: string, context?: any) { + runExpression(value: string | {} , context?: any) { + if (typeof value === 'string' ) { + return this.evaluateExpression(value, context); + } else { + Object.keys(value).forEach( (key) => { + value[key] = this.evaluateExpression(value[key], context); + }); + return value; + } + } + + private evaluateExpression(value: string, context?: any): string { const pattern = new RegExp(/\$\((.*\)?)\)/g); const matches = pattern.exec(value); @@ -209,7 +220,6 @@ export class ExtensionService { return result; } - return value; } }