synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
71 lines • 3.92 kB
TypeScript
import { LockedColumn, UniqueFacetIdentifier } from '@/utils/types';
import { ColumnModel, ColumnTypeEnum, FacetColumnRequest, FacetColumnResult, JsonSubColumnModel, Query, QueryBundleRequest, QueryResultBundle, SelectColumn, Table } from '@sage-bionetworks/synapse-types';
/**
* Retrieve the index of a column using the column name
* @param name the column name
* @param result the QueryResultBundle containing the columns
* @returns The index of the column, or -1 if the column doesn't exist in the result
*/
export declare const getFieldIndex: (name?: string, result?: QueryResultBundle) => number;
/**
* Retrieve the index of a column using the header column name found inthe query results.
* Ignores case.
* @param name the column name
* @param result the QueryResultBundle containing the columns
* @returns The index of the column, or -1 if the column doesn't exist in the result
*/
export declare const getHeaderIndex: (name: string, result: QueryResultBundle | undefined) => number;
/**
* Returns the indices of the selectColumns with the specified type
* @param columnType
* @param selectColumns
*/
export declare function getTypeIndices(columnType: ColumnTypeEnum, selectColumns?: SelectColumn[]): number[];
export declare const hasFacetedSelectColumn: (facets?: FacetColumnResult[], selectColumns?: SelectColumn[]) => boolean;
export declare const isSingleNotSetValue: (facet: FacetColumnResult) => boolean;
export declare function removeLockedColumnFromFacetData(data?: QueryResultBundle, lockedColumn?: LockedColumn): QueryResultBundle | undefined;
/**
* Returns true iff the query has filters applied that can be reset.
* This includes facet filters and additional filters that are not applied to a locked column.
*/
export declare function hasResettableFilters(query: Query, lockedColumn?: LockedColumn): boolean;
/**
* Returns true iff a table query can be added to the download list.
* @param entity
* @param entityColumnId
*/
export declare function canTableQueryBeAddedToDownloadList<T extends Table = Table>(entity?: T, entityColumnId?: string): boolean;
/**
* Returns true if the queries necessarily return the same result set, i.e. if they have identical parameters other than
* limit, offset, sort.
*
* Note that this does not query the actual tables, so this only captures the semantic equivalence of the queries.
*/
export declare function queryRequestsHaveSameTotalResults(request1: Query, request2: Query): boolean;
/**
* Remove null/empty values from the query parameters where an undefined value is equivalent.
*
* This will ensure a query object is as simple as possible for URL search parameters and also increases the
* likelihood of a cache hit.
* @param q
*/
export declare function removeEmptyQueryParams(q: Query): Query;
/**
* Given a FacetColumnResult and a set of ColumnModels, return the ColumnModel that
* matches the FacetColumnResult.
* @param facet
* @param columnModels
*/
export declare function getCorrespondingColumnForFacet(facet: FacetColumnResult, columnModels: ColumnModel[]): ColumnModel | JsonSubColumnModel | undefined;
/**
* Given a set of FacetColumnRequests, return the FacetColumnRequest that matches the given UniqueFacetIdentifier.
* @param facetDefinition
* @param selectedFacets
*/
export declare function getCorrespondingSelectedFacet(facetDefinition: UniqueFacetIdentifier, selectedFacets?: FacetColumnRequest[]): FacetColumnRequest | undefined;
export declare function facetObjectMatchesDefinition(facetDefinition: UniqueFacetIdentifier | FacetColumnRequest | FacetColumnResult, facetObject: UniqueFacetIdentifier | FacetColumnRequest | FacetColumnResult): boolean;
export declare function partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest: QueryBundleRequest): {
rowDataRequest: QueryBundleRequest;
queryMetadataRequest: QueryBundleRequest;
};
//# sourceMappingURL=queryUtils.d.ts.map