Innovenergy_trunk/frontend/node_modules/testcafe/lib/errors/stack-cleaning-hook.js

66 lines
7.6 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
const create_stack_filter_1 = __importDefault(require("./create-stack-filter"));
const ORIGINAL_STACK_TRACE_LIMIT = Error.stackTraceLimit;
const STACK_TRACE_LIMIT = 200;
const STACK_TRACE_LINE_RE = /^\s+at\s+.*$/;
exports.default = {
isEnabled: false,
_isStackTraceLine(stackLine) {
return STACK_TRACE_LINE_RE.test(stackLine);
},
_removeStackTraceLines(error) {
if (!error.stack) {
error.stack = '';
return;
}
const stackLines = error.stack.split('\n');
let stackLinesCount = 0;
while (stackLinesCount < stackLines.length && this._isStackTraceLine(stackLines[stackLines.length - 1 - stackLinesCount]))
stackLinesCount++;
error.stack = stackLines.slice(0, stackLines.length - stackLinesCount).join('\n');
if (stackLinesCount > 0)
error.stack += '\n';
},
_getFrames(error) {
try {
return error_stack_parser_1.default.parse(error);
}
catch (e) {
return [];
}
},
_renderFrameInfo(frames) {
return frames.map(frame => frame.getSource()).join('\n');
},
get enabled() {
return this.isEnabled;
},
set enabled(val) {
if (this.isEnabled === val)
return;
this.isEnabled = val;
// NOTE: Babel errors may have really deep stacks,
// so we increase stack trace capacity
if (this.isEnabled)
Error.stackTraceLimit = STACK_TRACE_LIMIT;
else
Error.stackTraceLimit = ORIGINAL_STACK_TRACE_LIMIT;
},
cleanError(error) {
let frames = this._getFrames(error);
if (!frames.length)
return error;
this._removeStackTraceLines(error);
const stackFilterFn = (0, create_stack_filter_1.default)(ORIGINAL_STACK_TRACE_LIMIT);
frames = frames.filter(stackFilterFn);
error.stack += this._renderFrameInfo(frames);
return error;
},
};
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY2xlYW5pbmctaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvc3RhY2stY2xlYW5pbmctaG9vay5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRFQUFrRDtBQUNsRCxnRkFBc0Q7QUFHdEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQ3pELE1BQU0saUJBQWlCLEdBQVksR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sbUJBQW1CLEdBQVUsY0FBYyxDQUFDO0FBR2xELGtCQUFlO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFFaEIsaUJBQWlCLENBQUUsU0FBUztRQUN4QixPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsc0JBQXNCLENBQUUsS0FBSztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNkLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE9BQU87U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUV4QixPQUFPLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7WUFDckgsZUFBZSxFQUFFLENBQUM7UUFFdEIsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRixJQUFJLGVBQWUsR0FBRyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUUsS0FBSztRQUNiLElBQUk7WUFDQSxPQUFPLDRCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ04sT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxNQUFNO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBRSxHQUFHO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7WUFDdEIsT0FBTztRQUVYLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBRXJCLGtEQUFrRDtRQUNsRCxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNkLEtBQUssQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUM7O1lBRTFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBRSxLQUFLO1FBQ2IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDZCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsTUFBTSxhQUFhLEdBQUcsSUFBQSw2QkFBaUIsRUFBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVycm9yU3RhY2tQYXJzZXIgZnJvbSAnZXJyb3Itc3RhY2stcGFyc2VyJztcbmltcG9ydCBjcmVhdGVTdGFja0ZpbHRlciBmcm9tICcuL2NyZWF0ZS1zdGFjay1maWx0ZXInO1xuXG5cbmNvbnN0IE9SSUdJTkFMX1NUQUNLX1RSQUNFX0xJTUlUID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuY29uc3QgU1RBQ0tfVFJBQ0VfTElNSVQgICAgICAgICAgPSAyMDA7XG5jb25zdCBTVEFDS19UUkFDRV9MSU5FX1JFICAgICAgICA9IC9eXFxzK2F0XFxzKy4qJC87XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGlzRW5hYmxlZDogZmFsc2UsXG5cbiAgICBfaXNTdGFja1RyYWNlTGluZSAoc3RhY2tMaW5lKSB7XG4gICAgICAgIHJldHVybiBTVEFDS19UUkFDRV9MSU5FX1JFLnRlc3Qoc3RhY2tMaW5lKTtcbiAgICB9LFxuXG4gICAgX3JlbW92ZVN0YWNrVHJhY2VMaW5lcyAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCFlcnJvci5zdGFjaykge1xuICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSAnJztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YWNrTGluZXMgPSBlcnJvci5zdGFjay5zcGxpdCgnXFxuJyk7XG5cbiAgICAgICAgbGV0IHN0YWNrTGluZXNDb3VudCA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHN0YWNrTGluZXNDb3VudCA8IHN0YWNrTGluZXMubGVuZ3RoICYmIHRoaXMuX2lzU3RhY2tUcmFjZUxpbmUoc3RhY2tMaW5lc1tzdGFja0xpbmVzLmxlbmd0aCAtIDEgLSBzdGFja0xpbmVzQ291bnRdKSlcbiAgICAgICAgICAgIHN0YWNrTGluZXNDb3VudCsrO1xuXG4gICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2tMaW5lcy5zbGljZSgwLCBzdGFja0xpbmVzLmxlbmd0aCAtIHN0YWNrTGluZXNDb3VudCkuam9pbignXFxuJyk7XG5cbiAgICAgICAgaWYgKHN0YWNrTGluZXNDb3VudCA+IDApXG4gICAgICAgICAgICBlcnJvci5zdGFjayArPSAnXFxuJztcbiAgICB9LFxuXG4gICAgX2dldEZyYW1lcyAoZXJyb3IpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclN0YWNrUGFyc2VyLnBhcnNlKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9yZW5kZXJGcmFtZUluZm8gKGZyYW1lcykge1xuICAgICAgICByZXR1cm4gZnJhbWVzLm1hcChmcmFtZSA9PiBmcmFtZS5nZXRTb3VyY2UoKSkuam9pbignXFxuJyk7XG4gICAgfSxcblxuICAgIGdldCBlbmFibGVkICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFbmFibGVkO1xuICAgIH0sXG5cbiAgICBzZXQgZW5hYmxlZCAodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZCA9PT0gdmFsKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNFbmFibGVkID0gdmFsO1xuXG4gICAgICAgIC8vIE5PVEU6IEJhYmVsIGVycm9ycyBtYXkgaGF2ZSByZWFsbHkgZGVlcCBzdGFja3MsXG4gICAgICAgIC8vIHNvIHdlIGluY3JlYXNlIHN0YWNrIHRyYWNlIGNhcGFjaXR5XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZClcbiAgICAgICAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IFNUQUNLX1RSQUNFX0xJTUlUO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBPUklHSU5BTF9TVEFDS19UUkFDRV9MSU1JVDtcbiAgICB9LFxuXG4gICAgY2xlYW5FcnJvciAoZXJyb3IpIHtcbiAgICAgICAgbGV0IGZyYW1lcyA9IHRoaXMuX2dldEZyYW1lcyhlcnJvcik7XG5cbiAgICAgICAgaWYgKCFmcmFtZXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuXG4gICAgICAgIHRoaXMuX3JlbW92ZVN0YWNrVHJhY2VMaW5lcyhlcnJvcik7XG5cbiAgICAgICAgY29uc3Qgc3RhY2tGaWx0ZXJGbiA9IGNyZWF0ZVN0YWNrRmlsdGVyKE9SSUdJTkFMX1NUQUNLX1RSQUNFX0xJTUlUKTtcblxuICAgICAgICBmcmFtZXMgPSBmcmFtZXMuZmlsdGVyKHN0YWNrRmlsdGVyRm4pO1xuXG4gICAgICAgIGVycm9yLnN0YWNrICs9IHRoaXMuX3JlbmRlckZyYW1lSW5mbyhmcmFtZXMpO1xuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxufTtcbiJdfQ==