UNPKG

830 BJavaScriptView Raw
1'use strict';
2var StackUtils = require('stack-utils');
3var debug = require('debug')('ava');
4
5function indent(str) {
6 return ' ' + str;
7}
8
9// ignore unimportant stack trace lines
10var ignoreStackLines = [];
11
12var avaInternals = /\/ava\/(?:lib\/)?[\w-]+\.js:\d+:\d+\)?$/;
13var avaDependencies = /\/node_modules\/(?:bluebird|empower-core|(?:ava\/node_modules\/)?(?:babel-runtime|core-js))\//;
14
15if (!debug.enabled) {
16 ignoreStackLines = StackUtils.nodeInternals();
17 ignoreStackLines.push(avaInternals);
18 ignoreStackLines.push(avaDependencies);
19}
20
21var stackUtils = new StackUtils({internals: ignoreStackLines});
22
23module.exports = function (stack) {
24 if (!stack) {
25 return '';
26 }
27
28 var title = stack.split('\n')[0];
29 var lines = stackUtils
30 .clean(stack)
31 .split('\n')
32 .map(indent)
33 .join('\n');
34
35 return title + '\n' + lines;
36};