@authereum/resolution
Version:
Domain Resolution for blockchain domains
94 lines (93 loc) • 5.13 kB
JavaScript
;
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;