1 | ;
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
|
7 | const create_stack_filter_1 = __importDefault(require("./create-stack-filter"));
|
8 | const ORIGINAL_STACK_TRACE_LIMIT = Error.stackTraceLimit;
|
9 | const STACK_TRACE_LIMIT = 200;
|
10 | const STACK_TRACE_LINE_RE = /^\s+at\s+.*$/;
|
11 | exports.default = {
|
12 | isEnabled: false,
|
13 | _isStackTraceLine(stackLine) {
|
14 | return stackLine.match(STACK_TRACE_LINE_RE);
|
15 | },
|
16 | _eraseOriginalStack(error) {
|
17 | if (!error.stack) {
|
18 | error.stack = '';
|
19 | return;
|
20 | }
|
21 | const stackLines = error.stack.split('\n');
|
22 | let stackLinesCount = 0;
|
23 | while (stackLinesCount < stackLines.length && this._isStackTraceLine(stackLines[stackLines.length - 1 - stackLinesCount]))
|
24 | stackLinesCount++;
|
25 | error.stack = stackLines.slice(0, stackLines.length - stackLinesCount).join('\n');
|
26 | if (stackLinesCount > 0)
|
27 | error.stack += '\n';
|
28 | },
|
29 | _getFrames(error) {
|
30 | try {
|
31 | return error_stack_parser_1.default.parse(error);
|
32 | }
|
33 | catch (e) {
|
34 | return [];
|
35 | }
|
36 | },
|
37 | _renderFrameInfo(frames) {
|
38 | return frames.map(frame => frame.getSource()).join('\n');
|
39 | },
|
40 | get enabled() {
|
41 | return this.isEnabled;
|
42 | },
|
43 | set enabled(val) {
|
44 | if (this.isEnabled === val)
|
45 | return;
|
46 | this.isEnabled = val;
|
47 | // NOTE: Babel errors may have really deep stacks,
|
48 | // so we increase stack trace capacity
|
49 | if (this.isEnabled)
|
50 | Error.stackTraceLimit = STACK_TRACE_LIMIT;
|
51 | else
|
52 | Error.stackTraceLimit = ORIGINAL_STACK_TRACE_LIMIT;
|
53 | },
|
54 | cleanError(error) {
|
55 | let frames = this._getFrames(error);
|
56 | if (!frames.length)
|
57 | return error;
|
58 | this._eraseOriginalStack(error);
|
59 | frames = frames.filter(create_stack_filter_1.default(ORIGINAL_STACK_TRACE_LIMIT));
|
60 | error.stack += this._renderFrameInfo(frames);
|
61 | return error;
|
62 | }
|
63 | };
|
64 | module.exports = exports.default;
|
65 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY2xlYW5pbmctaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvc3RhY2stY2xlYW5pbmctaG9vay5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRFQUFrRDtBQUNsRCxnRkFBc0Q7QUFHdEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQ3pELE1BQU0saUJBQWlCLEdBQVksR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sbUJBQW1CLEdBQVUsY0FBYyxDQUFDO0FBR2xELGtCQUFlO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFFaEIsaUJBQWlCLENBQUUsU0FBUztRQUN4QixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsbUJBQW1CLENBQUUsS0FBSztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNkLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE9BQU87U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUV4QixPQUFPLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7WUFDckgsZUFBZSxFQUFFLENBQUM7UUFFdEIsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRixJQUFJLGVBQWUsR0FBRyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUUsS0FBSztRQUNiLElBQUk7WUFDQSxPQUFPLDRCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ04sT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxNQUFNO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBRSxHQUFHO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7WUFDdEIsT0FBTztRQUVYLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBRXJCLGtEQUFrRDtRQUNsRCxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNkLEtBQUssQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUM7O1lBRTFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBRSxLQUFLO1FBQ2IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDZCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsNkJBQWlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVycm9yU3RhY2tQYXJzZXIgZnJvbSAnZXJyb3Itc3RhY2stcGFyc2VyJztcbmltcG9ydCBjcmVhdGVTdGFja0ZpbHRlciBmcm9tICcuL2NyZWF0ZS1zdGFjay1maWx0ZXInO1xuXG5cbmNvbnN0IE9SSUdJTkFMX1NUQUNLX1RSQUNFX0xJTUlUID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuY29uc3QgU1RBQ0tfVFJBQ0VfTElNSVQgICAgICAgICAgPSAyMDA7XG5jb25zdCBTVEFDS19UUkFDRV9MSU5FX1JFICAgICAgICA9IC9eXFxzK2F0XFxzKy4qJC87XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGlzRW5hYmxlZDogZmFsc2UsXG5cbiAgICBfaXNTdGFja1RyYWNlTGluZSAoc3RhY2tMaW5lKSB7XG4gICAgICAgIHJldHVybiBzdGFja0xpbmUubWF0Y2goU1RBQ0tfVFJBQ0VfTElORV9SRSk7XG4gICAgfSxcblxuICAgIF9lcmFzZU9yaWdpbmFsU3RhY2sgKGVycm9yKSB7XG4gICAgICAgIGlmICghZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgICAgIGVycm9yLnN0YWNrID0gJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFja0xpbmVzID0gZXJyb3Iuc3RhY2suc3BsaXQoJ1xcbicpO1xuXG4gICAgICAgIGxldCBzdGFja0xpbmVzQ291bnQgPSAwO1xuXG4gICAgICAgIHdoaWxlIChzdGFja0xpbmVzQ291bnQgPCBzdGFja0xpbmVzLmxlbmd0aCAmJiB0aGlzLl9pc1N0YWNrVHJhY2VMaW5lKHN0YWNrTGluZXNbc3RhY2tMaW5lcy5sZW5ndGggLSAxIC0gc3RhY2tMaW5lc0NvdW50XSkpXG4gICAgICAgICAgICBzdGFja0xpbmVzQ291bnQrKztcblxuICAgICAgICBlcnJvci5zdGFjayA9IHN0YWNrTGluZXMuc2xpY2UoMCwgc3RhY2tMaW5lcy5sZW5ndGggLSBzdGFja0xpbmVzQ291bnQpLmpvaW4oJ1xcbicpO1xuXG4gICAgICAgIGlmIChzdGFja0xpbmVzQ291bnQgPiAwKVxuICAgICAgICAgICAgZXJyb3Iuc3RhY2sgKz0gJ1xcbic7XG4gICAgfSxcblxuICAgIF9nZXRGcmFtZXMgKGVycm9yKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JTdGFja1BhcnNlci5wYXJzZShlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfcmVuZGVyRnJhbWVJbmZvIChmcmFtZXMpIHtcbiAgICAgICAgcmV0dXJuIGZyYW1lcy5tYXAoZnJhbWUgPT4gZnJhbWUuZ2V0U291cmNlKCkpLmpvaW4oJ1xcbicpO1xuICAgIH0sXG5cbiAgICBnZXQgZW5hYmxlZCAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRW5hYmxlZDtcbiAgICB9LFxuXG4gICAgc2V0IGVuYWJsZWQgKHZhbCkge1xuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWQgPT09IHZhbClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICB0aGlzLmlzRW5hYmxlZCA9IHZhbDtcblxuICAgICAgICAvLyBOT1RFOiBCYWJlbCBlcnJvcnMgbWF5IGhhdmUgcmVhbGx5IGRlZXAgc3RhY2tzLFxuICAgICAgICAvLyBzbyB3ZSBpbmNyZWFzZSBzdGFjayB0cmFjZSBjYXBhY2l0eVxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWQpXG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBTVEFDS19UUkFDRV9MSU1JVDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gT1JJR0lOQUxfU1RBQ0tfVFJBQ0VfTElNSVQ7XG4gICAgfSxcblxuICAgIGNsZWFuRXJyb3IgKGVycm9yKSB7XG4gICAgICAgIGxldCBmcmFtZXMgPSB0aGlzLl9nZXRGcmFtZXMoZXJyb3IpO1xuXG4gICAgICAgIGlmICghZnJhbWVzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcblxuICAgICAgICB0aGlzLl9lcmFzZU9yaWdpbmFsU3RhY2soZXJyb3IpO1xuXG4gICAgICAgIGZyYW1lcyA9IGZyYW1lcy5maWx0ZXIoY3JlYXRlU3RhY2tGaWx0ZXIoT1JJR0lOQUxfU1RBQ0tfVFJBQ0VfTElNSVQpKTtcblxuICAgICAgICBlcnJvci5zdGFjayArPSB0aGlzLl9yZW5kZXJGcmFtZUluZm8oZnJhbWVzKTtcblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxufTtcbiJdfQ== |
\ | No newline at end of file |