Skip to content

Latest commit

 

History

History
93 lines (68 loc) · 2.56 KB

README.MD

File metadata and controls

93 lines (68 loc) · 2.56 KB

@2o3t/process-manager

Process manager for Nodejs.

Ideas from https://github.com/Microsoft/vscode.

Installation

npm install @2o3t/process-manager

or

yarn add @2o3t/process-manager

Usage

Client (main process):

const PM = require('@2o3t/process-manager');
const client = new PM.Client(__dirname + '/sub-processes.js');
const channel = client.getChannel('channelName');
channel.call('info', {
    // something
}).then(data => {
    console.log('data', data);
});
channel.listen('ccc')(aa => {
    console.log('listen..', aa);
});

Server (sub process):

const PM = require('@2o3t/process-manager');
const server = new PM.Server();
const channel = new PM.ServerChannel({
    info(arg) {
        console.log('arg: ', arg);
        return Promise.resolve(server.info);
    },
    ccc(emit) {
        emit('100w');
        emit('101w');
        // server.dispose();
        emit('102w');
        emit('103w');
        emit('104w');
    },
});
console.log('server ok');
server.registerChannel('channelName', channel);

Options

Client options in paramters

modulePath: file path of sub process

options: Object.

key type desc
serverName string A descriptive name for the server this connection is to. Used in logging.
timeout? number Time in millies before killing the ipc process. The next request after killing will start it again.
args? string[] Arguments to the module to execute.
env? any Environment key-value pairs to be passed to the process that gets spawned for the ipc.
debug? number Allows to assign a debug port for debugging the application executed.
debugBrk? number Allows to assign a debug port for debugging the application and breaking it on the first line.
freshExecArgv? boolean See microsoft/vscode#27665
* Allows to pass in fresh execArgv to the forked process such that it doesn't inherit them from process.execArgv.
* e.g. Launching the extension host process with --inspect-brk=xxx and then forking a process from the extension host results in the forked process inheriting --inspect-brk=xxx.
useQueue? boolean Enables our createQueuedSender helper for this Client. Uses a queue when the internal Node.js queue is full of messages - see notes on that method.

Server options in paramters

options: Object.

key type desc
timeoutDelay? number They will timeout after timeoutDelay.

License

MIT