UNPKG

type-arango

Version:

ArangoDB Foxx decorators and utilities for TypeScript

53 lines (52 loc) 1.66 kB
/// <reference types="arangodb" /> import { Document, Route as RouteModel } from './index'; import { CreateCollectionOptions, DecoratorId, QueryOpt, Roles, SchemaStructure } from '../types'; export declare type RoleTypes = 'creators' | 'readers' | 'updaters' | 'deleters'; export interface CollectionRoles { creators: Roles; readers: Roles; updaters: Roles; deleters: Roles; } /** * Finds a collection for a decorated class */ export declare function findCollectionForContainer(someClass: any): Collection | undefined; /** * Returns the respective collection instance for a decorated class */ export declare function getCollectionForContainer(someClass: any): Collection; /** * Collections represent tables in ArangoDB */ export declare class Collection { Class: any; name: string; db: ArangoDB.Collection; completed: boolean; opt?: CreateCollectionOptions; schema: SchemaStructure; routes: RouteModel[]; roles: CollectionRoles; doc?: Document<any>; private decorator; /** * Returns a valid collection name */ static toName(input: string): string; /** * Creates a new collection instance */ constructor(Class: any); /** * Whether users can provide custom document keys on creation */ get allowUserKeys(): boolean; get route(): string; addRoles(key: RoleTypes, roles: Roles, onlyWhenEmpty?: boolean): void; decorate(decorator: DecoratorId, data: any): void; get routeAuths(): any[]; get routeRoles(): any[]; query(q: string | QueryOpt): any; finalize(): void; }