UNPKG

zeroant-factory

Version:
65 lines (64 loc) 3.12 kB
/// <reference types="node" resolution-mode="require"/> /// <reference types="node" resolution-mode="require"/> import { type Server } from 'http'; import { ZeroantEvent } from 'zeroant-constant'; import { type ServerFactoryConstructor, type ServerFactory } from './server.factory.js'; import { type ConfigFactory } from './config.factory.js'; import { type Plugin } from './plugin.factory.js'; import { type WorkerFactoryConstructor, type WorkerFactory } from './worker.factory.js'; import { type AddonPlugin, type AddonPluginConstructor } from './addon.plugin.js'; import { type Logger } from 'winston'; import type RegistryFactory from 'registry.factory.js'; export declare class ZeroantContext<Config extends ConfigFactory> { #private; private readonly Config; static PORT: number; static HOSTNAME: string; protected _server: Server; protected _port: number; protected _hostname: string; _servers: ServerFactory[]; constructor(Config: new (config: any) => Config); delay: (ms: number) => Promise<unknown>; initWorkers(workers: Array<WorkerFactoryConstructor<WorkerFactory<any, any>>>): void; getWorkerByName<T extends WorkerFactory<any, any>>(workerName: string): T | undefined; getWorkerNames(): IterableIterator<string>; get workers(): { get: <T extends WorkerFactory<any, any>>(Worker: WorkerFactoryConstructor<T>) => T; }; getWorkers(): Array<WorkerFactory<any, any>>; getWorker<T extends WorkerFactory<any, any>>(Worker: WorkerFactoryConstructor<T>): T; listen(callback?: () => void): void; onStart(): void; beforeStart(): void; has(key: string): boolean; safeExit(code?: number, signal?: NodeJS.Signals | 'exit' | 'beforeExit' | 'uncaughtException', ts?: number): Promise<void>; close(ts?: number): Promise<void>; bootstrap(registry: RegistryFactory): void; get hasRegistry(): boolean; get registry(): RegistryFactory; ready(): void; initServer(Server: ServerFactoryConstructor<ServerFactory>, registry: RegistryFactory): void; getServer<T extends ServerFactory>(Server: ServerFactoryConstructor<T>): T; initPlugin(plugin: Plugin): Promise<void>; getPlugins(): Plugin; initConfig(config: Config): Promise<void>; initLogger(logger: Logger): Promise<void>; get<T>(name: string): T; set<T>(name: string, value: T): this; getLogger<T extends Logger>(): T; getConfig(): Config; getPlugin<T extends AddonPlugin>(addon: AddonPluginConstructor<T>): T; get log(): Logger; get server(): Server; get state(): string; get plugin(): Plugin; get config(): Config; on(eventName: ZeroantEvent, listener: (...args: any[]) => void): this; once(eventName: ZeroantEvent, listener: (...args: any[]) => void): this; off(eventName: ZeroantEvent, listener: (...args: any[]) => void): this; removeListener(eventName: ZeroantEvent, listener: (...args: any[]) => void): this; removeAllListeners(eventName: ZeroantEvent): this; rawListeners(eventName: ZeroantEvent): this; emit(eventName: ZeroantEvent, ...args: any[]): boolean; }