@rarible/utils
Version:
> TODO: description
47 lines (46 loc) • 1.43 kB
JavaScript
;
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;