@servant/servant
Version:
Servant builder for node modules.
36 lines (35 loc) • 1.7 kB
TypeScript
/// <reference types="node" />
import { DiscoveryInstance } from "@servant/servant-discovery";
import { PackageJson, ServantJson } from "@servant/servant-data";
import * as events from "events";
import { DoneType } from "../module/index";
export { DiscoveryInstance };
export interface DiscoveryEmitter extends events.EventEmitter {
on(event: "error", listener: (error: Error) => void): this;
on(event: "ready" | "close" | "ended", listener: (instance: DiscoveryInstance) => void): this;
on(event: "servant-info", listener: (instance: DiscoveryInstance, modules: ServantInfoData) => void): this;
on(event: "servant-build", listener: (instance: DiscoveryInstance, modules: ServantBuildData) => void): this;
on(event: "servant-build-status", listener: (instance: DiscoveryInstance, modules: ServantBuildStatusData) => void): this;
emit(event: "error" | "ready" | "close" | "ended" | "servant-info" | "servant-build" | "servant-build-status", ...args: unknown[]): boolean;
build(instance: DiscoveryInstance, modules: Array<string>): BuildJob;
status(instance: DiscoveryInstance, status: ServantBuildStatusData): void;
}
export type BuildJob = {
jobId: string;
modules: Array<string>;
type: DoneType | null;
done: boolean;
};
export declare function createDiscovery(packageJson: PackageJson.PackageJsonInfo, serverJson: ServantJson.ServantJsonInfo): DiscoveryEmitter;
export type ServantInfoData = {
packageJson: string;
servantJson: string;
};
export type ServantBuildData = {
jobId: string;
modules: Array<string>;
};
export type ServantBuildStatusData = {
jobId: string;
type: DoneType;
};