sendmessage
Version:
Send a cross process message if message channel is connected.
70 lines (45 loc) • 2.02 kB
Markdown
//github.com/node-modules/sendmessage/actions/workflows/nodejs.yml/badge.svg)](https://github.com/node-modules/sendmessage/actions/workflows/nodejs.yml)
[![Test coverage][codecov-image]][codecov-url]
[![npm download][download-image]][download-url]
[ ]: https://img.shields.io/npm/v/sendmessage.svg?style=flat-square
[ ]: https://npmjs.org/package/sendmessage
[ ]: https://img.shields.io/npm/dm/sendmessage.svg?style=flat-square
[ ]: https://npmjs.org/package/sendmessage
[ ]: https://codecov.io/gh/node-modules/sendmessage/branch/master/graph/badge.svg
[ ]: https://codecov.io/gh/node-modules/sendmessage
Send a cross process message if message channel is connected.
Avoid [channel closed](https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/child_process.js#L411) error throw out.
```bash
npm install sendmessage --save
```
```ts
import { fork } from 'node:child_process';
import { sendmessage } from 'sendmessage';
const worker = fork('./worker.js');
sendmessage(worker, { hi: 'this is a message to worker' });
```
```ts
import { sendmessage } from 'sendmessage';
sendmessage(process, { hello: 'this is a message to master' });
```
Send a cross process message.
If a process is not child process, this will just call `process.emit('message', message)` instead.
- childProcess: child process instance
- message: the message need to send
```js
sendmessage(process, { hello: 'this is a message to master' });
```
You can switch to `process.emit('message', message)` using `process.env.SENDMESSAGE_ONE_PROCESS`
[ ](LICENSE)
[](https://github.com/node-modules/sendmessage/graphs/contributors)
Made with [contributors-img](https://contrib.rocks).
[![NPM version][npm-image]][npm-url]
[![CI](https: