import { wrapCallSite } from 'source-map-support'; export default function captureStackTrace(skip = 0): NodeJS.CallSite[] { const rawPrepareStackTrace = Error.prepareStackTrace; try { Error.prepareStackTrace = (_, stack) => stack; const v: { stack: NodeJS.CallSite[] } = { stack: [] }; Error.captureStackTrace(v); return v.stack.slice(1 + skip).map(i => wrapCallSite(i)); } finally { Error.prepareStackTrace = rawPrepareStackTrace; } }