pandora
Version:
A powerful and lightweight application manager for Node.js applications powered by TypeScript.
63 lines (62 loc) • 1.65 kB
TypeScript
import { ServiceOptions, ServiceRepresentation } from '../domain';
import ServiceLogger from './ServiceLogger';
import { Service } from '../domain';
import { WorkerContextAccessor } from '../application/WorkerContextAccessor';
/**
* Class SimpleServiceCore
*/
export declare class ServiceCore {
protected ImplClass: any;
protected impl: Service;
protected options: ServiceOptions;
constructor(options: ServiceOptions, ImplClass: any);
_logger: ServiceLogger;
readonly logger: ServiceLogger;
readonly context: WorkerContextAccessor;
private _dependencies;
readonly dependencies: any;
readonly representation: ServiceRepresentation;
readonly serviceName: string;
readonly config: any;
/**
* Get Class of implementation
* @return {any}
*/
protected getImplClass(): any;
/**
* Instantiate service
* @return {Service}
*/
instantiate(): Service;
/**
* Start service
* @return {Promise<void>}
*/
start(): Promise<void>;
/**
* Stop service
* @return {Promise<void>}
*/
stop(): Promise<void>;
/**
* Publish this service to IPC HUB
* @return {Promise<void>}
*/
publish(): Promise<void>;
/**
* Get service's implementation object
* @return {Service}
*/
getService(): Service;
/**
* Get service's identify, equal service's name now
* @return {string}
*/
getServiceId(): string;
/**
* Get a dependency service's implementation object by service's ID (name)
* @param name
* @return {any}
*/
getDependency(name: any): any;
}