Narcoleptic Programmers' Medicine

    TypeScript icon, indicating that this package has built-in type declarations

    2.2.7 • Public • Published

    DynaProcessManager(config?: IDynaProcessManagerConfig)

    interface IDynaProcessManagerConfig {
      loggerSettings?: IDynaLoggerConfig;


    public addProcess(processSetup: IDynaProcessConfig): DynaProcess

    interface IDynaProcessConfig {
      name: string;               // The name if this process for console messages and stats
      cwd: string;                // Current working directory of the child process
      command: string;            // Full executable filename
      args?: string | string[];   // Arguments
      env?: any;                  // Environment key-value pairs
      guard?: IDynaProcessConfigGuard;
      forceTerminationSignal?: boolean;     // default: false, Force passing the termination signal to child process
      loggerSettings?: IDynaLoggerSettings;
      consolePrefixProcessName?: boolean;   // default: true
      onClose?: (exitCode: number, signal: string) => void;
    interface IDynaProcessConfigGuard {
      restartAfterMs: number;

    addProcess returns the insatnce of the DynaProcess where this has the id property (string). Use this id in the below methods.

    public removeProcess(id: string): Promise

    public getProcess(id: string): DynaProcess

    public get count(): number

    public stopAll(): Promise


    You don't instantiate this, this is the result of the addProcess.

    You get this from getProcess by its id.

    logger: DynaLogger

    get id(): string

    public active: boolean

    get info()

    Returns startAt, stoppedAt and stopCalled

    start(): Promise

    Returns true if started and false if it was already started.

    The process is started automatically on addProcess.

    You can use this if you to re-start it later.

    stop(signal?: string): void

    Pass object to new instances

    Classes needs at list an config/opt/settings object to start and work. Since this will start in new process, you can pass only string arguments.

    There two utils provided from the library that can help you to serialize/deserialize an object.

    encodeDataToString = (data: TData): string

    Converts an object to string.

    Pass this string as argument to the process and read it from the process.argv.

    Then decodeStringToData.

    decodeStringToData = (encoded: string): TData

    Converts a string to object.




    npm i dyna-process-manager

    DownloadsWeekly Downloads






    Unpacked Size

    122 kB

    Total Files


    Last publish


    • dennisat