UNPKG

@cfworker/cosmos

Version:

Azure Cosmos DB client for Cloudflare Workers and service workers

145 lines (144 loc) 4.95 kB
import { FeedResponse, ItemResponse } from './response.js'; import { RetryPolicy } from './retry.js'; import { SessionContainer } from './session.js'; import { Collection, ConnectionInfo, ConsistencyLevel, Database, Document, IndexingDirective, IndexingPolicy, OfferType, PartitionKeyDefinition, Resource } from './types.js'; export type CosmosClientConfig = (ConnectionInfo & CosmosClientConfigBase) | ({ connectionString: string; } & CosmosClientConfigBase); interface CosmosClientConfigBase { retryPolicy?: RetryPolicy; consistencyLevel?: ConsistencyLevel; dbId?: string; collId?: string; sessions?: SessionContainer; enableCrossPartitionQueries?: boolean; fetch?: typeof fetch; } export declare class CosmosClient { private readonly endpoint; private readonly signer; private readonly retryPolicy; private readonly consistencyLevel; private readonly dbId; private readonly collId; private readonly enableCrossPartitionQueries; private readonly systemFetch; readonly sessions: SessionContainer; requestCharges: number; retries: { count: number; delayMs: number; }; constructor(config: CosmosClientConfig); getDatabases(args?: GetDatabasesArgs): Promise<FeedResponse<Database>>; getDatabase(args?: GetDatabaseArgs): Promise<ItemResponse<Database>>; getCollections(args?: GetCollectionsArgs): Promise<FeedResponse<Collection>>; getCollection(args?: GetCollectionArgs): Promise<ItemResponse<Collection>>; createCollection(args: CreateCollectionArgs): Promise<ItemResponse<Collection>>; replaceCollection(args: ReplaceCollectionArgs): Promise<ItemResponse<Collection>>; deleteCollection(args?: DeleteCollectionArgs): Promise<Response>; getDocuments<T extends Resource>(args: GetDocumentsArgs): Promise<FeedResponse<T & Document>>; getDocument<T extends Resource>(args: GetDocumentArgs): Promise<ItemResponse<T & Document>>; createDocument<T extends Resource>(args: CreateDocumentArgs): Promise<ItemResponse<T & Document>>; replaceDocument<T extends Resource>(args: ReplaceDocumentArgs): Promise<ItemResponse<T & Document>>; deleteDocument(args: DeleteDocumentArgs): Promise<Response>; queryDocuments<T>(args: QueryDocumentsArgs): Promise<FeedResponse<T>>; private getNext; private fetchWithRetry; private fetch; private setHeaders; } export type DocumentInit = BufferSource | ReadableStream | string | Resource; interface CommonArgs { activityId?: string; consistencyLevel?: ConsistencyLevel; } interface CommonGetArgs extends CommonArgs { ifNoneMatch?: string; ifModifiedSince?: Date; } interface CommonGetListArgs extends CommonGetArgs { maxItems?: number; continuation?: string; } export type GetDatabasesArgs = CommonGetListArgs; export interface GetDatabaseArgs extends CommonGetArgs { dbId?: string; } export interface GetCollectionsArgs extends CommonGetListArgs { dbId?: string; } export interface GetCollectionArgs extends CommonGetArgs { dbId?: string; collId?: string; } export interface CreateCollectionArgs extends CommonArgs { dbId?: string; collId?: string; indexingPolicy?: IndexingPolicy; partitionKey: PartitionKeyDefinition; offerThroughput?: number; offerType?: OfferType; } export interface ReplaceCollectionArgs extends CommonArgs { dbId?: string; collId?: string; indexingPolicy: IndexingPolicy; partitionKey: PartitionKeyDefinition; ifMatch?: string; } export interface DeleteCollectionArgs extends CommonArgs { dbId?: string; collId?: string; ifMatch?: string; } export interface GetDocumentsArgs extends CommonGetListArgs { dbId?: string; collId?: string; partitionKey?: string; } export interface GetDocumentArgs extends CommonGetArgs { dbId?: string; collId?: string; docId: string; partitionKey: string; } export interface QueryDocumentsArgs extends CommonGetListArgs { dbId?: string; collId?: string; query: string; parameters?: QueryParameter[]; partitionKey?: string; enableCrossPartition?: boolean; populateMetrics?: boolean; enableScan?: boolean; } export interface QueryParameter { name: string; value: string | number | boolean | null | undefined; } export interface CreateDocumentArgs extends CommonArgs { dbId?: string; collId?: string; document: DocumentInit; partitionKey: string; isUpsert?: boolean; indexingDirective?: IndexingDirective; } export interface ReplaceDocumentArgs extends CommonArgs { dbId?: string; collId?: string; docId: string; document: DocumentInit; partitionKey: string; ifMatch?: string; indexingDirective?: IndexingDirective; } export interface DeleteDocumentArgs extends CommonArgs { dbId?: string; collId?: string; docId: string; partitionKey: string; ifMatch?: string; } export {};