type-arango
Version:
ArangoDB Foxx decorators and utilities for TypeScript
53 lines (52 loc) • 1.66 kB
TypeScript
/// <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;
}