UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

64 lines 2.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getErrorDetails = getErrorDetails; exports.getDetailsFromErrorArgs = getDetailsFromErrorArgs; exports.getDetailsFromConsoleErrorArgs = getDetailsFromConsoleErrorArgs; const faro_core_1 = require("@grafana/faro-core"); const const_1 = require("./const"); const getValueAndTypeFromMessage_1 = require("./getValueAndTypeFromMessage"); const stackFrames_1 = require("./stackFrames"); function getErrorDetails(evt) { let value; let type; let stackFrames = []; let isDomErrorRes; let isEventRes; if ((0, faro_core_1.isErrorEvent)(evt) && evt.error) { value = evt.error.message; type = evt.error.name; stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt.error); } else if ((isDomErrorRes = (0, faro_core_1.isDomError)(evt)) || (0, faro_core_1.isDomException)(evt)) { const { name, message } = evt; type = name !== null && name !== void 0 ? name : (isDomErrorRes ? const_1.domErrorType : const_1.domExceptionType); value = message ? `${type}: ${message}` : type; } else if ((0, faro_core_1.isError)(evt)) { type = evt.name; value = evt.message; stackFrames = (0, stackFrames_1.getStackFramesFromError)(evt); } else if ((0, faro_core_1.isObject)(evt) || (isEventRes = (0, faro_core_1.isEvent)(evt))) { type = isEventRes ? evt.constructor.name : undefined; value = `${const_1.objectEventValue} ${Object.keys(evt)}`; } return [value, type, stackFrames]; } function getDetailsFromErrorArgs(args) { const [evt, source, lineno, colno, error] = args; let value; let type; let stackFrames = []; const eventIsString = (0, faro_core_1.isString)(evt); const initialStackFrame = (0, stackFrames_1.buildStackFrame)(source, const_1.unknownSymbolString, lineno, colno); if (error || !eventIsString) { [value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt)); if (stackFrames.length === 0) { stackFrames = [initialStackFrame]; } } else if (eventIsString) { [value, type] = (0, getValueAndTypeFromMessage_1.getValueAndTypeFromMessage)(evt); stackFrames = [initialStackFrame]; } return { value, type, stackFrames }; } function getDetailsFromConsoleErrorArgs(args, serializer) { if ((0, faro_core_1.isError)(args[0])) { return getDetailsFromErrorArgs(args); } else { return { value: serializer(args) }; } } //# sourceMappingURL=getErrorDetails.js.map