node-universe
Version:
基于 Nodejs 环境的一款微服务框架,原理来自于宇宙中的恒星,行星,卫星等系统。
46 lines (45 loc) • 2.52 kB
TypeScript
import { ServiceDependency, ServiceSchema, ServiceSettingSchema } from '../../typings/service';
import Star from '.';
import { GenericObject } from '../../typings';
import { LoggerInstance } from '../../typings/logger';
import { ServiceActions } from '../../typings/star/service';
import _ from 'lodash';
export default class Service<S = ServiceSettingSchema> {
star: Star;
fullName: string;
name: string;
version: string | number;
settings?: ServiceSettingSchema | GenericObject;
schema?: ServiceSchema<S>;
metadata: GenericObject;
logger: LoggerInstance | null;
actions: ServiceActions | null;
events: any;
originalSchema: ServiceSchema<S> | null;
dependencies: string | ServiceDependency | (string | ServiceDependency)[] | null;
_serviceSpecification: GenericObject;
constructor(star: Star, schema?: ServiceSchema<S>, schemaMods?: any);
static getVersionedFullName(name: string, version?: string | number): string;
private parseServiceSchema;
applyMixins(schema: ServiceSchema | Partial<ServiceSchema<ServiceSettingSchema>>): any;
_init(): void;
_start(): Promise<void | undefined>;
_stop(): Promise<void | undefined>;
_createMethod(methodDef: any, name: string): any;
_createAction(actionDef: any, name: string): GenericObject;
_createEvent(eventDef: any, name: string): GenericObject;
_getPublishSettings(settings?: GenericObject): _.Omit<GenericObject, any> | undefined;
mergeSchemas(mixinSchema: any, serviceSchema: any): any;
mergeSchemaSettings(src: GenericObject, target: GenericObject): any;
mergeSchemaMetadata(src: GenericObject, target: GenericObject): any;
mergeSchemaUniqArray(src: GenericObject, target: GenericObject): any[];
mergeSchemaDependencies(src: GenericObject, target: GenericObject): any[];
mergeSchemaHooks(src: GenericObject, target: GenericObject): GenericObject;
mergeSchemaActions(src: GenericObject, target: GenericObject): GenericObject;
mergeSchemaMethods(src: GenericObject, target: GenericObject): GenericObject;
mergeSchemaEvents(src: GenericObject, target: GenericObject): void;
mergeSchemaLifecycleHandlers(src: GenericObject, target: GenericObject): any[];
mergeSchemaUnkown(src: GenericObject, target: GenericObject): GenericObject;
waitForServices(serviceNames: string | string[], timeout: number, interval: number): Promise<unknown>;
emitLocalEventHandler(eventName: string, params?: any, options?: GenericObject): any;
}