{"_id":"@emad-test/monmedx-common","_rev":"2-f80b88d87b6adc15622a5044f0599970","name":"@emad-test/monmedx-common","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.3":{"name":"@emad-test/monmedx-common","version":"1.0.3","description":"commons-service","main":"./build/index.js","types":"./build/index.d.ts","_requiredBy":["/src"],"scripts":{"clean":"del ./build/*","build":"npm run clean && tsc"},"keywords":[],"author":"","license":"ISC","dependencies":{"@nestjs/common":"^7.0.1","@nestjs/core":"^7.0.1","@nestjs/jwt":"^7.2.0","@nestjs/passport":"^7.1.5","aws-sdk":"^2.849.0","axios":"^0.21.0","class-transformer":"^0.3.1","class-validator":"^0.12.2","cls-hooked":"^4.2.2","jsonwebtoken":"^8.5.1","jwk-to-pem":"^2.0.4","jwks-rsa":"^1.12.0","libphonenumber-js":"^1.9.11","lodash":"^4.17.20","passport":"^0.4.1","passport-jwt":"^4.0.0","rxjs":"^6.6.3","sequelize":"^6.5.0","uuidv4":"^6.2.6","winston":"^3.3.3"},"devDependencies":{"@babel/cli":"^7.13.0","@babel/core":"^7.13.8","@babel/node":"^7.13.0","@babel/preset-env":"^7.13.9","@types/jsonwebtoken":"^8.5.0","@types/jwk-to-pem":"^2.0.0","@types/passport-jwt":"^3.0.5","del-cli":"^3.0.1","typescript":"^4.1.3"},"gitHead":"5984d1d656e4a95ab79dafed39b9e94be1ef0eb6","_id":"@emad-test/monmedx-common@1.0.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.9","dist":{"integrity":"sha512-LF/5P2zTv5zEZ7Efq5zTOJtqaPFEH9sMdAFBT+koAqmsJNtfekHm3RDQWi2E4msEkkqQxpypHjEHrrnpEjp+Hg==","shasum":"bdde0f3872cae7547625b3c46c4170900d83aa12","tarball":"https://registry.npmjs.org/@emad-test/monmedx-common/-/monmedx-common-1.0.3.tgz","fileCount":199,"unpackedSize":172913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbXXQCRA9TVsSAnZWagAAczgP/Rr1KSUgN8uxIF+MdsV1\nE/UCy5bUTOr8VJGt8tWgItLQpwSjOZ4uQPlaTJQtVYRTEpMHDWAmY3UhO3cc\nHp2D+bh1w42yW/wLGZMQy8KYUo2NCT28L4oy9xrwVilZ2EomeAZm/wwxXfI/\nmnqpwhhNAUZP/S2+1+pc41dKYId5sTjjrJNqPvXnAkP6omRTTikcI2pMVK3q\nzAJqXtA+xlvM3b8QSkW2Svzmjg8BTIppYijvXYswClZPnM2kiRA4TFJ1Vtq6\nxqsdmtDw2/UUGPuNbsO9SpBOzebYYWt2YLlM94IvK3UpUeWPe9SxskPwBwkI\nDGz1D/ksZHbgPeb7zdlsb4gCkm6Nn/3A8yDP3bpKqJStrWDZ+wgZW9M0Pbv4\nlOrUoyxmGSCvflAmrlAUC7tkvLp/85FU1Y3tpYzPBhHN8CqV/wS/KGE1fbhx\nWZ+6wdXKN31U81V26h88db5OP6Fb5M/OHTLLoLAWg8FZAx/u+/2Ir/yRb4V6\ng/6bYyZmxYfyXF3uzHBtWF0Vzwj4WB0Ew9i0gsIHm8lvnmZHt3paTbj9LmQA\nKyRwBtXzDnsaRWfJaGeqYUHRPlHbltMOSD8ZMg0yP8bvtHtW/SAthqmlfzx4\nFB1PN/Vup9gO10MtDh65VdR3JktDLdQTYUN76ng4maLOxrUlxUQmAKqGvEvL\n4SjR\r\n=2Wgj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkMfvQaP2X3cLsfm3LhEwR8OT8u7AgyiXybWG0Vi2hhAiEAmTtyyNTSEDeY4k/D5QtyiQN7guF2l1cicbbSyO3eZ84="}]},"_npmUser":{"name":"emad-darabeh","email":"emad.dar97@gmail.com"},"directories":{},"maintainers":[{"name":"emad-darabeh","email":"emad.dar97@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monmedx-common_1.0.3_1617786320289_0.7487104532686379"},"_hasShrinkwrap":false},"1.0.4":{"name":"@emad-test/monmedx-common","version":"1.0.4","description":"commons-service","main":"./src/index.ts","types":"./build/index.d.ts","scripts":{"clean":"del ./build/*","build":"npm run clean && tsc"},"keywords":[],"author":"","license":"ISC","dependencies":{"@nestjs/common":"^7.0.1","@nestjs/core":"^7.0.1","@nestjs/jwt":"^7.2.0","@nestjs/passport":"^7.1.5","aws-sdk":"^2.849.0","axios":"^0.21.0","class-transformer":"^0.3.1","class-validator":"^0.12.2","cls-hooked":"^4.2.2","jsonwebtoken":"^8.5.1","jwk-to-pem":"^2.0.4","jwks-rsa":"^1.12.0","libphonenumber-js":"^1.9.11","lodash":"^4.17.20","passport":"^0.4.1","passport-jwt":"^4.0.0","rxjs":"^6.6.3","sequelize":"^6.5.0","uuidv4":"^6.2.6","winston":"^3.3.3"},"devDependencies":{"@babel/cli":"^7.13.0","@babel/core":"^7.13.8","@babel/node":"^7.13.0","@babel/preset-env":"^7.13.9","@types/jsonwebtoken":"^8.5.0","@types/jwk-to-pem":"^2.0.0","@types/passport-jwt":"^3.0.5","del-cli":"^3.0.1","typescript":"^4.1.3"},"gitHead":"3bec20c56631e978e5c0ee9a38d8a33c3ef93aea","_id":"@emad-test/monmedx-common@1.0.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.9","dist":{"integrity":"sha512-5r97eHANjgEX7QrAOZScunBW34b5F5Vas5vFP7EAWJ9Ws+5PAwbu8+RlzJHFQcEGdp6piLmZhGVFzU73r7phbg==","shasum":"4caa8c4144b2f73f205b9f834c26f107d4acedba","tarball":"https://registry.npmjs.org/@emad-test/monmedx-common/-/monmedx-common-1.0.4.tgz","fileCount":199,"unpackedSize":172876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbXfECRA9TVsSAnZWagAAV3EQAJ7usbjtP6yVD+Uxeh1Y\npd707iyiHhFzTGhmlaY0byWR4Jttyu1Jk/8/X22MTlrI06jS0Hj8Q4WlWW+l\neO0wn2NozQznChD/NvCyqeFvkCZmlj7WIs0+UJ+AeAKxI4tCFabinKY4Ebsa\nHvEQFoDGoR2Be6HIbaA9oIpa221Mgpo+Ad6oDhadfigLDOhCAZS4HVIsFFBk\nxoFY5OzhoNXw/lYaQpcEIARkxYYNBZ33UR5UVVT3mMm+2Kd0chxN5w0dvflM\ny2CG6GKcqQ2c5fwmY89plh7O6PuBlZbzes0cnNhMP5fXf5zmnBk7ru2RF8A5\n5PPtkKt2R5BGuMRdcl97T6a4Api+F90oD4/WWPCseEbl8/KyVWQ1nkGAqIqU\nEebofHSAk4na8sBMM9w1rcczeh8USu5VOjNp1XbNz8LoMwD/fDHte7Vk8f7D\nbdFZtysYIDvDi+4CdDcE6uGKBR/PZYXbVNyf/lcZT24taM6IjFK38SKUAT1N\n2xbOp4GhQPEjdNFFahg+rgakijJiS2xMv3yLGO0xVaKMfvJDC24uV/kMRoB1\noueughWvz27JvP27F+dzcmy0gT5XJGQ6JUiOJuehh6eGuwvcwqi59tDksgIU\nIJiUfJKBkuDsdEX+uXD7YYzhgZ8+HueuNUGryodKikvsmrX54+HGxiaQfKOW\nM+5A\r\n=9DNl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHqW4FX5p6wWZ24JbQ1JcprDK6MiHWIWzrtRK1oHvZCAiAoZfM45f7eUdZ/+AlXbanr6qQLMnATj5U7msmARXRY3Q=="}]},"_npmUser":{"name":"emad-darabeh","email":"emad.dar97@gmail.com"},"directories":{},"maintainers":[{"name":"emad-darabeh","email":"emad.dar97@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monmedx-common_1.0.4_1617786820438_0.4897718737640655"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-07T09:05:20.010Z","1.0.3":"2021-04-07T09:05:20.490Z","modified":"2022-04-05T07:26:00.071Z","1.0.4":"2021-04-07T09:13:40.618Z"},"maintainers":[{"name":"emad-darabeh","email":"emad.dar97@gmail.com"}],"description":"commons-service","keywords":[],"license":"ISC","readme":"# commons-service\n\ncommons-service\n\n# HttpExceptionFilter\n\nto Catch every unhandled exception (regardless of the exception type) and make the response as\n```\n{\n    errors: [\n        feilds: string[],\n        messages: string,\n        code: string\n    ]\n}\n```\n## this Filter handle three types of errors\n- validation errors from the dto level\n- unexpected error\n-  validation in the business logic but at this level, you want to handle the structure of the error manually like that\n```\nthrow new ConflictException({\n            fields: ['feild'],\n            code: 'CONFLICTS',\n            message: 'your message',\n          });\n```\n\n## How to use it on the nestjs project\n\n- in the main.ts file, import the module\n```\nimport { HttpExceptionFilter } from '@mon-medic/common';\n```\n\n- in the bootstrap function add this line\n```\n  app.useGlobalFilters(new HttpExceptionFilter());\n```\n\n","readmeFilename":"README.md"}