You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'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) })
|