Spaces:
Sleeping
Sleeping
| ; | |
| 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}; | |
| } | |
| /** | |
| * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | |
| * | |
| * This source code is licensed under the MIT license found in the | |
| * LICENSE file in the root directory of this source tree. | |
| */ | |
| // Copied from https://github.com/rexxars/sourcemap-decorate-callsites/blob/5b9735a156964973a75dc62fd2c7f0c1975458e8/lib/index.js#L113-L158 | |
| 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' | |
| ); // @ts-expect-error: Not allowed to pass string | |
| addSourceMapConsumer( | |
| stack, | |
| new (_sourceMap().SourceMapConsumer)(sourceMap) | |
| ); | |
| } catch { | |
| // ignore | |
| } | |
| } | |
| return stack; | |
| } | |