From 6954f54ca6cfd0113460f42f1bdeb005c1a7eb16 Mon Sep 17 00:00:00 2001 From: Tobias Schneider Date: Thu, 3 Jun 2021 19:48:04 +0200 Subject: [PATCH] Added debug mode --- index.d.ts | 13 +++++++++++++ index.js | 22 +++++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index ab7cf4e..58c1b7d 100644 --- a/index.d.ts +++ b/index.d.ts @@ -14,6 +14,13 @@ declare class Router { * @type {Route[]} */ protected routes: Route[]; + /** + * Debug Mode + * + * @protected + * @type {boolean} + */ + protected debugMode: boolean = false; /** * CORS Config * @@ -160,6 +167,12 @@ declare class Router { * @property {number} maxAge Access-Control-Max-Age (default: `86400`) * @property {number} optionsSuccessStatus Return status code for OPTIONS request (default: `204`) */ + /** + * Debug Mode + * + * @param {boolean} state Whether to turn on or off debug mode (default: true) + */ + debug(state: boolean = true): void /** * Enable CORS support * diff --git a/index.js b/index.js index a9e6443..81b148f 100644 --- a/index.js +++ b/index.js @@ -16,6 +16,14 @@ class Router { */ this.routes = [] + /** + * Debug Mode + * + * @protected + * @type {boolean} + */ + this.debugMode = false + /** * CORS Config * @@ -193,6 +201,15 @@ class Router { return this.any(url, handlers) } + /** + * Debug Mode + * + * @param {boolean} state Whether to turn on or off debug mode (default: true) + */ + debug(state = true) { + this.debugMode = state + } + /** * CORS Config * @@ -302,7 +319,7 @@ class Router { } const route = this.getRoute(request) if (!route) { - return new Response('', { + return new Response(this.debugMode ? 'Route not found!' : '', { status: 404 }) } @@ -327,8 +344,7 @@ class Router { } await runner(0) } catch(err) { - console.error(err) - return new Response('', { + return new Response(this.debugMode ? err.stack : '', { status: 500 }) }