UNPKG

tencentcloud-edgeone-migration-nodejs-v2

Version:

tencentcloud cdn config copy to edgeone

103 lines (102 loc) 3.73 kB
import { GlobalOptions } from "../global"; import { LoggerOptions } from "../logging"; import { PluginList, PluginType, RegisterOptions, RegistrationInstance } from "../plugins"; import { SkeletonClass } from "../skeleton"; import { RequireKeys } from "../utils"; declare const kProvider: unique symbol; declare const kServiceToken: unique symbol; declare class RegisterResponse { readonly id: string; private readonly [kProvider]; private readonly [kServiceToken]; constructor(id: string, token: string, provider: Provider); /** * 服务注销 * @returns 是否注销成功 */ unregister(): Promise<boolean>; /** * 服务心跳上报 * @returns 是否上报成功 */ heartbeat(): Promise<boolean>; } export declare type ProviderOptions = GlobalOptions & LoggerOptions; declare type ProviderPluginList = Pick<PluginList, PluginType.NamingService | PluginType.TraceLogging | PluginType.StatReporter>; export declare type OptionalProviderPluginList = RequireKeys<Partial<ProviderPluginList>, PluginType.NamingService>; declare const kCurrentInstances: unique symbol; declare const KMaxInstances: unique symbol; export declare class Provider extends SkeletonClass<ProviderPluginList> { /** * note: * 由于类包含专用标识符时,`super` 调用必须是构造函数中的第一个语句。 * 所以这里采用 `Symbol` 来实现 __私有静态属性__ */ private static [kCurrentInstances]; private static [KMaxInstances]; /** * 当前可实例化的最大次数 */ static get maxInstances(): number; /** * 设置可实例化的最大次数 * @param n 最大次数 */ static setMaxInstances(n: number): void; /** * Create Provider * @param plugins 插件 * @param options 配置参数(可选) */ constructor(plugins: OptionalProviderPluginList, options?: Partial<ProviderOptions>); /** * 销毁(释放)所占资源 * @param sync 是否同步释放(可选) */ dispose(sync?: boolean): void; /** * 服务注册 * @param namespace 命名空间 * @param service 服务名 * @param token 服务 Token 用来鉴权 * @param instance 待注册的实例 * @param options 注册选项 * @returns 可操作的实例对象(包含注册的实例 `id`) */ register(namespace: string, service: string, token: string, instance: RegistrationInstance, options?: RegisterOptions): Promise<RegisterResponse>; /** * 服务注销 * @param id 实例 ID * @param token 服务 Token 用来鉴权 * @returns 是否注销成功 */ unregister(id: string, token: string): Promise<boolean>; /** * 服务注销 * @param namespace 命名空间 * @param service 服务名 * @param host 节点 IP 或者域名 * @param port 节点端口号 * @param token 服务 Token 用来鉴权 * @returns 是否注销成功 */ unregister(namespace: string, service: string, host: string, port: number, token: string): Promise<boolean>; /** * 服务心跳上报 * @param id 实例唯一 ID * @param token 服务 Token 用来鉴权 * @returns 是否发送成功 */ heartbeat(id: string, token: string): Promise<boolean>; /** * 服务心跳上报 * @param namespace 命名空间 * @param service 服务名 * @param host 节点 IP 或者域名 * @param port 节点端口号 * @param token 服务 Token 用来鉴权 * @returns 是否发送成功 */ heartbeat(namespace: string, service: string, host: string, port: number, token: string): Promise<boolean>; } export {};