UNPKG

@getanthill/datastore

Version:

Event-Sourced Datastore

63 lines (62 loc) 2.88 kB
import type { JSONSchemaType } from 'ajv'; import type { Datastore } from '.'; import type { Any, AnyObject } from '../typings'; export interface MultiQuery { datastore: string; model: string; source: 'events' | 'entities'; query: object; headers?: any; raw?: any; correlationField?: string; } export interface Iteration { query_index: number; page: number; version: number; max_version: number; is_exhausted: boolean; cursor_last_id: string; cursor_last_correlation_id: string; results: AnyObject[]; } export declare const ERRORS: { INCOMPATIBLE_MULTIPLE_HANDLE_OPTIONS: string; INCOMPATIBLE_MUTATION_ON_EVENTS: string; }; export declare function objToJsonSchema(obj: Any): JSONSchemaType<Any>; export declare function defaultWalkMultiSortHandler(a: any, b: any): any; export declare function sortResults(results: AnyObject[], sortHandler?: (a: any, b: any) => any): AnyObject[]; export declare function getMinVersions(datastores: Map<string, Datastore>, queries: MultiQuery[]): Promise<number[]>; export declare function getMaxVersions(datastores: Map<string, Datastore>, queries: MultiQuery[]): Promise<number[]>; export declare function fetchResultsForQuery(datastores: Map<string, Datastore>, query: MultiQuery, pageSize: number, queryIteration: Iteration, opts?: { version_ordered?: boolean; }): Promise<AnyObject[]>; export declare function handleResults(results: Array<AnyObject>, queries: MultiQuery[], iteration: Map<number, Iteration>, handler: (res: any, query: MultiQuery, queryIteration: Iteration, batch_id: number, index: number) => any, opts?: { handle_in_order?: boolean; handle_in_parallel?: boolean; }): Promise<void>; export declare function handleIterationWithMutation(datastores: Map<string, Datastore>, iteration: Map<number, Iteration>, clonedIteration: Map<number, Iteration>, queries: MultiQuery[], pageSize: number, opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; }): Promise<void>; export declare function getLastMatchingCorrelationIdIndex(before: Array<string>, after: Array<string>): number; export declare function checkOptions(queries: MultiQuery[], opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; is_mutating?: boolean; }): void; export declare function walkMulti(datastores: Map<string, Datastore>, queries: MultiQuery[], pageSize: number | undefined, handler: (res: any, query: MultiQuery, queryIteration: Iteration) => any, opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; is_mutating?: boolean; }, sortHandler?: (a: any, b: any) => any): Promise<void>;