{"id":20046400,"url":"https://github.com/aneldev/dyna-process-manager","last_synced_at":"2025-07-09T01:33:51.044Z","repository":{"id":25555318,"uuid":"151227781","full_name":"aneldev/dyna-process-manager","owner":"aneldev","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-10T16:47:53.000Z","size":3997,"stargazers_count":1,"open_issues_count":25,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-06T04:16:26.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aneldev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-02T09:03:29.000Z","updated_at":"2022-09-30T07:25:07.000Z","dependencies_parsed_at":"2022-07-26T09:48:08.112Z","dependency_job_id":null,"html_url":"https://github.com/aneldev/dyna-process-manager","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/aneldev/dyna-process-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneldev%2Fdyna-process-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneldev%2Fdyna-process-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneldev%2Fdyna-process-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneldev%2Fdyna-process-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aneldev","download_url":"https://codeload.github.com/aneldev/dyna-process-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneldev%2Fdyna-process-manager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264300445,"owners_count":23587519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T11:23:34.861Z","updated_at":"2025-07-09T01:33:51.000Z","avatar_url":"https://github.com/aneldev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DynaProcessManager(config?: IDynaProcessManagerConfig)\n\n```\ninterface IDynaProcessManagerConfig {\n  loggerSettings?: IDynaLoggerConfig;\n}\n```\n[IDynaLoggerConfig](https://github.com/aneldev/dyna-logger/blob/master/src/index.ts#L3)\n\n## public addProcess(processSetup: IDynaProcessConfig): DynaProcess\n\n```\ninterface IDynaProcessConfig {\n  name: string;               // The name if this process for console messages and stats\n  cwd: string;                // Current working directory of the child process\n  command: string;            // Full executable filename\n  args?: string | string[];   // Arguments\n  env?: any;                  // Environment key-value pairs\n  guard?: IDynaProcessConfigGuard;\n  forceTerminationSignal?: boolean;     // default: false, Force passing the termination signal to child process\n  loggerSettings?: IDynaLoggerSettings;\n  consolePrefixProcessName?: boolean;   // default: true\n  onClose?: (exitCode: number, signal: string) =\u003e void;\n}\n\ninterface IDynaProcessConfigGuard {\n  restartAfterMs: number;\n}\n\n```\n\n`addProcess` returns the insatnce of the `DynaProcess` where this has the `id` property (string). Use this `id` in the below methods. \n\n## public removeProcess(id: string): Promise\u003cvoid\u003e\n\n## public getProcess(id: string): DynaProcess\n\n## public get count(): number\n\n## public stopAll(): Promise\u003cvoid\u003e\n\n# DynaProcess\n\nYou don't instantiate this, this is the result of the `addProcess`.\n\nYou get this from `getProcess` by its `id`.\n\n## logger: DynaLogger\n\n## get id(): string\n\n## public active: boolean\n\n## get info()\n\nReturns startAt, stoppedAt and stopCalled\n\n## start(): Promise\u003cboolean\u003e\n\nReturns true if started and false if it was already started.\n\nThe process is started automatically on `addProcess`.\n\nYou can use this if you to re-start it later.\n\n## stop(signal?: string): void\n\n# Pass object to new instances\n\nClasses needs at list an config/opt/settings object to start and work. \nSince this will start in new process, you can pass only string arguments.\n\nThere two utils provided from the library that can help you to serialize/deserialize an object.\n \n## encodeDataToString = \u003cTData\u003e(data: TData): string\n\nConverts an object to string. \n\nPass this string as argument to the process and read it from the `process.argv`.\n\nThen `decodeStringToData`.\n\n## decodeStringToData = \u003cTData\u003e(encoded: string): TData\n\nConverts a string to object.\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faneldev%2Fdyna-process-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faneldev%2Fdyna-process-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faneldev%2Fdyna-process-manager/lists"}