UNPKG

@forestadmin/forestadmin-client

Version:

This package contains the logic to use the ForestAdmin API inside an agent.

47 lines 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ContextVariablesInjector { static isTreeBranch(filter) { return 'aggregator' in filter; } static injectContextInValueCustom(value, replaceFunction) { if (typeof value !== 'string') { return value; } let valueWithContextVariablesInjected = value; const regex = /{{([^}]+)}}/g; let match = regex.exec(value); const encounteredVariables = []; while (match) { const contextVariableKey = match[1]; if (!encounteredVariables.includes(contextVariableKey)) { valueWithContextVariablesInjected = valueWithContextVariablesInjected.replace(new RegExp(`{{${contextVariableKey}}}`, 'g'), replaceFunction(contextVariableKey)); } encounteredVariables.push(contextVariableKey); match = regex.exec(value); } return valueWithContextVariablesInjected; } static injectContextInValue(value, contextVariables) { return this.injectContextInValueCustom(value, contextVariableKey => String(contextVariables.getValue(contextVariableKey))); } static injectContextInFilter(filter, contextVariables) { if (!filter) { return null; } if (ContextVariablesInjector.isTreeBranch(filter)) { return { ...filter, conditions: filter.conditions.map(condition => { return this.injectContextInFilter(condition, contextVariables); }), }; } return { ...filter, value: this.injectContextInValue(filter.value, contextVariables), }; } } exports.default = ContextVariablesInjector; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12YXJpYWJsZXMtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29udGV4dC12YXJpYWJsZXMtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxNQUFxQix3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFlO1FBQ3pDLE9BQU8sWUFBWSxJQUFJLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLDBCQUEwQixDQUN0QyxLQUFnQixFQUNoQixlQUF3RDtRQUV4RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxpQ0FBaUMsR0FBVyxLQUFLLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzdCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFaEMsT0FBTyxLQUFLLEVBQUU7WUFDWixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3RELGlDQUFpQyxHQUFHLGlDQUFpQyxDQUFDLE9BQU8sQ0FDM0UsSUFBSSxNQUFNLENBQUMsS0FBSyxrQkFBa0IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUM1QyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FDcEMsQ0FBQzthQUNIO1lBRUQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDOUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7UUFFRCxPQUFPLGlDQUF5RCxDQUFDO0lBQ25FLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQ2hDLEtBQWdCLEVBQ2hCLGdCQUFrQztRQUVsQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQ2pDLE1BQXNCLEVBQ3RCLGdCQUFrQztRQUVsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksd0JBQXdCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELE9BQU87Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDNUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQzthQUNILENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7U0FDakUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxFRCwyQ0FrRUMifQ==