@forestadmin/forestadmin-client
Version:
This package contains the logic to use the ForestAdmin API inside an agent.
47 lines • 3.9 kB
JavaScript
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==
;