UNPKG

@lakshya004/cosmos-odm

Version:

Azure Cosmos DB ODM/ORM with a Mongoose-like query builder and schema validation using Zod.

60 lines 1.91 kB
import { Container, SqlParameter } from "@azure/cosmos"; import z, { ZodObject } from "zod"; import { QB } from "./QueryBuilder"; type FieldsFromSchema<T extends z.ZodObject<any>> = { [K in keyof z.infer<T>]: { name: string; }; }; type StandarOutput<T extends z.ZodObject<any>> = { resource?: z.infer<T> | null; resources?: z.infer<T>[] | []; count?: number | 0; deleted?: boolean | false; itemsUpdated?: number | 0; itemsFailed?: number | 0; error?: Error | Error[]; success?: boolean; querySpec?: { query: string; parameters?: SqlParameter[]; }; }; declare class Model<T extends ZodObject<any>> { private _schema; private _collection; fields: FieldsFromSchema<T>; constructor(schema: T, collection: Container); private defineModel; insert(doc: z.infer<T>): Promise<StandarOutput<T>>; insertMany(docs: z.infer<T>[]): Promise<StandarOutput<T>>; findById(id: string): Promise<StandarOutput<T>>; find({ filter, fields, limit, offset, orderBy, }: { filter?: QB; fields?: FieldsFromSchema<T>; limit?: number; offset?: number; orderBy?: string; }): Promise<StandarOutput<T>>; updateById({ doc, id, }: { doc: z.infer<T>; id: string; }): Promise<StandarOutput<T>>; update({ doc, filter, }: { doc: z.infer<T>; filter: QB; }): Promise<StandarOutput<T>>; count({ filter, field, }?: { filter?: QB; field?: { name: string; }; }): Promise<StandarOutput<T>>; deleteById(id: string, partitionKey?: string): Promise<StandarOutput<T>>; deleteByFilter({ filter }: { filter: QB; }): Promise<StandarOutput<T>>; findByQuery(query: string, parameters?: SqlParameter[]): Promise<StandarOutput<T>>; } export { Model }; //# sourceMappingURL=BaseModel.odm.d.ts.map