1 | 'use strict'
|
2 | const sourceMapSupport = require('source-map-support')
|
3 | const StackUtils = require('stack-utils')
|
4 | const path = require('path')
|
5 | const tapDir = path.resolve(__dirname, '..')
|
6 | const {homedir} = require('os')
|
7 |
|
8 | const resc = str =>
|
9 | str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | const skip = (process.cwd() !== tapDir ||
|
15 | +process.env.TAP_DEV_SHORTSTACK === 1) &&
|
16 | +process.env.TAP_DEV_LONGSTACK !== 1
|
17 | ? [
|
18 | /node_modules[\/\\]tap[\/\\]/,
|
19 | /at internal\/.*\.js:\d+:\d+/m,
|
20 | new RegExp(resc(path.resolve(homedir(), '.node-spawn-wrap-')) + '.*'),
|
21 | new RegExp(resc(tapDir) + '\\b', 'i'),
|
22 | new RegExp('at ' + resc('Generator.next (<anonymous>)'), 'i'),
|
23 | ].concat( require.resolve
|
24 | ? [
|
25 | new RegExp(resc(require.resolve('function-loop'))),
|
26 | new RegExp(resc(require.resolve('esm'))),
|
27 | new RegExp(resc(require.resolve('nyc').replace(/(node_modules[\/\\]nyc).*$/, '$1'))),
|
28 | new RegExp(resc(require.resolve('import-jsx'))),
|
29 | ]
|
30 | : [])
|
31 | : +process.env.TAP_DEV_LONGSTACK !== 1 ? [
|
32 | /at internal\/.*\.js:\d+:\d+/m,
|
33 | new RegExp(resc(require.resolve('esm'))),
|
34 | new RegExp(resc(require.resolve('nyc').replace(/(node_modules[\/\\]nyc).*$/, '$1'))),
|
35 | new RegExp(resc(require.resolve('import-jsx'))),
|
36 | ]
|
37 | : []
|
38 |
|
39 | sourceMapSupport.install({environment:'node'})
|
40 |
|
41 | let nodeInternals = []
|
42 | try {
|
43 | nodeInternals = StackUtils.nodeInternals()
|
44 | } catch (error) {
|
45 |
|
46 | }
|
47 |
|
48 | module.exports = new StackUtils({
|
49 | internals: nodeInternals.concat(skip),
|
50 | wrapCallSite: sourceMapSupport.wrapCallSite
|
51 | })
|