@servant/servant-cli
Version:
Servant builder for node modules. Cli client fro servant.
169 lines (168 loc) • 4.83 kB
TypeScript
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;