vulcain-corejs
Version:
Vulcain micro-service framework
72 lines (71 loc) • 2.22 kB
TypeScript
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;
}