UNPKG

824 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, { execArgv: filteredArgs }, {
13 env: process.env
14 , cwd: process.cwd()
15 })
16
17 child.send({ module: forkModule })
18
19 // return a send() function for this child
20 return {
21 send : function (data) {
22 try {
23 child.send(data)
24 } catch (e) {
25 // this *should* be picked up by onExit and the operation requeued
26 }
27 }
28 , child : child
29 }
30}
31
32
33module.exports = fork