UNPKG

vulcain-corejs

Version:
72 lines (71 loc) 2.22 kB
import { Domain } from './../schemas/schema'; import { IContainer } from './../di/resolvers'; import { ServiceHandlerMetadata, CommonActionMetadata } from './common'; export interface HandlerItem { methodName: string; handler: any; metadata: CommonActionMetadata; kind: "action" | "query" | "event"; } export declare class PropertyDescription { name: string; required: boolean; description: string; type: string; reference: "no" | "many" | "one"; metadata: any; } export declare class SchemaDescription { name: string; properties: Array<PropertyDescription>; dependencies: Set<string>; } export declare class ActionDescription { schema: string; kind: "action" | "query" | "get"; description: string; action: string; scope: string; inputSchema: string; outputSchema: string; outputType?: string; verb: string; async: boolean; } export declare class ServiceDescription { domain: string; serviceName: string; serviceVersion: string; alternateAddress: string; services: Array<ActionDescription>; schemas: Array<SchemaDescription>; hasAsyncTasks: boolean; scopes: Array<{ name: string; description: string; }>; } export declare class ServiceDescriptors { private container; private domain; static nativeTypes: string[]; private descriptions; private handlers; private routes; private monoSchema; constructor(container: IContainer, domain: Domain); getDescriptions(): ServiceDescription; getHandlerInfo<T extends CommonActionMetadata>(container: IContainer, schema: string, action: string, optional?: boolean): { handler: any; metadata: T; method: string; verb: string; kind: "query" | "action" | "event"; }; createHandlersTable(): void; private checkScopes(scopes, metadata, verb); private getSchemaDescription(schemas, schemaName, defaultValue?); private getPropertyType(name); private sortSchemasDependencies(); register(container: IContainer, domain: Domain, target: Function, actions: any, handlerMetadata: ServiceHandlerMetadata, kind: "action" | "query"): void; }