Transformations: Fix filter by value error on interpolation (#89418)

* string check before interpolation

* refactor
This commit is contained in:
Victor Marin 2024-06-19 18:16:04 +03:00 committed by GitHub
parent fa3679d29b
commit 13e16a4142
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -56,8 +56,12 @@ export const filterByValueTransformer: DataTransformerInfo<FilterByValueTransfor
interpolatedFilters.push(
...filters.map((filter) => {
if (filter.config.id === ValueMatcherID.between) {
const interpolatedFrom = ctx.interpolate(filter.config.options.from);
const interpolatedTo = ctx.interpolate(filter.config.options.to);
if (typeof filter.config.options.from === 'string') {
filter.config.options.from = ctx.interpolate(filter.config.options.from);
}
if (typeof filter.config.options.to === 'string') {
filter.config.options.to = ctx.interpolate(filter.config.options.to);
}
const newFilter = {
...filter,
@ -65,8 +69,8 @@ export const filterByValueTransformer: DataTransformerInfo<FilterByValueTransfor
...filter.config,
options: {
...filter.config.options,
to: interpolatedTo,
from: interpolatedFrom,
to: filter.config.options.to,
from: filter.config.options.from,
},
},
};
@ -76,12 +80,14 @@ export const filterByValueTransformer: DataTransformerInfo<FilterByValueTransfor
// Due to colliding syntaxes, interpolating regex filters will cause issues.
return filter;
} else if (filter.config.options.value) {
const interpolatedValue = ctx.interpolate(filter.config.options.value);
if (typeof filter.config.options.value === 'string') {
filter.config.options.value = ctx.interpolate(filter.config.options.value);
}
const newFilter = {
...filter,
config: { ...filter.config, options: { ...filter.config.options, value: interpolatedValue } },
config: { ...filter.config, options: { ...filter.config.options, value: filter.config.options.value } },
};
newFilter.config.options.value! = interpolatedValue;
return newFilter;
}