rollun-ts-datastore-test
Version:
rollun-datastore written in TS
28 lines (27 loc) • 1.08 kB
TypeScript
import { Query } from 'rollun-ts-rql-test';
export interface ReadInterface<T = {}> {
readonly identifier: string;
read(id: string): Promise<T>;
has(id: string): Promise<boolean>;
query(query?: Query): Promise<Array<T>>;
count(): Promise<number>;
}
export interface DataStoreInterface<T = {}> extends ReadInterface<T> {
create(item: Partial<T>): Promise<T>;
rewrite(item: Partial<T>): Promise<T>;
update(item: Partial<T>): Promise<T>;
delete(id: string): Promise<T>;
}
export interface HttpRequestOptions {
timeout?: number;
headers?: {
[headerName: string]: string;
};
}
export interface HttpClientInterface<T = {}> {
get(uri?: string, options?: HttpRequestOptions): Promise<Response>;
post(uri?: string, body?: string | T, options?: HttpRequestOptions): Promise<Response>;
put(uri?: string, body?: string | T, options?: HttpRequestOptions): Promise<Response>;
delete(uri?: string, options?: HttpRequestOptions): Promise<Response>;
head(uri?: string, options?: HttpRequestOptions): Promise<Response>;
}