| 'use strict'; | |
| Object.defineProperty(exports, '__esModule', { value: true }); | |
| function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | |
| var deprecation = require('deprecation'); | |
| var once = _interopDefault(require('once')); | |
| const logOnceCode = once(deprecation => console.warn(deprecation)); | |
| const logOnceHeaders = once(deprecation => console.warn(deprecation)); | |
| /** | |
| * Error with extra properties to help with debugging | |
| */ | |
| class RequestError extends Error { | |
| constructor(message, statusCode, options) { | |
| super(message); // Maintains proper stack trace (only available on V8) | |
| /* istanbul ignore next */ | |
| if (Error.captureStackTrace) { | |
| Error.captureStackTrace(this, this.constructor); | |
| } | |
| this.name = "HttpError"; | |
| this.status = statusCode; | |
| let headers; | |
| if ("headers" in options && typeof options.headers !== "undefined") { | |
| headers = options.headers; | |
| } | |
| if ("response" in options) { | |
| this.response = options.response; | |
| headers = options.response.headers; | |
| } // redact request credentials without mutating original request options | |
| const requestCopy = Object.assign({}, options.request); | |
| if (options.request.headers.authorization) { | |
| requestCopy.headers = Object.assign({}, options.request.headers, { | |
| authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") | |
| }); | |
| } | |
| requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit | |
| // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications | |
| .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended | |
| // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header | |
| .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); | |
| this.request = requestCopy; // deprecations | |
| Object.defineProperty(this, "code", { | |
| get() { | |
| logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); | |
| return statusCode; | |
| } | |
| }); | |
| Object.defineProperty(this, "headers", { | |
| get() { | |
| logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); | |
| return headers || {}; | |
| } | |
| }); | |
| } | |
| } | |
| exports.RequestError = RequestError; | |
| //# sourceMappingURL=index.js.map |