UNPKG

@authereum/resolution

Version:
94 lines (93 loc) 5.13 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var _a; Object.defineProperty(exports, "__esModule", { value: true }); var ResolutionErrorCode; (function (ResolutionErrorCode) { ResolutionErrorCode["UnregisteredDomain"] = "UnregisteredDomain"; ResolutionErrorCode["UnspecifiedResolver"] = "UnspecifiedResolver"; ResolutionErrorCode["UnsupportedDomain"] = "UnsupportedDomain"; ResolutionErrorCode["UnsupportedMethod"] = "UnsupportedMethod"; ResolutionErrorCode["UnspecifiedCurrency"] = "UnspecifiedCurrency"; ResolutionErrorCode["NamingServiceDown"] = "NamingServiceDown"; ResolutionErrorCode["UnsupportedCurrency"] = "UnsupportedCurrency"; ResolutionErrorCode["IncorrectResolverInterface"] = "IncorrectResolverInterface"; ResolutionErrorCode["RecordNotFound"] = "RecordNotFound"; ResolutionErrorCode["ServiceProviderError"] = "ServiceProviderError"; ResolutionErrorCode["InvalidTwitterVerification"] = "InvalidTwitterVerification"; })(ResolutionErrorCode = exports.ResolutionErrorCode || (exports.ResolutionErrorCode = {})); /** * @internal * Internal Mapping object from ResolutionErrorCode to a ResolutionErrorHandler */ var HandlersByCode = (_a = {}, _a[ResolutionErrorCode.UnregisteredDomain] = function (params) { return "Domain " + params.domain + " is not registered"; }, _a[ResolutionErrorCode.UnspecifiedResolver] = function (params) { return "Domain " + params.domain + " is not configured"; }, _a[ResolutionErrorCode.UnsupportedDomain] = function (params) { return "Domain " + params.domain + " is not supported"; }, _a[ResolutionErrorCode.UnsupportedMethod] = function (params) { return "Method " + params.methodName + " is not supported for " + params.domain; }, _a[ResolutionErrorCode.UnspecifiedCurrency] = function (params) { return "Domain " + params.domain + " has no " + params.currencyTicker + " attached to it"; }, _a[ResolutionErrorCode.NamingServiceDown] = function (params) { return params.method + " naming service is down at the moment"; }, _a[ResolutionErrorCode.InvalidTwitterVerification] = function (params) { return "Domain " + params.domain + " has invalid Twitter signature verification"; }, _a[ResolutionErrorCode.UnsupportedCurrency] = function (params) { return params.currencyTicker + " is not supported"; }, _a[ResolutionErrorCode.IncorrectResolverInterface] = function (params) { return "Domain resolver is configured incorrectly for " + params.method; }, _a[ResolutionErrorCode.RecordNotFound] = function (params) { return "No " + params.recordName + " record found for " + params.domain; }, _a[ResolutionErrorCode.ServiceProviderError] = function (params) { return "< " + params.providerMessage + " >"; }, _a); /** * Resolution Error class is designed to control every error being thrown by Resolution * @param code - Error Code * - UnsupportedDomain - domain is not supported by current Resolution instance * - NamingServiceDown - blockchain API is down * - UnregisteredDomain - domain is not owned by any address * - UnspecifiedResolver - domain has no resolver specified * - UnspecifiedCurrency - domain resolver doesn't have any address of specified currency * - UnsupportedCurrency - currency is not supported * - IncorrectResolverInterface - ResolverInterface is incorrected * - RecordNotFound - No record was found * @param domain - Domain name that was being used * @param method */ var ResolutionError = /** @class */ (function (_super) { __extends(ResolutionError, _super); function ResolutionError(code, options) { if (options === void 0) { options = {}; } var _this = this; var resolutionErrorHandler = HandlersByCode[code]; var domain = options.domain, method = options.method, currencyTicker = options.currencyTicker; var message = resolutionErrorHandler(options); if (code === ResolutionErrorCode.UnspecifiedCurrency) { message += "\nResolutionErrorCode " + code + " is deprecated and will be removed in the future. Use RecordNotFound code instead."; } _this = _super.call(this, message) || this; _this.code = code; _this.domain = domain; _this.method = method; _this.currencyTicker = currencyTicker; _this.name = 'ResolutionError'; Object.setPrototypeOf(_this, ResolutionError.prototype); return _this; } return ResolutionError; }(Error)); exports.ResolutionError = ResolutionError; exports.default = ResolutionError;