UNPKG

@servant/servant

Version:

Servant builder for node modules.

36 lines (35 loc) 1.7 kB
/// <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; };