UNPKG

800 BJavaScriptView Raw
1'use strict'
2
3const childProcess = require('child_process')
4 , childModule = require.resolve('./child/index')
5
6
7function fork (forkModule) {
8 // suppress --debug / --inspect flags while preserving others (like --harmony)
9 let filteredArgs = process.execArgv.filter(function (v) {
10 return !(/^--(debug|inspect)/).test(v)
11 })
12 , child = childProcess.fork(childModule, process.argv, {
13 execArgv: filteredArgs
14 , env: process.env
15 , cwd: process.cwd()
16 })
17
18 child.on('error', function() {
19 // this *should* be picked up by onExit and the operation requeued
20 })
21
22 child.send({ module: forkModule })
23
24 // return a send() function for this child
25 return {
26 send : child.send.bind(child)
27 , child : child
28 }
29}
30
31
32module.exports = fork