wallet-core/node_modules/ava/lib/beautify-stack.js
2017-05-28 00:40:43 +02:00

38 lines
969 B
JavaScript

'use strict';
const StackUtils = require('stack-utils');
const cleanStack = require('clean-stack');
const debug = require('debug')('ava');
// Ignore unimportant stack trace lines
let ignoreStackLines = [];
const avaInternals = /\/ava\/(?:lib\/)?[\w-]+\.js:\d+:\d+\)?$/;
const avaDependencies = /\/node_modules\/(?:bluebird|empower-core|(?:ava\/node_modules\/)?(?:babel-runtime|core-js))\//;
if (!debug.enabled) {
ignoreStackLines = StackUtils.nodeInternals();
ignoreStackLines.push(avaInternals);
ignoreStackLines.push(avaDependencies);
}
const stackUtils = new StackUtils({internals: ignoreStackLines});
module.exports = stack => {
if (!stack) {
return '';
}
// Workaround for https://github.com/tapjs/stack-utils/issues/14
// TODO: fix it in `stack-utils`
stack = cleanStack(stack);
const title = stack.split('\n')[0];
const lines = stackUtils
.clean(stack)
.split('\n')
.map(x => ` ${x}`)
.join('\n');
return `${title}\n${lines}`;
};