node-universe
Version:
基于 Nodejs 环境的一款微服务框架,原理来自于宇宙中的恒星,行星,卫星等系统。
38 lines (37 loc) • 1.58 kB
TypeScript
import Registry from '../registry';
import Star from '../../../lib/star';
import { GenericObject } from '../../../typings';
import { LoggerInstance } from '../../../typings/logger';
import Endpoint from './item';
import BaseStrategy from '../../../lib/strategies/base';
import Node from '../node';
import EventEndpoint from './event';
import ActionEndpoint from './action';
import Context from '../../../lib/context';
import ServiceItem from '../service-item';
export default class EndpointList {
registry: Registry;
star: Star;
logger: LoggerInstance | null;
name: string;
group: string | null;
internal: boolean;
EndPointFactory: typeof Endpoint | typeof EventEndpoint | typeof ActionEndpoint;
endpoints: Endpoint[];
localEndpoints: Endpoint[];
strategy: any;
constructor(registry: Registry, star: Star, name: string, group: string | null, EndPointFactory: typeof Endpoint | typeof EventEndpoint | typeof ActionEndpoint, StrategyFactory: typeof BaseStrategy, strategyOptions?: GenericObject);
add(node: Node, service: ServiceItem, data: any): Endpoint;
setLocalEndpoints(): void;
getFirst(): Endpoint | null;
select(list: Endpoint[], ctx?: Context): Endpoint;
next(ctx: Context): Endpoint | null;
hasLocal(): boolean;
nextLocal(ctx?: Context): Endpoint | null;
hasAvailable(): boolean;
count(): number;
getEndpointByNodeID(nodeID: string): Endpoint | null;
hasNodeID(nodeID: string): boolean;
removeByService(service: ServiceItem): void;
removeByNodeID(nodeID: string): void;
}