{"_id":"@da-fat-company/advanced-error","_rev":"4-63416fe3ab48a919209e72aaffa4feed","name":"@da-fat-company/advanced-error","description":"Node Js Error Extended class with advanced features","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@da-fat-company/advanced-error","version":"1.0.0","description":"Node Js Error Extended class with advanced features","main":"index.js","scripts":{"test":"dotbox test","lint":"dotbox lint","build":"dotbox build","check-version":"git-npm-version-checker -v"},"repository":{"type":"git","url":"git+https://gitlab.com/Da-Fat-Company/advanced-error.git"},"keywords":["error","node"],"author":{"name":"[L0gIn] Basile Trujillo"},"license":"MIT","bugs":{"url":"https://gitlab.com/Da-Fat-Company/advanced-error/issues"},"homepage":"https://gitlab.com/Da-Fat-Company/advanced-error","dependencies":{"http-status":"^1.0.1"},"devDependencies":{"chai":"^3.5.0","devops-toolbox":"^1.5.0","eslint":"^3.19.0","eslint-config-exaprint":"^0.2.6","git-npm-version-checker":"^1.1.0","ink-docstrap":"^1.3.0","jsdoc":"^3.4.3","mocha":"^3.4.2","nsp":"^2.6.3","nyc":"^10.3.2","plato":"^1.7.0"},"directories":{"test":"test"},"gitHead":"ec30c7b0a2fcdabcda6232cea5228508fee47a1c","_id":"@da-fat-company/advanced-error@1.0.0","_shasum":"e2944898baa13d306390e9578911a2037ca950f5","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"l0gin","email":"basiletrujillo@gmail.com"},"dist":{"shasum":"e2944898baa13d306390e9578911a2037ca950f5","tarball":"https://registry.npmjs.org/@da-fat-company/advanced-error/-/advanced-error-1.0.0.tgz","integrity":"sha512-I5yNLjr51G3mhgtUUdIv0FMso1jNE85r42CUIgYyWxj3PjNfefXJJo6uBNHrZGvDq/yx1i3uV/+TRBLYlUFBMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6Ozjkf++QP1RVsmDN7objRO9/a++pGvd3v6POIRPoRAiAN0Ag1PCPhsMCWINoGr7DYQaklgv1EzJY7//P3kgFr0g=="}]},"maintainers":[{"name":"l0gin","email":"basiletrujillo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/advanced-error-1.0.0.tgz_1497267210103_0.9938154304400086"}},"1.1.0":{"name":"@da-fat-company/advanced-error","version":"1.1.0","description":"Node Js Error Extended class with advanced features","main":"index.js","scripts":{"test":"dotbox test","lint":"dotbox lint","build":"dotbox build","check-version":"git-npm-version-checker -v"},"repository":{"type":"git","url":"git+https://gitlab.com/Da-Fat-Company/advanced-error.git"},"keywords":["error","node"],"author":{"name":"[L0gIn] Basile Trujillo"},"license":"MIT","bugs":{"url":"https://gitlab.com/Da-Fat-Company/advanced-error/issues"},"homepage":"https://gitlab.com/Da-Fat-Company/advanced-error","dependencies":{"http-status":"^1.0.1"},"devDependencies":{"chai":"^3.5.0","devops-toolbox":"^1.5.0","eslint":"^3.19.0","eslint-config-exaprint":"^0.2.6","git-npm-version-checker":"^1.1.0","ink-docstrap":"^1.3.0","jsdoc":"^3.4.3","mocha":"^3.4.2","nsp":"^2.6.3","nyc":"^10.3.2","plato":"^1.7.0"},"directories":{"test":"test"},"gitHead":"af169ba677fe64a78816d38b7251f8fed5a5a018","_id":"@da-fat-company/advanced-error@1.1.0","_shasum":"d06969ef5d99617e57dfe9a6da72fdca726ec189","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"l0gin","email":"basiletrujillo@gmail.com"},"dist":{"shasum":"d06969ef5d99617e57dfe9a6da72fdca726ec189","tarball":"https://registry.npmjs.org/@da-fat-company/advanced-error/-/advanced-error-1.1.0.tgz","integrity":"sha512-QDgxP0q2LWix/KbEik2Sb3N9+DBnD/UAJqSajj2OELNN7ANkLdWF00lct7dEqdlTtQ6xJ+ymyiY4ByQJLkfu/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNeMXLHpn6FcptcdkAEMy/u5VJ4SZctm5jOLfyY7tnpAiEAydRExQKvb1Ac0+EOfi7tj8BR+Di0jAzfxeE2gPK6vrs="}]},"maintainers":[{"email":"la.toile.cosmique@gmail.com","name":"toile-cosmique"},{"email":"basiletrujillo@gmail.com","name":"l0gin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/advanced-error-1.1.0.tgz_1497270390604_0.3023488831240684"}}},"readme":"# Advanced Error\n\n[![NPM Badge](https://img.shields.io/npm/v/@da-fat-company/advanced-error.svg)](https://www.npmjs.com/package/@da-fat-company/advanced-error)\n[![build status](https://gitlab.com/Da-Fat-Company/advanced-error/badges/master/build.svg)](https://gitlab.com/Da-Fat-Company/advanced-error/commits/master)\n[![coverage report](https://gitlab.com/Da-Fat-Company/advanced-error/badges/master/coverage.svg)](https://da-fat-company.gitlab.io/advanced-error/coverage)\n[![JsDoc report](https://img.shields.io/badge/jsdoc-link-green.svg)](https://da-fat-company.gitlab.io/advanced-error/jsdoc)\n[![Plato report](https://img.shields.io/badge/plato-link-green.svg)](https://da-fat-company.gitlab.io/advanced-error/plato)\n\nNode Js Error Extended class with advanced features\n\n## Install\n\n```bash\n    $ npm i --save @da-fat-company/advanced-error\n```\n\n## AdvancedError\n\n### Throw using object\n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nthrow new AdvancedError({\n  title: 'Error title',\n  message: 'Error description',\n  status: HTTPStatus.BAD_REQUEST,\n  privacy: AdvancedError.IS_PUBLIC,\n  metadata: {\n    foo: 'bar'\n  }\n});\n```\n\n### Throw from standard Error\n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nconst error = new Error('Uncaught exception');\n\nthrow AdvancedError.createFromError(error);\n```\n\n### Throw from standard Error adding custom attributes as object\n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nconst error = new Error('Uncaught exception');\nconst attributes = {\n  title: 'Error title',\n  status: HTTPStatus.BAD_REQUEST,\n  privacy: AdvancedError.IS_PRIVATE,\n  metadata: {\n    foo: 'bar'\n  }\n}\nthrow AdvancedError.createFromError(error, attributes);\n```\n\n### Throw from standard Error adding custom attributes as arguments (legacy style)\n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nconst error = new Error('Uncaught exception');\nconst attributes = {\n  title: 'Error title',\n  status: HTTPStatus.BAD_REQUEST,\n  privacy: AdvancedError.IS_PUBLIC,\n  metadata: {\n    foo: 'bar'\n  }\n}\nthrow AdvancedError.createFromError(\n  error,\n  'Error title',\n  HTTPStatus.BAD_REQUEST, // Status code\n  AdvancedError.IS_PUBLIC, // Privacy\n  {foo: 'bar'} // Some metadata\n);\n```\n\n### Add Middlewares\n\nMiddlewares are functions called at the end of AdvancedError constructor.\nWhen you add a middleware it is available globaly for all your AdvancedError usage (only if you add middleware first).\n \n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nAdvancedError.use(() => {\n  console.log('This log will be shown for each thrown AdvancedError');\n});\n\nAdvancedError.use((error) => {\n  console.log('The current AdvancedError object is passed as first argument', error);\n});\n\nAdvancedError.use((error) => {\n  if (error.privacy === AdvancedError.IS_PUBLIC) {\n    console.log('Do something is the error is public');\n  } else {\n    console.log('Do something is the error is private');\n  }\n});\n\nthrow new AdvancedError({\n  title: 'Error title',\n  message: 'Error description',\n  status: HTTPStatus.BAD_REQUEST,\n  privacy: AdvancedError.IS_PUBLIC,\n  metadata: {\n    foo: 'bar'\n  }\n});\n```\n\n### Remove Middlewares\n\n```javascript\n'use strict';\n\nconst HTTPStatus = require('http-status');\nconst AdvancedError = require('@da-fat-company/advanced-error');\n\nAdvancedError.resetMiddlewares(); // This will remove all existing middleware\n\nthrow new AdvancedError({\n  title: 'Error title',\n  message: 'Error description',\n  status: HTTPStatus.BAD_REQUEST,\n  privacy: AdvancedError.IS_PUBLIC,\n  metadata: {\n    foo: 'bar'\n  }\n});\n```","maintainers":[{"email":"la.toile.cosmique@gmail.com","name":"toile-cosmique"},{"email":"basiletrujillo@gmail.com","name":"l0gin"}],"time":{"modified":"2022-06-12T16:51:08.508Z","created":"2017-06-12T11:33:31.155Z","1.0.0":"2017-06-12T11:33:31.155Z","1.1.0":"2017-06-12T12:26:31.677Z"},"homepage":"https://gitlab.com/Da-Fat-Company/advanced-error","keywords":["error","node"],"repository":{"type":"git","url":"git+https://gitlab.com/Da-Fat-Company/advanced-error.git"},"author":{"name":"[L0gIn] Basile Trujillo"},"bugs":{"url":"https://gitlab.com/Da-Fat-Company/advanced-error/issues"},"license":"MIT","readmeFilename":"README.md"}