D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
usr
/
lib
/
node_modules
/
npm
/
node_modules
/
worker-farm
/
lib
/
child
/
Filename :
index.js
back
Copy
'use strict' let $module /* let contextProto = this.context; while (contextProto = Object.getPrototypeOf(contextProto)) { completionGroups.push(Object.getOwnPropertyNames(contextProto)); } */ function handle (data) { let idx = data.idx , child = data.child , method = data.method , args = data.args , callback = function () { let _args = Array.prototype.slice.call(arguments) if (_args[0] instanceof Error) { let e = _args[0] _args[0] = { '$error' : '$error' , 'type' : e.constructor.name , 'message' : e.message , 'stack' : e.stack } Object.keys(e).forEach(function(key) { _args[0][key] = e[key] }) } process.send({ owner: 'farm', idx: idx, child: child, args: _args }) } , exec if (method == null && typeof $module == 'function') exec = $module else if (typeof $module[method] == 'function') exec = $module[method] if (!exec) return console.error('NO SUCH METHOD:', method) exec.apply(null, args.concat([ callback ])) } process.on('message', function (data) { if (data.owner !== 'farm') { return; } if (!$module) return $module = require(data.module) if (data.event == 'die') return process.exit(0) handle(data) })