1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-08 23:25:51 +01:00
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,
};
} else if (typeof(params) === 'number') {
return {
msg: msg,
status: params,
};
} else if (utils.is_object(params)) {
2013-06-01 00:57:28 +02:00
if (params.msg == null) params.msg = msg;
if (params.status == null) params.status = status;
return params;
} else {
return {
msg: msg,
status: status,
};
}
}
/*
* Errors caused by malfunctioned code
*/
var AppError = function(params, constr) {
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';
/*
* Errors caused by wrong request
*/
var UserError = function(params, constr) {
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-20 15:07:34 +02:00
/*
* Mimic filesystem errors
*/
var FSError = function(code) {
this.code = code;
};
util.inherits(UserError, Error);
UserError.prototype.name = 'FS Error';
2013-06-01 00:57:28 +02:00
module.exports.AppError = AppError;
module.exports.UserError = UserError;
2013-06-20 15:07:34 +02:00
module.exports.FSError = FSError;
2013-06-01 00:57:28 +02:00