UNPKG

1.7 kBJavaScriptView Raw
1'use strict'
2const sourceMapSupport = require('source-map-support')
3const StackUtils = require('stack-utils')
4const path = require('path')
5const tapDir = path.resolve(__dirname, '..')
6const {homedir} = require('os')
7
8const resc = str =>
9 str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')
10
11// Ignore tap if it's a dependency, or anything
12// in this lib folder.
13// don't skip when developing on tap itself
14const 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(/* istanbul ignore next */ 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
39sourceMapSupport.install({environment:'node'})
40
41let nodeInternals = []
42try {
43 nodeInternals = StackUtils.nodeInternals()
44} catch (error) {
45 // Do nothing.
46}
47
48module.exports = new StackUtils({
49 internals: nodeInternals.concat(skip),
50 wrapCallSite: sourceMapSupport.wrapCallSite
51})