monex
Version:
Execute one or multiple scripts, interactively or in daemon mode, and restart them whenever they crash or a watched file changes.
66 lines (65 loc) • 1.6 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import type { ChildProcessByStdio } from 'node:child_process';
import type { Readable } from 'node:stream';
type Callback = () => void;
type Color = 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan';
type Disposer = Callback;
type Event = 'restart';
type IController = {
restart: () => Promise<void>;
start: () => Promise<void>;
stat: () => Promise<Stat | Stat[]>;
stop: () => Promise<void>;
};
type OptionsConfig = OptionsSingle[];
type OptionsMultiple = {
name?: string[];
restart?: string;
watch?: string[];
cluster?: number[];
delay?: number;
ignore?: string[];
exec: string[];
};
type OptionsSingle = {
color?: Color;
name?: string;
prefix?: boolean;
stdin?: boolean;
watch?: string[];
cluster?: number;
delay?: number;
ignore?: string[];
exec: string;
};
type OptionsCluster = {
name?: string;
exec: string;
args?: string[];
delay?: number;
size?: number;
};
type Process = ChildProcessByStdio<null, Readable, Readable> & {
pids?: number[];
};
type Stat = {
pid: number;
name: string;
online: boolean;
cluster: number;
restarts: number;
birthtime: number;
uptime: number;
cpu: number;
memory: number;
stdout: string;
stderr: string;
};
type Usage = {
cpu: number;
memory: number;
birthtime: number;
uptime: number;
};
export type { Callback, Color, Disposer, Event, IController, OptionsConfig, OptionsMultiple, OptionsSingle, OptionsCluster, Process, Stat, Usage };