| 'use strict'; |
|
|
| Object.defineProperty(exports, '__esModule', { |
| value: true |
| }); |
| exports.default = getCallsite; |
|
|
| function _callsites() { |
| const data = _interopRequireDefault(require('callsites')); |
|
|
| _callsites = function () { |
| return data; |
| }; |
|
|
| return data; |
| } |
|
|
| function _gracefulFs() { |
| const data = require('graceful-fs'); |
|
|
| _gracefulFs = function () { |
| return data; |
| }; |
|
|
| return data; |
| } |
|
|
| function _sourceMap() { |
| const data = require('source-map'); |
|
|
| _sourceMap = function () { |
| return data; |
| }; |
|
|
| return data; |
| } |
|
|
| function _interopRequireDefault(obj) { |
| return obj && obj.__esModule ? obj : {default: obj}; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| const addSourceMapConsumer = (callsite, consumer) => { |
| const getLineNumber = callsite.getLineNumber; |
| const getColumnNumber = callsite.getColumnNumber; |
| let position = null; |
|
|
| function getPosition() { |
| if (!position) { |
| position = consumer.originalPositionFor({ |
| column: getColumnNumber.call(callsite) || -1, |
| line: getLineNumber.call(callsite) || -1 |
| }); |
| } |
|
|
| return position; |
| } |
|
|
| Object.defineProperties(callsite, { |
| getColumnNumber: { |
| value() { |
| return getPosition().column || getColumnNumber.call(callsite); |
| }, |
|
|
| writable: false |
| }, |
| getLineNumber: { |
| value() { |
| return getPosition().line || getLineNumber.call(callsite); |
| }, |
|
|
| writable: false |
| } |
| }); |
| }; |
|
|
| function getCallsite(level, sourceMaps) { |
| const levelAfterThisCall = level + 1; |
| const stack = (0, _callsites().default)()[levelAfterThisCall]; |
| const sourceMapFileName = |
| sourceMaps === null || sourceMaps === void 0 |
| ? void 0 |
| : sourceMaps.get(stack.getFileName() || ''); |
|
|
| if (sourceMapFileName) { |
| try { |
| const sourceMap = (0, _gracefulFs().readFileSync)( |
| sourceMapFileName, |
| 'utf8' |
| ); |
|
|
| addSourceMapConsumer( |
| stack, |
| new (_sourceMap().SourceMapConsumer)(sourceMap) |
| ); |
| } catch { |
| |
| } |
| } |
|
|
| return stack; |
| } |
|
|