gremlin-helper
Version:
A wrapper around the gremlin client to introduce model validation and other useful functionality to use within a web api.
35 lines (34 loc) • 1.52 kB
TypeScript
import { GremlinCreateClient } from 'gremlin';
import { IEdge } from './Edge';
import { QueryBuilder } from './QueryBuilder';
import { IVertex } from './Vertex';
export declare type Result<T> = {
id: string;
_label: string;
_type: string;
} & T;
export interface IClient {
addEAsync(edge: IEdge, from: string, to: string): Promise<void>;
addVAsync<T>(vertex: IVertex<T>, obj: T): Promise<Result<T>>;
updateVAsync<T>(vertex: IVertex<T>, id: string, obj: Partial<T>): Promise<Result<T>>;
deleteVAsync<T>(vertex: IVertex<T>, id: string): Promise<void>;
getVAsync<T>(vertex: IVertex<T>, id: string): Promise<Result<T>>;
executeAsync<T>(model: IVertex<T> | IEdge<T>, queryBuilder: QueryBuilder<T>): Promise<Result<T>[]>;
}
export interface IClientConfig {
endpoint: string;
port: number;
database: string;
collection: string;
primaryKey: string;
}
export declare class Client implements IClient {
private client;
constructor(createClient: GremlinCreateClient, config: IClientConfig);
addEAsync<T>(edge: IEdge<T>, from: string, to: string): Promise<Result<T>>;
addVAsync<T>(vertex: IVertex<T>, obj: T): Promise<Result<T>>;
updateVAsync<T>(vertex: IVertex<T>, id: string, obj: Partial<T>): Promise<Result<T>>;
deleteVAsync<T>(vertex: IVertex<T>, id: string): Promise<void>;
getVAsync<T>(vertex: IVertex<T>, id: string): Promise<Result<T>>;
executeAsync<T>(model: IVertex<T> | IEdge<T>, queryBuilder: QueryBuilder<T>): Promise<Result<T>[]>;
}