UNPKG

vulcain-corejs

Version:
84 lines (83 loc) 2.48 kB
export interface ServiceDependencyInfo { service: string; version: string; discoveryAddress?: string; } export interface ConfigurationInfo { key: string; schema: string; } export interface DatabaseDependencyInfo { address: string; schema: string; } export interface ExternalDependencyInfo { uri: string; } /** * List all service dependencies * * @export * @class VulcainManifest */ export declare class VulcainManifest { serviceName: string; serviceVersion: string; dependencies: { services: Array<ServiceDependencyInfo>; externals: Array<ExternalDependencyInfo>; databases: Array<DatabaseDependencyInfo>; packages: { name: string; version: string; }[]; }; configurations: { [name: string]: string; }; domain: string; constructor(serviceName: string, serviceVersion: string); /** * Register an external dependency like an api call */ registerExternal(uri: string): void; /** * Database dependency */ registerProvider(address: string, schema: string): void; /** * Vulcain service dependency */ registerService(targetServiceName: string, targetServiceVersion: string): void; /** * Retrieve package dependencies */ private retrievePackage(); } /** * Declare a vulcain service dependencies for the current service * * @export * @param {string} service Name of the called service * @param {string} version Version of the called service * @param {string} discoveryAddress Discovery address of the called service (ex:http://..:30000/api/_servicedesctipyion) * @returns */ export declare function ServiceDependency(service: string, version: string, discoveryAddress: string): (target: Function) => void; /** * Declare an external http call dependencies for the current service * * @export * @param {string} uri External uri * @returns */ export declare function HttpDependency(uri: string): (target: Function) => void; /** * Declare a dynamic property configuration for the current service. * * @export * @param {string} propertyName Property name * @param {string} schema Property schema (can be a model or a native js type) * @returns */ export declare function ConfigurationProperty(propertyName: string, schema: string): (target: any, propertyKey: string) => void;