UNPKG

@getanthill/datastore

Version:

Event-Sourced Datastore

61 lines (60 loc) 2.72 kB
import type { AxiosResponse, AxiosResponseHeaders, RawAxiosResponseHeaders } from 'axios'; import type { ModelConfig } from '../typings'; import type { DatastoreConfig } from './Datastore'; import type Datastore from './Datastore'; export type { AxiosResponse, DatastoreConfig }; export default class Model<T> { modelConfig: ModelConfig; datastore: Datastore; constructor(datastore: Datastore, modelConfig: ModelConfig); get name(): string; request(handler: Function, ...args: any[]): Promise<any>; heartbeat(): Promise<{ status: string; }>; createModel(): Promise<any>; updateModel(): Promise<any>; createModelIndexes(): Promise<any>; getSchema(): Promise<any>; encryptOne(payload: Partial<T>, fields?: string[]): Promise<T>; encryptMany(payloads: Partial<T>[], fields?: string[]): Promise<T[]>; decryptOne(payload: Partial<T>, fields?: string[]): Promise<T>; decryptMany(payloads: Partial<T>[], fields?: string[]): Promise<T[]>; createOne(payload: Partial<T>, headers?: object): Promise<T>; createMany(payloads: Partial<T>[]): Promise<T[]>; /** * @deprecated in favor of createOne + createMany */ create(payload: T | T[]): Promise<T | T[]>; updateOne(payload: Partial<T>, headers?: object): Promise<T>; updateMany(payloads: Partial<T>[]): Promise<T[]>; /** * @deprecated */ update(payload: object | object[]): Promise<T | T[]>; apply(eventType: string, payload: object, headers?: object, eventVersion?: string): Promise<T>; get(correlationId: string): Promise<T>; count(query: T & Record<string, unknown>): Promise<number>; find(query: Partial<T>, page?: number, pageSize?: number): Promise<T[]>; events(correlationId: string, page?: number, pageSize?: number): Promise<any[]>; version(correlationId: string, version: number): Promise<T>; at(correlationId: string, date: Date | string): Promise<T>; restore(correlationId: string, version: number): Promise<T>; snapshot(correlationId: string): Promise<T>; archive(correlationId: string, deep?: boolean): Promise<T>; unarchive(correlationId: string, deep?: boolean): Promise<T>; delete(correlationId: string, deep?: boolean): Promise<T>; updateOverwhelmingly<T>(query: object, handler: (entity: T) => Promise<T>, progress: (stats: { total: number; done: number; error: number; progress: number; restored: number; }, entity: T, headers: RawAxiosResponseHeaders | AxiosResponseHeaders) => void, pageSize?: number): Promise<{ total: number; done: number; error: number; progress: number; restored: number; }>; }