1 | 'use strict';
|
2 | var StackUtils = require('stack-utils');
|
3 | var debug = require('debug')('ava');
|
4 |
|
5 | function indent(str) {
|
6 | return ' ' + str;
|
7 | }
|
8 |
|
9 |
|
10 | var ignoreStackLines = [];
|
11 |
|
12 | var avaInternals = /\/ava\/(?:lib\/)?[\w-]+\.js:\d+:\d+\)?$/;
|
13 | var avaDependencies = /\/node_modules\/(?:bluebird|empower-core|(?:ava\/node_modules\/)?(?:babel-runtime|core-js))\//;
|
14 |
|
15 | if (!debug.enabled) {
|
16 | ignoreStackLines = StackUtils.nodeInternals();
|
17 | ignoreStackLines.push(avaInternals);
|
18 | ignoreStackLines.push(avaDependencies);
|
19 | }
|
20 |
|
21 | var stackUtils = new StackUtils({internals: ignoreStackLines});
|
22 |
|
23 | module.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 | };
|