async-hook-jl
Version:
Inspect the life of handle objects in node
33 lines (26 loc) • 801 B
JavaScript
if (process.env.hasOwnProperty('ASYNC_HOOK_TEST_CHILD')) {
const asyncHook = require('../');
asyncHook.enable();
setInterval(function () {
throw new Error('test error');
});
} else {
const spawn = require('child_process').spawn;
const endpoint = require('endpoint');
const child = spawn(process.execPath, [__filename], {
env: Object.assign({ ASYNC_HOOK_TEST_CHILD: '' }, process.env),
stdio: ['ignore', 1, 'pipe']
});
let stderr = null;
child.stderr.pipe(endpoint(function (err, _stderr) {
if (err) throw err;
stderr = _stderr;
}));
child.once('close', function (statusCode) {
if (statusCode !== 1 || stderr.toString().indexOf('test error') === -1) {
process.stderr.write(stderr);
process.exit(statusCode);
}
});
}
;