Logs: Improved flexibility of hasSupplementaryQuerySupport (#115348)

Pass the request for improved control
This commit is contained in:
Andreas Christou
2025-12-15 15:43:22 +00:00
committed by GitHub
parent 08a6f31733
commit ad793a5288
2 changed files with 5 additions and 4 deletions
+4 -3
View File
@@ -273,7 +273,7 @@ export interface DataSourceWithSupplementaryQueriesSupport<TQuery extends DataQu
/**
* Returns supplementary query types that data source supports.
*/
getSupportedSupplementaryQueryTypes(): SupplementaryQueryType[];
getSupportedSupplementaryQueryTypes(dsRequest?: DataQueryRequest<DataQuery>): SupplementaryQueryType[];
/**
* Returns a supplementary query to be used to fetch supplementary data based on the provided type and original query.
* If the provided query is not suitable for the provided supplementary query type, undefined should be returned.
@@ -283,7 +283,8 @@ export interface DataSourceWithSupplementaryQueriesSupport<TQuery extends DataQu
export const hasSupplementaryQuerySupport = <TQuery extends DataQuery>(
datasource: DataSourceApi | (DataSourceApi & DataSourceWithSupplementaryQueriesSupport<TQuery>),
type: SupplementaryQueryType
type: SupplementaryQueryType,
dsRequest?: DataQueryRequest<DataQuery>
): datasource is DataSourceApi & DataSourceWithSupplementaryQueriesSupport<TQuery> => {
if (!datasource) {
return false;
@@ -293,7 +294,7 @@ export const hasSupplementaryQuerySupport = <TQuery extends DataQuery>(
('getDataProvider' in datasource || 'getSupplementaryRequest' in datasource) &&
'getSupplementaryQuery' in datasource &&
'getSupportedSupplementaryQueryTypes' in datasource &&
datasource.getSupportedSupplementaryQueryTypes().includes(type)
datasource.getSupportedSupplementaryQueryTypes(dsRequest).includes(type)
);
};
@@ -129,7 +129,7 @@ export const getSupplementaryQueryProvider = (
dsRequest.requestId = `${dsRequest.requestId || ''}_${i}`;
dsRequest.targets = targets;
if (hasSupplementaryQuerySupport(datasource, type)) {
if (hasSupplementaryQuerySupport(datasource, type, dsRequest)) {
if (datasource.getDataProvider) {
return datasource.getDataProvider(type, dsRequest);
} else if (datasource.getSupplementaryRequest) {