From 6b7c973eb488d3071e6acf183fa3948a3f81b17f Mon Sep 17 00:00:00 2001 From: Pieter Wigboldus Date: Mon, 28 Jun 2021 09:15:25 +0200 Subject: [PATCH] Add a new field to store who is sending the error Also add the file extensions to the tests --- package-lock.json | 110 ++++++++++---------- package.json | 2 +- src/__tests__/app-error.unit.js | 6 +- src/__tests__/not-found-error.unit.js | 2 +- src/__tests__/not-implemented-error.unit.js | 2 +- src/__tests__/server-error.unit.js | 2 +- src/__tests__/validation-error.unit.js | 2 +- src/app-error.js | 8 +- src/schemas/error.js | 2 +- 9 files changed, 70 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 052ebe1..1c7edcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hckrnews/error", - "version": "0.2.0", + "version": "0.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@hckrnews/error", - "version": "0.2.0", + "version": "0.2.1", "license": "MIT", "dependencies": { "@hckrnews/validator": "^5.0.1" @@ -2494,9 +2494,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz", + "integrity": "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" @@ -2542,9 +2542,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "15.12.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", - "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", + "version": "15.12.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", + "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", "dev": true }, "node_modules/@types/prettier": { @@ -3287,9 +3287,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", + "version": "1.0.30001240", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz", + "integrity": "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==", "dev": true, "funding": { "type": "opencollective", @@ -3637,9 +3637,9 @@ } }, "node_modules/decimal.js": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.0.tgz", - "integrity": "sha512-MrQRs2gyD//7NeHi9TtsfClkf+cFAewDz+PZHR8ILKglLmBMyVX3ymQ+oeznE3tjrS7beTN+6JXb2C3JDHm7ug==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "node_modules/dedent": { @@ -3807,9 +3807,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.757", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.757.tgz", - "integrity": "sha512-kP0ooyrvavDC+Y9UG6G/pUVxfRNM2VTJwtLQLvgsJeyf1V+7shMCb68Wj0/TETmfx8dWv9pToGkVT39udE87wQ==", + "version": "1.3.759", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz", + "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==", "dev": true }, "node_modules/emittery": { @@ -4795,17 +4795,16 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { "node": ">=8" @@ -8444,9 +8443,9 @@ } }, "node_modules/prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -10022,9 +10021,9 @@ "dev": true }, "node_modules/whatwg-url": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.6.0.tgz", - "integrity": "sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "dependencies": { "lodash": "^4.7.0", @@ -12030,9 +12029,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz", + "integrity": "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -12078,9 +12077,9 @@ "dev": true }, "@types/node": { - "version": "15.12.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", - "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", + "version": "15.12.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", + "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", "dev": true }, "@types/prettier": { @@ -12655,9 +12654,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", + "version": "1.0.30001240", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz", + "integrity": "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==", "dev": true }, "caseless": { @@ -12937,9 +12936,9 @@ } }, "decimal.js": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.0.tgz", - "integrity": "sha512-MrQRs2gyD//7NeHi9TtsfClkf+cFAewDz+PZHR8ILKglLmBMyVX3ymQ+oeznE3tjrS7beTN+6JXb2C3JDHm7ug==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "dedent": { @@ -13067,9 +13066,9 @@ } }, "electron-to-chromium": { - "version": "1.3.757", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.757.tgz", - "integrity": "sha512-kP0ooyrvavDC+Y9UG6G/pUVxfRNM2VTJwtLQLvgsJeyf1V+7shMCb68Wj0/TETmfx8dWv9pToGkVT39udE87wQ==", + "version": "1.3.759", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz", + "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==", "dev": true }, "emittery": { @@ -13812,17 +13811,16 @@ "dev": true }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { @@ -16560,9 +16558,9 @@ "dev": true }, "prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "prettier-linter-helpers": { @@ -17836,9 +17834,9 @@ "dev": true }, "whatwg-url": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.6.0.tgz", - "integrity": "sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { "lodash": "^4.7.0", diff --git a/package.json b/package.json index 1b5f3c0..ad293e4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@hckrnews/error", "description": "Extended Errors", - "version": "0.2.0", + "version": "0.2.1", "author": { "name": "Pieter Wigboldus", "url": "https://hckr.news/" diff --git a/src/__tests__/app-error.unit.js b/src/__tests__/app-error.unit.js index 7624206..28cf074 100644 --- a/src/__tests__/app-error.unit.js +++ b/src/__tests__/app-error.unit.js @@ -1,5 +1,5 @@ /** global: describe */ -import { AppError } from '../index'; +import { AppError } from '../index.js'; describe('App Error test', () => { it('It should create a app error', () => { @@ -7,6 +7,7 @@ describe('App Error test', () => { value: 'test', type: String, message: 'Example text', + me: AppError, }); expect(error instanceof AppError).toEqual(true); @@ -18,6 +19,7 @@ describe('App Error test', () => { expect(error.type).toEqual(String); expect(error.date.constructor).toEqual(Date); expect(error.stack.includes('AppError: Example text')).toEqual(true); + expect(error.me).toEqual(AppError); }); it('It should handle invalid error values', () => { @@ -25,6 +27,7 @@ describe('App Error test', () => { value: 'test', type: 'string', message: 'Example text', + me: AppError, }); expect(error instanceof AppError).toEqual(true); @@ -41,5 +44,6 @@ describe('App Error test', () => { expect(error.type).toEqual(Error); expect(error.date.constructor).toEqual(Date); expect(error.stack.includes('AppError: Invalid error')).toEqual(true); + expect(error.me).toEqual(AppError); }); }); diff --git a/src/__tests__/not-found-error.unit.js b/src/__tests__/not-found-error.unit.js index 203f0be..551dcf7 100644 --- a/src/__tests__/not-found-error.unit.js +++ b/src/__tests__/not-found-error.unit.js @@ -1,5 +1,5 @@ /** global: describe */ -import { NotFoundError } from '../index'; +import { NotFoundError } from '../index.js'; describe('Not Found Error test', () => { it('It should create a not found error', () => { diff --git a/src/__tests__/not-implemented-error.unit.js b/src/__tests__/not-implemented-error.unit.js index 8433dac..2ef0c54 100644 --- a/src/__tests__/not-implemented-error.unit.js +++ b/src/__tests__/not-implemented-error.unit.js @@ -1,5 +1,5 @@ /** global: describe */ -import { NotImplementedError } from '../index'; +import { NotImplementedError } from '../index.js'; describe('Not Implemented Error test', () => { it('It should create a not implemented error', () => { diff --git a/src/__tests__/server-error.unit.js b/src/__tests__/server-error.unit.js index e9d4677..ce0bb63 100644 --- a/src/__tests__/server-error.unit.js +++ b/src/__tests__/server-error.unit.js @@ -1,5 +1,5 @@ /** global: describe */ -import { ServerError } from '../index'; +import { ServerError } from '../index.js'; describe('Server Error test', () => { it('It should create a server error', () => { diff --git a/src/__tests__/validation-error.unit.js b/src/__tests__/validation-error.unit.js index 6b54ff4..de6ed3a 100644 --- a/src/__tests__/validation-error.unit.js +++ b/src/__tests__/validation-error.unit.js @@ -1,5 +1,5 @@ /** global: describe */ -import { ValidationError } from '../index'; +import { ValidationError } from '../index.js'; describe('Validation Error test', () => { it('It should create a validation error', () => { diff --git a/src/app-error.js b/src/app-error.js index 5e09f90..1ca3174 100644 --- a/src/app-error.js +++ b/src/app-error.js @@ -5,14 +5,14 @@ const validator = new Validator(errorSchema); export default (error = Error) => class AppError extends error { - constructor({ value = null, type = null, message }) { + constructor({ value = null, type = null, message, me = null }) { super(message); if (Error.captureStackTrace) { Error.captureStackTrace(this, AppError); } - this.setValues({ value, type }); + this.setValues({ value, type, me }); } get name() { @@ -27,9 +27,10 @@ export default (error = Error) => return this.hasErrors ? 500 : this.errorStatus; } - setValues({ value, type }) { + setValues({ value, type, me }) { this.value = value; this.type = type; + this.me = me; this.date = new Date(); if (!this.validate()) { @@ -51,6 +52,7 @@ export default (error = Error) => status: this.errorStatus, type: this.type, date: this.date, + me: this.me, }; } diff --git a/src/schemas/error.js b/src/schemas/error.js index c60ee6c..11bf4fe 100644 --- a/src/schemas/error.js +++ b/src/schemas/error.js @@ -5,4 +5,4 @@ export default { status: Number, 'type?': Function, date: Date, -};; +};