@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
19 lines (18 loc) • 895 B
TypeScript
import { Json, JsonValue } from './Json';
import { Id } from './Id';
import { PageList, PageOptions } from './PageList';
import { List } from './List';
import { Optional } from './Types';
export type FetchOptions = PageOptions;
export declare abstract class Gateway<Options = FetchOptions> {
all(options?: Options): Promise<PageList<Json>>;
byId(id: Id, options?: Options): Promise<Optional<Json>>;
by(_key: string, _value: JsonValue, _options?: Options): Promise<PageList<Json>>;
byIds(..._ids: Id[]): Promise<List<Json>>;
search(q: JsonValue, options?: Options): Promise<PageList<Json>>;
filter(options?: Options): Promise<PageList<Json>>;
exists(id: Id, options?: Options): Promise<boolean>;
add(item: Json, options?: Options): Promise<Json>;
update(item: Json, options?: Options): Promise<Json>;
remove(id: Id, options?: Options): Promise<boolean>;
}