@libp2p/interface
Version:
The interface implemented by a libp2p node
45 lines • 1.6 kB
TypeScript
/**
* Implemented by components that have a life cycle
*/
export interface Startable {
/**
* If implemented, this method will be invoked before the start method.
*
* It should not assume any other components have been started.
*/
beforeStart?(): void | Promise<void>;
/**
* This method will be invoked to start the component.
*
* It should not assume that any other components have been started.
*/
start(): void | Promise<void>;
/**
* If implemented, this method will be invoked after the start method.
*
* All other components will have had their start method invoked before this method is called.
*/
afterStart?(): void | Promise<void>;
/**
* If implemented, this method will be invoked before the stop method.
*
* Any other components will still be running when this method is called.
*/
beforeStop?(): void | Promise<void>;
/**
* This method will be invoked to stop the component.
*
* It should not assume any other components are running when it is called.
*/
stop(): void | Promise<void>;
/**
* If implemented, this method will be invoked after the stop method.
*
* All other components will have had their stop method invoked before this method is called.
*/
afterStop?(): void | Promise<void>;
}
export declare function isStartable(obj: any): obj is Startable;
export declare function start(...objs: any[]): Promise<void>;
export declare function stop(...objs: any[]): Promise<void>;
//# sourceMappingURL=startable.d.ts.map