mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-10-13 23:38:45 +01:00
Need to modify endpoint selection in CosmosClient to select endpoints based on client called.
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import { FeedOptions, ItemDefinition, QueryIterator, Resource } from "@azure/cosmos";
|
|
import { LocalStorageUtility, StorageKey } from "../../Shared/StorageUtility";
|
|
import { Queries } from "../Constants";
|
|
import { ClientOperationType, client } from "../CosmosClient";
|
|
|
|
export const queryDocuments = (
|
|
databaseId: string,
|
|
containerId: string,
|
|
query: string,
|
|
options: FeedOptions,
|
|
): QueryIterator<ItemDefinition & Resource> => {
|
|
options = getCommonQueryOptions(options);
|
|
return client(ClientOperationType.READ).database(databaseId).container(containerId).items.query(query, options);
|
|
};
|
|
|
|
export const getCommonQueryOptions = (options: FeedOptions): FeedOptions => {
|
|
const storedItemPerPageSetting: number = LocalStorageUtility.getEntryNumber(StorageKey.ActualItemPerPage);
|
|
options = options || {};
|
|
options.populateQueryMetrics = true;
|
|
options.enableScanInQuery = options.enableScanInQuery || true;
|
|
if (!options.partitionKey) {
|
|
options.forceQueryPlan = true;
|
|
}
|
|
options.maxItemCount =
|
|
options.maxItemCount ||
|
|
(storedItemPerPageSetting !== undefined && storedItemPerPageSetting) ||
|
|
Queries.itemsPerPage;
|
|
options.maxDegreeOfParallelism = LocalStorageUtility.getEntryNumber(StorageKey.MaxDegreeOfParellism);
|
|
return options;
|
|
};
|