UNPKG

@servant/servant-cli

Version:

Servant builder for node modules. Cli client fro servant.

169 lines (168 loc) 4.83 kB
import * as React from "react"; import * as api from "@servant/servant"; import * as dev from "@servant/servant-development"; import { UnifyState } from "./unify"; import { InitState } from "./init"; import { GenerateState } from "./generate"; export type ServantProps = { init: boolean; generate: boolean | string; prune: boolean; noaudit: boolean; help: boolean; entry: string; debug: boolean; tag: string | undefined; gui: boolean; browsers: string; devices: string; production: boolean; dependencies: boolean; changed: boolean; freeze: boolean; only: Array<string>; commands: Array<api.Commands.Commands>; server: boolean; port: number; report: Array<string>; watch: boolean; commit: boolean; increment: string | undefined; fix: boolean; latest: boolean; link: boolean; unlink: boolean; m?: ServantModules; }; export type ServantState = { servant: { initData: api.InitData | null; error: Error | null; }; modules: { modulesData: api.ModulesData | null; error: Error | null; commands: { ["clean"]?: CommandInfo<"clean">; ["install"]?: CommandInfo<"install">; ["update"]?: CommandInfo<"update">; ["build"]?: CommandInfo<"build">; ["unify"]?: CommandInfo<"unify">; ["publish"]?: CommandInfo<"publish">; ["tests"]?: CommandInfo<"tests">; ["validate"]?: CommandInfo<"validate">; ["analyze"]?: CommandInfo<"analyze">; }; }; init: InitState; unify: UnifyState; generate: GenerateState; server: { port: number; error: Error | null; info: dev.ServantServerInfo | null; packageJson: api.PackageJson.PackageJsonInfo | null; changes: Array<{ changed: { modules: string[]; files: string[]; }; time: [number, number]; date: Date; errors?: Record<string, Array<Error>>; }>; clients: Record<string, { status: dev.ServantClientDevLog["status"]; error?: Error | null; }>; servers: Record<string, { status: dev.ServantServerDevLog["status"]; pid?: number; stdoutCount?: number; stderrCount?: number; error?: Error | null; }>; shared: Record<string, { status: dev.ServantSharedDevLog["status"]; error?: Error | null; }>; }; flags: ServantFlags; m: ServantModules; date: Date; started: [number, number]; loaded: [number, number] | null; commands: Array<api.Commands.Commands>; reports: { error: Error | null; list: Array<api.Reports.Reporter>; files: Array<string>; }; watcher: { error: Error | null; info: api.Watcher.WatcherInfo | null; change: api.Watcher.WatcherChange | null; }; }; export type ServantModules = { [key: string]: string; }; export type ServantFlags = { init: boolean; generate: boolean | string; help: boolean; tag: string | undefined; only: Array<string>; browsers: Array<string>; devices: Array<string>; debug: boolean; entry: string; production: boolean; prune: boolean; dependencies: boolean; noaudit: boolean; changed: boolean; freeze: boolean; server: boolean; gui: boolean; watch: boolean; commit: boolean; increment: string | undefined; fix: boolean; latest: boolean; link: boolean; unlink: boolean; }; export interface CommandInfo<C extends api.Commands.Commands> { command: C; modules: { [key: string]: api.Commands.CommandProgress[C]; }; time: string; running: boolean; done: boolean; data: api.Commands.CommandResults[C]["data"] | null; } export declare class Servant extends React.Component<ServantProps, ServantState> { private servant; private dev; constructor(p: ServantProps); render(): JSX.Element; componentDidMount(): void; private runInit; private runUnify; private runGenerate; private runServant; private loadModules; private fillCommands; private runCommand; private onProgress; private createCommands; private createCommand; private createReports; private runServer; private createServer; private onLog; private runWatcher; } export declare function areCommands(commands: Array<api.Commands.Commands>, flags: ServantFlags): boolean;