Narcoleptic Programmers' Medicine

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

    2.2.7 • Public • Published

    DynaProcessManager(config?: IDynaProcessManagerConfig)

    interface IDynaProcessManagerConfig {
      loggerSettings?: IDynaLoggerConfig;
    }
    

    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

    DynaProcess

    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.

    Keywords

    none

    Install

    npm i dyna-process-manager

    DownloadsWeekly Downloads

    123

    Version

    2.2.7

    License

    MIT

    Unpacked Size

    122 kB

    Total Files

    89

    Last publish

    Collaborators

    • dennisat