node-cosmos
Version:
A light weight azure cosmosdb client aiming at ease of use for creating REST API. Supports json filter, sort and offset/limit
100 lines • 3.21 kB
TypeScript
import { Condition } from "../../condition/Condition";
import { CosmosClient, Database } from "@azure/cosmos";
import { CosmosDatabase, CosmosDocument, CosmosId } from "../../CosmosDatabase";
import { CosmosContainer } from "../../CosmosContainer";
/**
* class represents a Cosmos Database
*/
export declare class CosmosDatabaseImpl implements CosmosDatabase {
private readonly client;
private readonly database;
private readonly collectionMap;
constructor(client: CosmosClient, database: Database);
/**
* Create a collection if not exists
* @param coll
*/
createCollection(coll: string): Promise<CosmosContainer>;
/**
* Delete a collection if exists
* @param coll
*/
deleteCollection(coll: string): Promise<void>;
/**
*
* @param coll
*/
getCollection(coll: string): Promise<CosmosContainer>;
/**
* Create an item.
* @param coll
* @param data
* @param partition
*/
create(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Read an item. Throw DocumentClientException(404 NotFound) if object not exist
*
* @param coll
* @param id
* @param partition
*/
read(coll: string, id: string, partition?: string): Promise<CosmosDocument>;
/**
* Read an item. return defaultValue if item not exist
*
* @param coll
* @param id
* @param partition
* @param defaultValue defaultValue if item not exist
*/
readOrDefault(coll: string, id: string, partition: string, defaultValue: CosmosDocument | null): Promise<CosmosDocument | null>;
/**
* Upsert an item. Insert will be performed if not exist. Do not support partial update.
* @param coll
* @param data
* @param partition
*/
upsert(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Update an item. Supports partial update. Error will be throw if not exist.
* @param coll
* @param data
* @param partition
*/
update(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Delete an item. Return {id} if exist. Otherwise return undefined.
*
* @param coll
* @param id
* @param partition
*/
delete(coll: string, id: string, partition?: string): Promise<CosmosId>;
/**
* find data by condition
*
* @param coll
* @param condition
* @param partition
*/
find(coll: string, condition: Condition, partition?: string): Promise<CosmosDocument[]>;
/**
* find data by SQL
* using SQL-like syntax
* https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/cosmosdb/cosmos/README.md#query-the-database
* @param coll
* @param query
* @param partition
*/
findBySQL(coll: string, query: string, partition?: string): Promise<CosmosDocument[]>;
/**
* count data by condition
*
* @param coll
* @param condition
* @param partition
*/
count(coll: string, condition: Condition, partition?: string): Promise<number>;
}
//# sourceMappingURL=CosmosDatabaseImpl.d.ts.map