UNPKG

lemon-core

Version:
72 lines (71 loc) 1.83 kB
import { GeneralItem, Incrementable } from 'lemon-model'; import 'dotenv/config'; export interface CosmosOption { databaseName: string; tableName: string; idName: string; sortName?: string; } /** * type `Updatable`: parameter for updateItem * - update field * - 'setIndex': array of [index, value] - replace elements in list field * - 'removeIndex': array of indices - remove elements from list field */ interface Updatable { [key: string]: GeneralItem['key'] | { setIndex: [number, string | number][]; } | { removeIndex: number[]; }; } /** * class: `CosmosService` * - basic CRUD service for AZURE CosmosDB. */ export declare class CosmosService<T extends GeneralItem> { protected options: CosmosOption; constructor(options: CosmosOption); hello: () => string; static instance(): Promise<{ client: any; }>; createTable(): Promise<void>; /** * save-item * - save whole data with param (use update if partial save) * * **WARN** overwrited if exists. * * @param id * @param item */ saveItem(_id: string, item: T): Promise<any>; /** * read-item * - read whole data of item. * * @param id * @param sort */ readItem(_id: string, sort?: string | number): Promise<any>; /** * delete-item * - destroy whole data of item. * * @param id * @param sort */ deleteItem(_id: string, sort?: string | number): Promise<any>; /** * update-item (or increment-item) * - update or create if not exists. * * @param id * @param sort * @param updates * @param increments */ updateItem(_id: string, sort: string | number, updates: Updatable, increments?: Incrementable): Promise<any>; } export {};