UNPKG

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
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>[]>; }