UNPKG

@restorecommerce/chassis-srv

Version:
55 lines (54 loc) 3.23 kB
import { Logger } from 'winston'; import { TraversalResponse } from './provider/arango/interface'; import { Vertices, Collection, Options as TraversalOptions, Filters as GraphFilters } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/graph'; /** * Register a database provider. * * @param {string} name database provider identifier * @param {constructor} provider database provider constructor function */ export declare const register: (name: string, provider: any) => any; /** * Get a new database connection. * @param {Object} config Database configuration. * @param [Logger] logger * @return {Promise} New, active and ready database connection. */ export declare const get: (config: any, logger?: Logger, graphName?: string, edgeConfig?: any) => Promise<DatabaseProvider>; export interface DatabaseProvider { insert(collectionName: string, documents: any): Promise<Array<any>>; find(collectionName: string, filter?: any, options?: any): Promise<Array<any>>; findByID(collectionName: string, ids: string | string[], options?: any): Promise<Array<any>>; update(collectionName: string, documents: any): Promise<Array<any>>; upsert(collectionName: string, documents: any): Promise<Array<any>>; delete(collectionName: string, ids: string[]): Promise<Array<any>>; count(collectionName: string, filter?: any): Promise<number>; truncate(collectionName?: string): Promise<void>; registerCustomQuery?: (name: string, script: string, type?: string) => any; unregisterCustomQuery?: (name: string) => any; listCustomQueries?: () => Array<any>; deleteAnalyzer(analyzerName: string[]): Promise<any>; dropView(viewName: string[]): Promise<any>; } export interface GraphDatabaseProvider extends DatabaseProvider { createGraphDB(graphName: string, edgeDefinitions: any, options: object): any; createVertex(collectionName: string, data: any): any; getVertex(collectionName: string, documentHandle: string): any; removeVertex(collectionName: string, documentHandles: string | string[]): any; getVertexCollection(collectionName: string): any; listVertexCollections(excludeOrphans?: boolean): any; getAllVertexCollections(excludeOrphans?: boolean): any; addVertexCollection(collectionName: string): any; removeVertexCollection(collectionName: string, dropCollection?: boolean): any; getGraphDB(): any; createEdge(collectionName: string, data: object, fromId?: string, toId?: string): any; getEdge(collectionName: string, documentHandle: string): any; getAllEdgesForVertice(collectionName: string, documentHandle: string): any; getInEdges(collectionName: string, documentHandle: string): any; getOutEdges(collectionName: string, documentHandle: string): any; traversal(startVertex: Vertices, collectionName: Collection, opts: TraversalOptions, filters?: GraphFilters[]): Promise<TraversalResponse>; addEdgeDefinition(collectionName: string, fromVertice: object | [object], toVertice: object | [object]): any; removeEdgeDefinition(definitionName: string, dropCollection?: boolean): any; listGraphs(): any; removeEdge(collectionName: string, documentHandle: string): any; }