wip(shared): adapt to v3

This commit is contained in:
Matteo Pagliazzi
2016-03-13 22:26:32 +01:00
parent 13a86c3858
commit 8e3284a4e3
34 changed files with 134 additions and 330 deletions

View File

@@ -0,0 +1,39 @@
import extendableBuiltin from './extendableBuiltin';
// Base class for custom application errors
// It extends Error and capture the stack trace
export class CustomError extends extendableBuiltin(Error) {
constructor () {
super();
Error.captureStackTrace(this, this.constructor);
}
}
// We specify an httpCode for all errors so that they can be used in the API too
export class NotAuthorized extends CustomError {
constructor (customMessage) {
super();
this.name = this.constructor.name;
this.httpCode = 401;
this.message = customMessage || 'Not authorized.';
}
}
export class BadRequest extends CustomError {
constructor (customMessage) {
super();
this.name = this.constructor.name;
this.httpCode = 400;
this.message = customMessage || 'Bad request.';
}
}
export class NotFound extends CustomError {
constructor (customMessage) {
super();
this.name = this.constructor.name;
this.httpCode = 404;
this.message = customMessage || 'Not found.';
}
}

View File

@@ -0,0 +1,11 @@
// Babel 6 doesn't support extending native class (Error, Array, ...)
// This function makes it possible to extend native classes with the same results as Babel 5
module.exports = function extendableBuiltin (klass) {
function ExtendableBuiltin () {
klass.apply(this, arguments);
}
ExtendableBuiltin.prototype = Object.create(klass.prototype);
Object.setPrototypeOf(ExtendableBuiltin, klass);
return ExtendableBuiltin;
};