UNPKG

@rarible/utils

Version:
47 lines (46 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractErrorCode = exports.CodeError = void 0; const tslib_1 = require("tslib"); const tg = tslib_1.__importStar(require("generic-type-guard")); const index_js_1 = require("../custom/index.js"); const index_js_2 = require("../utils/index.js"); /** * Represents error with the specific code * useful in cases when you have keyed-table of errors */ class CodeError extends index_js_1.CustomError { static parse(error, data) { const message = (0, index_js_2.extractErrorMessage)(error); const code = extractErrorCode(error); return new CodeError(code, message, { cause: error, data: data, }); } constructor(code, message, options) { super(message, options); this.code = code; this.code = code; } } exports.CodeError = CodeError; // fraction of PI CodeError.UNKNOWN_CODE = 14159265359; const hasCode = tg.isLikeObject({ code: tg.isSet, }); function extractErrorCode(error) { if (hasCode(error)) { if (tg.isNumber(error.code)) return error.code; if (tg.isString(error.code)) { const parsedCode = parseInt(error.code); if (!isNaN(parsedCode)) { return parsedCode; } } } return CodeError.UNKNOWN_CODE; } exports.extractErrorCode = extractErrorCode;