UNPKG

@xboxreplay/xboxlive-auth

Version:

A light but advanced Xbox Live authentication module with OAuth2.0 and Electron support

79 lines (78 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var XRErrorReasons; (function (XRErrorReasons) { XRErrorReasons["BAD_REQUEST"] = "BAD_REQUEST"; XRErrorReasons["UNAUTHORIZED"] = "UNAUTHORIZED"; XRErrorReasons["FORBIDDEN"] = "FORBIDDEN"; XRErrorReasons["NOT_FOUND"] = "NOT_FOUND"; XRErrorReasons["TOO_MANY_REQUESTS"] = "TOO_MANY_REQUESTS"; XRErrorReasons["INTERNAL_ERROR"] = "INTERNAL_ERROR"; })(XRErrorReasons || (XRErrorReasons = {})); const statusCodeToReasonMap = { 500: 'INTERNAL_ERROR', 400: 'BAD_REQUEST', 401: 'UNAUTHORIZED', 403: 'FORBIDDEN', 404: 'NOT_FOUND', 429: 'TOO_MANY_REQUESTS' }; const defaultErrorMessage = 'Something went wrong...'; const defaultStatusCode = 500; const defaultReason = XRErrorReasons.INTERNAL_ERROR; class XRError extends Error { constructor(message = defaultErrorMessage, details = {}) { super(message); this.__XboxReplay__ = true; this.details = { statusCode: defaultStatusCode, reason: defaultReason, additional: null }; this.name = this.constructor.name; if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, this.constructor); else this.stack = new Error(message).stack; this.details = Object.assign(Object.assign({}, this.details), details); this.details.reason = statusCodeToReasonMap[this.details.statusCode] || statusCodeToReasonMap[defaultStatusCode]; } getMessage() { return this.message; } getDetails() { return this.details; } getStatusCode() { return this.getDetails().statusCode; } getReason() { return this.getDetails().reason; } getAdditional() { return this.getDetails().additional; } } XRError.badRequest = (message = 'Bad Request', additional = null) => new XRError(message, { statusCode: 400, additional }); XRError.unauthorized = (message = 'Unauthorized', additional = null) => new XRError(message, { statusCode: 401, additional }); XRError.forbidden = (message = 'Forbidden', additional = null) => new XRError(message, { statusCode: 403, additional }); XRError.tooManyRequests = (message = 'Too Many Requests', additional = null) => new XRError(message, { statusCode: 429, additional }); XRError.internal = (message = 'Internal Error', additional = null) => new XRError(message, { statusCode: 500, additional }); exports.default = XRError;