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
129 lines • 5.94 kB
TypeScript
import { ErrorResponse } from "@azure/cosmos";
import { Condition } from "./condition/Condition";
import { CosmosContainer } from "./CosmosContainer";
export interface CosmosDocument {
/** The id of the item. User settable property. Uniquely identifies the item along with the partition key */
id?: string;
/** Time to live in seconds for collections with TTL enabled */
ttl?: number;
[key: string]: any;
}
export type CosmosId = {
id: string;
} | undefined;
export declare class CosmosError implements ErrorResponse {
name: string;
message: string;
code: number;
constructor(errorResponse?: Partial<ErrorResponse>, code?: number, message?: string);
}
export declare const _partition = "_partition";
/**
* interface represents a Cosmos/Mongo Database
*/
export interface CosmosDatabase {
/**
* Create a collection if it doesn't exist.
*
* @param coll - The name of the collection to create.
* @returns A promise that resolves to the created or existing container.
*/
createCollection(coll: string): Promise<CosmosContainer>;
/**
* Delete a collection(If not exist, do nothing).
*
* @param coll - The name of the collection to delete.
* @returns A promise that resolves when the collection has been deleted.
*/
deleteCollection(coll: string): Promise<void>;
/**
* Retrieve a collection from the database, or create it if it doesn't exist.
*
* @param coll - The name of the collection to retrieve or create.
* @returns A promise that resolves to the container.
*/
getCollection(coll: string): Promise<CosmosContainer>;
/**
* Create a new item in the specified collection.
*
* @param coll - The name of the collection where the item will be created.
* @param data - The document data to be created.
* @param partition - Optional partition key. Defaults to collection name if not provided.
* @returns A promise that resolves to the created document.
*/
create(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Read an item from the specified collection. Throws an error if the item is not found.
*
* @param coll - The name of the collection.
* @param id - The ID of the item to read.
* @param partition - Optional partition key. Defaults to collection name if not provided.
* @returns A promise that resolves to the retrieved document.
*/
read(coll: string, id: string, partition?: string): Promise<CosmosDocument>;
/**
* Read an item from the specified collection. Returns a default value if the item is not found.
*
* @param coll - The name of the collection.
* @param id - The ID of the item to read.
* @param partition - The partition key.
* @param defaultValue - The default value to return if the item does not exist.
* @returns A promise that resolves to the document or the default value.
*/
readOrDefault(coll: string, id: string, partition: string, defaultValue: CosmosDocument | null): Promise<CosmosDocument | null>;
/**
* Upsert (update or insert) an item into the specified collection. If the item does not exist, it will be created.
*
* @param coll - The name of the collection.
* @param data - The document data to upsert.
* @param partition - Optional partition key. Defaults to collection name if not provided.
* @returns A promise that resolves to the upserted document.
*/
upsert(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Update an existing item in the specified collection. Throws an error if the item does not exist.
*
* @param coll - The name of the collection.
* @param data - The document data to update.
* @param partition - Optional partition key. Defaults to collection name if not provided.
* @returns A promise that resolves to the updated document.
*/
update(coll: string, data: CosmosDocument, partition?: string): Promise<CosmosDocument>;
/**
* Delete an item from the specified collection. Returns the item's ID if it exists, otherwise returns undefined.
*
* @param coll - The name of the collection.
* @param id - The ID of the item to delete.
* @param partition - Optional partition key. Defaults to collection name if not provided.
* @returns A promise that resolves to the ID of the deleted item or undefined if not found.
*/
delete(coll: string, id: string, partition?: string): Promise<CosmosId>;
/**
* Find items in the specified collection that match the provided condition.
*
* @param coll - The name of the collection.
* @param condition - The query condition to apply.
* @param partition - Optional partition key.
* @returns A promise that resolves to an array of matching documents.
*/
find(coll: string, condition: Condition, partition?: string): Promise<CosmosDocument[]>;
/**
* Find items in the specified collection using a SQL-like query.
*
* @param coll - The name of the collection.
* @param query - The SQL-like query string.
* @param partition - Optional partition key.
* @returns A promise that resolves to an array of matching documents.
*/
findBySQL(coll: string, query: string, partition?: string): Promise<CosmosDocument[]>;
/**
* Count the number of items in the specified collection that match the provided condition.
*
* @param coll - The name of the collection.
* @param condition - The query condition to apply.
* @param partition - Optional partition key.
* @returns A promise that resolves to the number of matching documents.
*/
count(coll: string, condition: Condition, partition?: string): Promise<number>;
}
//# sourceMappingURL=CosmosDatabase.d.ts.map