|  | 
| 3 | 3 | /** | 
| 4 | 4 |  * Module dependencies. | 
| 5 | 5 |  */ | 
| 6 |  | -const util = require('util'); | 
| 7 | 6 | const http = require('http'); | 
| 8 | 7 | /** | 
| 9 | 8 |  * Constructor. | 
| 10 | 9 |  */ | 
| 11 | 10 | 
 | 
| 12 |  | -function OAuthError(messageOrError, properties) { | 
| 13 |  | -  let message = messageOrError instanceof Error ? messageOrError.message : messageOrError; | 
| 14 |  | -  const error = messageOrError instanceof Error ? messageOrError : null; | 
| 15 |  | -  if (properties == null || !Object.entries(properties).length ) { | 
| 16 |  | -    properties = {}; | 
| 17 |  | -  } | 
|  | 11 | +class OAuthError extends Error { | 
|  | 12 | +  constructor(messageOrError, properties) { | 
|  | 13 | +    super(messageOrError, properties); | 
| 18 | 14 | 
 | 
| 19 |  | -  properties = Object.assign({ code: 500 }, properties); | 
|  | 15 | +    let message = messageOrError instanceof Error ? messageOrError.message : messageOrError; | 
|  | 16 | +    const error = messageOrError instanceof Error ? messageOrError : null; | 
| 20 | 17 | 
 | 
| 21 |  | -  if (error) { | 
| 22 |  | -    properties.inner = error; | 
| 23 |  | -  } | 
| 24 |  | -  if (!message || message.length === 0) { | 
| 25 |  | -    message = http.STATUS_CODES[properties.code]; | 
| 26 |  | -  } | 
| 27 |  | -  this.code = this.status = this.statusCode = properties.code; | 
| 28 |  | -  this.message = message; | 
| 29 |  | -  for (const key in properties) { | 
| 30 |  | -    if (key !== 'code') { | 
| 31 |  | -      this[key] = properties[key]; | 
|  | 18 | +    if (properties == null || !Object.entries(properties).length) { | 
|  | 19 | +      properties = {}; | 
|  | 20 | +    } | 
|  | 21 | + | 
|  | 22 | +    properties = { code: 500, ...properties }; | 
|  | 23 | + | 
|  | 24 | +    if (error) { | 
|  | 25 | +      properties.inner = error; | 
|  | 26 | +    } | 
|  | 27 | + | 
|  | 28 | +    if (!message || message.length === 0) { | 
|  | 29 | +      message = http.STATUS_CODES[properties.code]; | 
|  | 30 | +    } | 
|  | 31 | + | 
|  | 32 | +    this.code = this.status = this.statusCode = properties.code; | 
|  | 33 | +    this.message = message; | 
|  | 34 | + | 
|  | 35 | +    for (const key in properties) { | 
|  | 36 | +      if (key !== 'code') { | 
|  | 37 | +        this[key] = properties[key]; | 
|  | 38 | +      } | 
| 32 | 39 |     } | 
| 33 | 40 |   } | 
| 34 |  | -  Error.captureStackTrace(this, OAuthError); | 
| 35 | 41 | } | 
| 36 | 42 | 
 | 
| 37 |  | -util.inherits(OAuthError, Error); | 
| 38 |  | - | 
| 39 | 43 | /** | 
| 40 | 44 |  * Export constructor. | 
| 41 | 45 |  */ | 
|  | 
0 commit comments