UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

40 lines (39 loc) 1.86 kB
import { View } from '../utils/View'; import { FetchOptions, Gateway } from '../types/Gateway'; import { Repository } from '../types/Repository'; import { Json, JsonValue } from '../types/Json'; import { PageList } from '../types/PageList'; import { Id, Key } from '../types/Id'; import { List } from '../types/List'; import { RouteGateway } from '../services/RouteGateway'; import { RouteOptions } from '../services/Api'; export declare class Typo<T, Options extends RouteOptions = RouteOptions> extends Repository<T, Options> { protected view: View<T>; private readonly gateway; constructor(view: View<T>, gateway: Gateway<Options>); create: (j: Json) => T; all(options?: Options): Promise<PageList<T>>; byId(id: Id): Promise<T>; byIds(...ids: Id[]): Promise<List<T>>; byKey(key: Key, options?: Options): Promise<PageList<T>>; by(key: keyof T, value: JsonValue, options?: Options): Promise<PageList<T>>; search(q: JsonValue, options?: Options): Promise<PageList<T>>; filter(options?: Options): Promise<PageList<T>>; exists(id: Id): Promise<boolean>; } export declare class Agent<T, Options extends FetchOptions = FetchOptions> extends Repository<T, Options> { private gateway; constructor(gateway: RouteGateway); all(options?: Options): Promise<PageList<T>>; byId(id: Id): Promise<T>; byIds(...ids: Id[]): Promise<List<T>>; byKey(key: Key, options?: Options): Promise<PageList<T>>; by(key: keyof T, value: JsonValue, options?: Options): Promise<PageList<T>>; search(q: JsonValue, options?: Options): Promise<PageList<T>>; filter(options?: Options): Promise<PageList<T>>; exists(id: Id): Promise<boolean>; add(t: Partial<T>): Promise<T>; update(id: Id, t: Partial<T>): Promise<T>; upsert(id: Id, t: Partial<T>): Promise<T>; remove(id: Id): Promise<boolean>; }