verdaccio/lib/error.js

63 lines
1.4 KiB
JavaScript
Raw Normal View History

var util = require('util')
, utils = require('./utils')
2013-06-01 00:57:28 +02:00
function parse_error_params(params, status, msg) {
if (typeof(params) === 'string') {
return {
msg: params,
status: status,
2013-10-26 14:18:36 +02:00
}
2013-06-01 00:57:28 +02:00
} else if (typeof(params) === 'number') {
return {
msg: msg,
status: params,
2013-10-26 14:18:36 +02:00
}
} else if (utils.is_object(params)) {
2013-10-26 14:18:36 +02:00
if (params.msg == null) params.msg = msg
if (params.status == null) params.status = status
return params
2013-06-01 00:57:28 +02:00
} else {
return {
msg: msg,
status: status,
2013-10-26 14:18:36 +02:00
}
2013-06-01 00:57:28 +02:00
}
}
/*
* Errors caused by malfunctioned code
*/
var AppError = function(params, constr) {
2013-10-26 14:18:36 +02:00
Error.captureStackTrace(this, constr || this)
params = parse_error_params(params, 500, 'Internal server error')
this.msg = params.msg
this.status = params.status
}
util.inherits(AppError, Error)
AppError.prototype.name = 'Application Error'
2013-06-01 00:57:28 +02:00
/*
* Errors caused by wrong request
*/
var UserError = function(params, constr) {
2013-10-26 14:18:36 +02:00
params = parse_error_params(params, 404, 'The requested resource was not found')
this.msg = params.msg
this.status = params.status
}
util.inherits(UserError, Error)
UserError.prototype.name = 'User Error'
2013-06-01 00:57:28 +02:00
2013-06-20 15:07:34 +02:00
/*
* Mimic filesystem errors
*/
var FSError = function(code) {
2013-10-26 14:18:36 +02:00
this.code = code
}
util.inherits(UserError, Error)
UserError.prototype.name = 'FS Error'
2013-06-20 15:07:34 +02:00
2013-10-26 14:18:36 +02:00
module.exports.AppError = AppError
module.exports.UserError = UserError
module.exports.FSError = FSError
2013-06-01 00:57:28 +02:00