mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-28 15:48:12 +00:00
* fix: override the stagedQuery orderBy and send order by timestamp in traces view of traces explorer * chore: write test for sending order by timestamp in the traces view of traces explorer * refactor: refactor the query transformer to accept partial query object and override fields
29 lines
891 B
TypeScript
29 lines
891 B
TypeScript
import { cloneDeep } from 'lodash-es';
|
|
import { IBuilderQuery, Query } from 'types/api/queryBuilder/queryBuilderData';
|
|
|
|
/**
|
|
* Transforms a query by modifying specific fields in the builder queries
|
|
* @param query - The original query object
|
|
* @param fieldOverrides - Partial object containing fields to override in each builder query
|
|
* @returns A new query object with the modified fields
|
|
*/
|
|
export const transformBuilderQueryFields = (
|
|
query: Query,
|
|
fieldOverrides: Partial<IBuilderQuery>,
|
|
): Query => {
|
|
// Create a deep copy of the query
|
|
const transformedQuery: Query = cloneDeep(query);
|
|
|
|
// Update the specified fields for each query in the builder
|
|
if (transformedQuery.builder?.queryData) {
|
|
transformedQuery.builder.queryData = transformedQuery.builder.queryData.map(
|
|
(queryItem) => ({
|
|
...queryItem,
|
|
...fieldOverrides,
|
|
}),
|
|
);
|
|
}
|
|
|
|
return transformedQuery;
|
|
};
|