Skip to content

Latest commit

 

History

History
44 lines (31 loc) · 1.06 KB

File metadata and controls

44 lines (31 loc) · 1.06 KB

@d-zero/proc-talk

Node.js の child_process.fork 上に双方向 IPC を構築するライブラリ。型安全なメソッド呼び出しとライフサイクル管理を提供する。

Installation

yarn add @d-zero/proc-talk

Usage

メインプロセス:

import { ProcTalk } from '@d-zero/proc-talk';

type WorkerAPI = {
	add: (a: number, b: number) => Promise<number>;
};

await using worker = new ProcTalk<WorkerAPI>({
	type: 'main',
	subModulePath: './worker.js',
});

const result = await worker.call('add', 10, 20);
// スコープ脱出時に子プロセスへ自動で :kill が送られ、exit まで待機する

子プロセス (./worker.js):

import { ProcTalk } from '@d-zero/proc-talk';

new ProcTalk({
	type: 'sub',
	handlers: {
		add: async (a, b) => a + b,
	},
});

シリアライズ仕様(関数は IPC 越境で null 化される制約)、エラー時のスタックトレース保持、Symbol.asyncDispose 時のクリーンアップ順序は src/proc-talk.tssrc/serialize.ts の JSDoc を参照。