signoz/frontend/src/lib/query/transformQueryBuilderData.ts
Yevhen Shevchenko 8c2f33c95a
feat: Connect Query builder with graph (#2611)
* fix: having value data type

* feat: connect new builder to dashboard

* Fix/query builder filters (#2623)

* feat: rename query data type

* fix: remove reset of groupBy

* fix: filters search

* fix: calls autocomplete times

* fix: response mapper

* fix: removee unnecessary field

* fix: no check ts types for old query builder

* fix: disable check utils old builder
2023-05-02 19:38:03 +05:30

35 lines
1.0 KiB
TypeScript

import { OPERATORS } from 'constants/queryBuilder';
import { Having } from 'types/api/queryBuilder/queryBuilderData';
export const transformHavingToStringValue = (having: Having[]): string[] => {
const result: string[] = having.map((item) => {
const operator = Object.entries(OPERATORS).find(([key]) => key === item.op);
const value = Array.isArray(item.value) ? item.value.join(', ') : item.value;
return `${item.columnName} ${operator ? operator[1] : ''} ${value}`;
});
return result;
};
export const transformFromStringToHaving = (havingStr: string): Having => {
const [columnName, op, ...values] = havingStr.split(' ');
const operator = Object.entries(OPERATORS).find(([, value]) => value === op);
const currentValue = values.reduce<number[]>((acc, strNum) => {
const num = parseFloat(strNum);
if (Number.isNaN(num)) {
return acc;
}
return [...acc, num];
}, []);
return {
columnName,
op: operator ? operator[0] : '',
value: currentValue.length > 1 ? currentValue : currentValue[0],
};
};