mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-22 09:56:57 +00:00
chore: type changes
This commit is contained in:
parent
36e7820edd
commit
6ca6f615b0
@ -7,6 +7,7 @@ import {
|
|||||||
initialClickHouseData,
|
initialClickHouseData,
|
||||||
initialFormulaBuilderFormValues,
|
initialFormulaBuilderFormValues,
|
||||||
initialQueriesMap,
|
initialQueriesMap,
|
||||||
|
initialQueryBuilderFormTraceOperatorValues,
|
||||||
initialQueryBuilderFormValuesMap,
|
initialQueryBuilderFormValuesMap,
|
||||||
initialQueryPromQLData,
|
initialQueryPromQLData,
|
||||||
initialQueryState,
|
initialQueryState,
|
||||||
@ -47,6 +48,7 @@ import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteRe
|
|||||||
import {
|
import {
|
||||||
IBuilderFormula,
|
IBuilderFormula,
|
||||||
IBuilderQuery,
|
IBuilderQuery,
|
||||||
|
IBuilderTraceOperator,
|
||||||
IClickHouseQuery,
|
IClickHouseQuery,
|
||||||
IPromQLQuery,
|
IPromQLQuery,
|
||||||
Query,
|
Query,
|
||||||
@ -74,14 +76,18 @@ export const QueryBuilderContext = createContext<QueryBuilderContextType>({
|
|||||||
panelType: PANEL_TYPES.TIME_SERIES,
|
panelType: PANEL_TYPES.TIME_SERIES,
|
||||||
isEnabledQuery: false,
|
isEnabledQuery: false,
|
||||||
handleSetQueryData: () => {},
|
handleSetQueryData: () => {},
|
||||||
|
handleSetTraceOperatorData: () => {},
|
||||||
handleSetFormulaData: () => {},
|
handleSetFormulaData: () => {},
|
||||||
handleSetQueryItemData: () => {},
|
handleSetQueryItemData: () => {},
|
||||||
handleSetConfig: () => {},
|
handleSetConfig: () => {},
|
||||||
removeQueryBuilderEntityByIndex: () => {},
|
removeQueryBuilderEntityByIndex: () => {},
|
||||||
|
removeAllQueryBuilderEntities: () => {},
|
||||||
removeQueryTypeItemByIndex: () => {},
|
removeQueryTypeItemByIndex: () => {},
|
||||||
addNewBuilderQuery: () => {},
|
addNewBuilderQuery: () => {},
|
||||||
cloneQuery: () => {},
|
cloneQuery: () => {},
|
||||||
addNewFormula: () => {},
|
addNewFormula: () => {},
|
||||||
|
addTraceOperator: () => {},
|
||||||
|
removeTraceOperator: () => {},
|
||||||
addNewQueryItem: () => {},
|
addNewQueryItem: () => {},
|
||||||
redirectWithQueryBuilderData: () => {},
|
redirectWithQueryBuilderData: () => {},
|
||||||
handleRunQuery: () => {},
|
handleRunQuery: () => {},
|
||||||
@ -166,6 +172,10 @@ export function QueryBuilderProvider({
|
|||||||
...initialFormulaBuilderFormValues,
|
...initialFormulaBuilderFormValues,
|
||||||
...item,
|
...item,
|
||||||
})),
|
})),
|
||||||
|
queryTraceOperator: query.builder.queryTraceOperator?.map((item) => ({
|
||||||
|
...initialQueryBuilderFormTraceOperatorValues,
|
||||||
|
...item,
|
||||||
|
})),
|
||||||
};
|
};
|
||||||
|
|
||||||
const setupedQueryData = builder.queryData.map((item) => {
|
const setupedQueryData = builder.queryData.map((item) => {
|
||||||
@ -367,8 +377,11 @@ export function QueryBuilderProvider({
|
|||||||
const removeQueryBuilderEntityByIndex = useCallback(
|
const removeQueryBuilderEntityByIndex = useCallback(
|
||||||
(type: keyof QueryBuilderData, index: number) => {
|
(type: keyof QueryBuilderData, index: number) => {
|
||||||
setCurrentQuery((prevState) => {
|
setCurrentQuery((prevState) => {
|
||||||
const currentArray: (IBuilderQuery | IBuilderFormula)[] =
|
const currentArray: (
|
||||||
prevState.builder[type];
|
| IBuilderQuery
|
||||||
|
| IBuilderFormula
|
||||||
|
| IBuilderTraceOperator
|
||||||
|
)[] = prevState.builder[type];
|
||||||
|
|
||||||
const filteredArray = currentArray.filter((_, i) => index !== i);
|
const filteredArray = currentArray.filter((_, i) => index !== i);
|
||||||
|
|
||||||
@ -382,8 +395,11 @@ export function QueryBuilderProvider({
|
|||||||
});
|
});
|
||||||
// eslint-disable-next-line sonarjs/no-identical-functions
|
// eslint-disable-next-line sonarjs/no-identical-functions
|
||||||
setSupersetQuery((prevState) => {
|
setSupersetQuery((prevState) => {
|
||||||
const currentArray: (IBuilderQuery | IBuilderFormula)[] =
|
const currentArray: (
|
||||||
prevState.builder[type];
|
| IBuilderQuery
|
||||||
|
| IBuilderFormula
|
||||||
|
| IBuilderTraceOperator
|
||||||
|
)[] = prevState.builder[type];
|
||||||
|
|
||||||
const filteredArray = currentArray.filter((_, i) => index !== i);
|
const filteredArray = currentArray.filter((_, i) => index !== i);
|
||||||
|
|
||||||
@ -399,6 +415,20 @@ export function QueryBuilderProvider({
|
|||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const removeAllQueryBuilderEntities = useCallback(
|
||||||
|
(type: keyof QueryBuilderData) => {
|
||||||
|
setCurrentQuery((prevState) => ({
|
||||||
|
...prevState,
|
||||||
|
builder: { ...prevState.builder, [type]: [] },
|
||||||
|
}));
|
||||||
|
setSupersetQuery((prevState) => ({
|
||||||
|
...prevState,
|
||||||
|
builder: { ...prevState.builder, [type]: [] },
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
[setCurrentQuery, setSupersetQuery],
|
||||||
|
);
|
||||||
|
|
||||||
const removeQueryTypeItemByIndex = useCallback(
|
const removeQueryTypeItemByIndex = useCallback(
|
||||||
(type: EQueryType.PROM | EQueryType.CLICKHOUSE, index: number) => {
|
(type: EQueryType.PROM | EQueryType.CLICKHOUSE, index: number) => {
|
||||||
setCurrentQuery((prevState) => {
|
setCurrentQuery((prevState) => {
|
||||||
@ -617,6 +647,72 @@ export function QueryBuilderProvider({
|
|||||||
});
|
});
|
||||||
}, [createNewBuilderFormula]);
|
}, [createNewBuilderFormula]);
|
||||||
|
|
||||||
|
const addTraceOperator = useCallback((expression: string = '') => {
|
||||||
|
const trimmed = (expression || '').trim();
|
||||||
|
|
||||||
|
setCurrentQuery((prevState) => {
|
||||||
|
const existing = prevState.builder.queryTraceOperator[0];
|
||||||
|
const updated: IBuilderTraceOperator = existing
|
||||||
|
? { ...existing, expression: trimmed }
|
||||||
|
: {
|
||||||
|
...initialQueryBuilderFormTraceOperatorValues,
|
||||||
|
queryName: 'T1',
|
||||||
|
expression: trimmed,
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
// enforce single trace operator and replace only expression
|
||||||
|
queryTraceOperator: [updated],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
// eslint-disable-next-line sonarjs/no-identical-functions
|
||||||
|
setSupersetQuery((prevState) => {
|
||||||
|
const existing = prevState.builder.queryTraceOperator[0];
|
||||||
|
const updated: IBuilderTraceOperator = existing
|
||||||
|
? { ...existing, expression: trimmed }
|
||||||
|
: {
|
||||||
|
...initialQueryBuilderFormTraceOperatorValues,
|
||||||
|
queryName: 'T1',
|
||||||
|
expression: trimmed,
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
// enforce single trace operator and replace only expression
|
||||||
|
queryTraceOperator: [updated],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const removeTraceOperator = useCallback(() => {
|
||||||
|
setCurrentQuery((prevState) => {
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
queryTraceOperator: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
// eslint-disable-next-line sonarjs/no-identical-functions
|
||||||
|
setSupersetQuery((prevState) => {
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
queryTraceOperator: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
const updateQueryBuilderData: <T>(
|
const updateQueryBuilderData: <T>(
|
||||||
arr: T[],
|
arr: T[],
|
||||||
index: number,
|
index: number,
|
||||||
@ -723,6 +819,44 @@ export function QueryBuilderProvider({
|
|||||||
},
|
},
|
||||||
[updateQueryBuilderData, updateSuperSetQueryBuilderData],
|
[updateQueryBuilderData, updateSuperSetQueryBuilderData],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleSetTraceOperatorData = useCallback(
|
||||||
|
(index: number, traceOperatorData: IBuilderTraceOperator): void => {
|
||||||
|
setCurrentQuery((prevState) => {
|
||||||
|
const updatedTraceOperatorBuilderData = updateQueryBuilderData(
|
||||||
|
prevState.builder.queryTraceOperator,
|
||||||
|
index,
|
||||||
|
traceOperatorData,
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
queryTraceOperator: updatedTraceOperatorBuilderData,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
// eslint-disable-next-line sonarjs/no-identical-functions
|
||||||
|
setSupersetQuery((prevState) => {
|
||||||
|
const updatedTraceOperatorBuilderData = updateQueryBuilderData(
|
||||||
|
prevState.builder.queryTraceOperator,
|
||||||
|
index,
|
||||||
|
traceOperatorData,
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
builder: {
|
||||||
|
...prevState.builder,
|
||||||
|
queryTraceOperator: updatedTraceOperatorBuilderData,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[updateQueryBuilderData],
|
||||||
|
);
|
||||||
|
|
||||||
const handleSetFormulaData = useCallback(
|
const handleSetFormulaData = useCallback(
|
||||||
(index: number, formulaData: IBuilderFormula): void => {
|
(index: number, formulaData: IBuilderFormula): void => {
|
||||||
setCurrentQuery((prevState) => {
|
setCurrentQuery((prevState) => {
|
||||||
@ -1009,14 +1143,18 @@ export function QueryBuilderProvider({
|
|||||||
panelType,
|
panelType,
|
||||||
isEnabledQuery,
|
isEnabledQuery,
|
||||||
handleSetQueryData,
|
handleSetQueryData,
|
||||||
|
handleSetTraceOperatorData,
|
||||||
handleSetFormulaData,
|
handleSetFormulaData,
|
||||||
handleSetQueryItemData,
|
handleSetQueryItemData,
|
||||||
handleSetConfig,
|
handleSetConfig,
|
||||||
removeQueryBuilderEntityByIndex,
|
removeQueryBuilderEntityByIndex,
|
||||||
removeQueryTypeItemByIndex,
|
removeQueryTypeItemByIndex,
|
||||||
|
removeAllQueryBuilderEntities,
|
||||||
cloneQuery,
|
cloneQuery,
|
||||||
addNewBuilderQuery,
|
addNewBuilderQuery,
|
||||||
addNewFormula,
|
addNewFormula,
|
||||||
|
addTraceOperator,
|
||||||
|
removeTraceOperator,
|
||||||
addNewQueryItem,
|
addNewQueryItem,
|
||||||
redirectWithQueryBuilderData,
|
redirectWithQueryBuilderData,
|
||||||
handleRunQuery,
|
handleRunQuery,
|
||||||
@ -1037,14 +1175,18 @@ export function QueryBuilderProvider({
|
|||||||
panelType,
|
panelType,
|
||||||
isEnabledQuery,
|
isEnabledQuery,
|
||||||
handleSetQueryData,
|
handleSetQueryData,
|
||||||
|
handleSetTraceOperatorData,
|
||||||
handleSetFormulaData,
|
handleSetFormulaData,
|
||||||
handleSetQueryItemData,
|
handleSetQueryItemData,
|
||||||
handleSetConfig,
|
handleSetConfig,
|
||||||
removeQueryBuilderEntityByIndex,
|
removeQueryBuilderEntityByIndex,
|
||||||
removeQueryTypeItemByIndex,
|
removeQueryTypeItemByIndex,
|
||||||
|
removeAllQueryBuilderEntities,
|
||||||
cloneQuery,
|
cloneQuery,
|
||||||
addNewBuilderQuery,
|
addNewBuilderQuery,
|
||||||
addNewFormula,
|
addNewFormula,
|
||||||
|
addTraceOperator,
|
||||||
|
removeTraceOperator,
|
||||||
addNewQueryItem,
|
addNewQueryItem,
|
||||||
redirectWithQueryBuilderData,
|
redirectWithQueryBuilderData,
|
||||||
handleRunQuery,
|
handleRunQuery,
|
||||||
|
|||||||
@ -29,6 +29,13 @@ export interface IBuilderFormula {
|
|||||||
orderBy?: OrderByPayload[];
|
orderBy?: OrderByPayload[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type IBuilderTraceOperator = Omit<
|
||||||
|
IBuilderQuery,
|
||||||
|
'dataSource' | 'filter' | 'filters' | 'disabled' | 'functions'
|
||||||
|
> & {
|
||||||
|
returnSpansFrom?: string;
|
||||||
|
};
|
||||||
|
|
||||||
export interface TagFilterItem {
|
export interface TagFilterItem {
|
||||||
id: string;
|
id: string;
|
||||||
key?: BaseAutocompleteData;
|
key?: BaseAutocompleteData;
|
||||||
@ -124,6 +131,7 @@ export type BuilderQueryDataResourse = Record<
|
|||||||
export type MapData =
|
export type MapData =
|
||||||
| IBuilderQuery
|
| IBuilderQuery
|
||||||
| IBuilderFormula
|
| IBuilderFormula
|
||||||
|
| IBuilderTraceOperator
|
||||||
| IClickHouseQuery
|
| IClickHouseQuery
|
||||||
| IPromQLQuery;
|
| IPromQLQuery;
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,7 @@ export type RequestType =
|
|||||||
|
|
||||||
export type QueryType =
|
export type QueryType =
|
||||||
| 'builder_query'
|
| 'builder_query'
|
||||||
|
| 'builder_trace_operator'
|
||||||
| 'builder_formula'
|
| 'builder_formula'
|
||||||
| 'builder_sub_query'
|
| 'builder_sub_query'
|
||||||
| 'builder_join'
|
| 'builder_join'
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteRe
|
|||||||
import {
|
import {
|
||||||
IBuilderFormula,
|
IBuilderFormula,
|
||||||
IBuilderQuery,
|
IBuilderQuery,
|
||||||
|
IBuilderTraceOperator,
|
||||||
} from 'types/api/queryBuilder/queryBuilderData';
|
} from 'types/api/queryBuilder/queryBuilderData';
|
||||||
import {
|
import {
|
||||||
BaseBuilderQuery,
|
BaseBuilderQuery,
|
||||||
@ -32,6 +33,14 @@ export type HandleChangeQueryData<T = IBuilderQuery> = <
|
|||||||
value: Value,
|
value: Value,
|
||||||
) => void;
|
) => void;
|
||||||
|
|
||||||
|
export type HandleChangeTraceOperatorData<T = IBuilderTraceOperator> = <
|
||||||
|
Key extends keyof T,
|
||||||
|
Value extends T[Key]
|
||||||
|
>(
|
||||||
|
key: Key,
|
||||||
|
value: Value,
|
||||||
|
) => void;
|
||||||
|
|
||||||
// Legacy version for backward compatibility
|
// Legacy version for backward compatibility
|
||||||
export type HandleChangeQueryDataLegacy = HandleChangeQueryData<IBuilderQuery>;
|
export type HandleChangeQueryDataLegacy = HandleChangeQueryData<IBuilderQuery>;
|
||||||
|
|
||||||
@ -66,3 +75,10 @@ export type UseQueryOperations = (
|
|||||||
handleQueryFunctionsUpdates: (functions: QueryFunction[]) => void;
|
handleQueryFunctionsUpdates: (functions: QueryFunction[]) => void;
|
||||||
listOfAdditionalFormulaFilters: string[];
|
listOfAdditionalFormulaFilters: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type UseTraceOperatorOperations = (params: {
|
||||||
|
index?: number;
|
||||||
|
query?: IBuilderTraceOperator;
|
||||||
|
}) => {
|
||||||
|
handleChangeTraceOperatorData: HandleChangeTraceOperatorData;
|
||||||
|
};
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import { Dispatch, SetStateAction } from 'react';
|
|||||||
import {
|
import {
|
||||||
IBuilderFormula,
|
IBuilderFormula,
|
||||||
IBuilderQuery,
|
IBuilderQuery,
|
||||||
|
IBuilderTraceOperator,
|
||||||
IClickHouseQuery,
|
IClickHouseQuery,
|
||||||
IPromQLQuery,
|
IPromQLQuery,
|
||||||
Query,
|
Query,
|
||||||
@ -222,6 +223,7 @@ export type ReduceOperators = 'last' | 'sum' | 'avg' | 'max' | 'min';
|
|||||||
export type QueryBuilderData = {
|
export type QueryBuilderData = {
|
||||||
queryData: IBuilderQuery[];
|
queryData: IBuilderQuery[];
|
||||||
queryFormulas: IBuilderFormula[];
|
queryFormulas: IBuilderFormula[];
|
||||||
|
queryTraceOperator: IBuilderTraceOperator[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type QueryBuilderContextType = {
|
export type QueryBuilderContextType = {
|
||||||
@ -235,6 +237,10 @@ export type QueryBuilderContextType = {
|
|||||||
panelType: PANEL_TYPES | null;
|
panelType: PANEL_TYPES | null;
|
||||||
isEnabledQuery: boolean;
|
isEnabledQuery: boolean;
|
||||||
handleSetQueryData: (index: number, queryData: IBuilderQuery) => void;
|
handleSetQueryData: (index: number, queryData: IBuilderQuery) => void;
|
||||||
|
handleSetTraceOperatorData: (
|
||||||
|
index: number,
|
||||||
|
traceOperatorData: IBuilderTraceOperator,
|
||||||
|
) => void;
|
||||||
handleSetFormulaData: (index: number, formulaData: IBuilderFormula) => void;
|
handleSetFormulaData: (index: number, formulaData: IBuilderFormula) => void;
|
||||||
handleSetQueryItemData: (
|
handleSetQueryItemData: (
|
||||||
index: number,
|
index: number,
|
||||||
@ -249,12 +255,15 @@ export type QueryBuilderContextType = {
|
|||||||
type: keyof QueryBuilderData,
|
type: keyof QueryBuilderData,
|
||||||
index: number,
|
index: number,
|
||||||
) => void;
|
) => void;
|
||||||
|
removeAllQueryBuilderEntities: (type: keyof QueryBuilderData) => void;
|
||||||
removeQueryTypeItemByIndex: (
|
removeQueryTypeItemByIndex: (
|
||||||
type: EQueryType.PROM | EQueryType.CLICKHOUSE,
|
type: EQueryType.PROM | EQueryType.CLICKHOUSE,
|
||||||
index: number,
|
index: number,
|
||||||
) => void;
|
) => void;
|
||||||
addNewBuilderQuery: () => void;
|
addNewBuilderQuery: () => void;
|
||||||
addNewFormula: () => void;
|
addNewFormula: () => void;
|
||||||
|
removeTraceOperator: () => void;
|
||||||
|
addTraceOperator: (expression?: string) => void;
|
||||||
cloneQuery: (type: string, query: IBuilderQuery) => void;
|
cloneQuery: (type: string, query: IBuilderQuery) => void;
|
||||||
addNewQueryItem: (type: EQueryType.PROM | EQueryType.CLICKHOUSE) => void;
|
addNewQueryItem: (type: EQueryType.PROM | EQueryType.CLICKHOUSE) => void;
|
||||||
redirectWithQueryBuilderData: (
|
redirectWithQueryBuilderData: (
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user