From e5c263a2a1eaaca5e1ddf9a31496d697c25ffe2f Mon Sep 17 00:00:00 2001 From: Santosh Shinde Date: Sun, 17 Mar 2024 22:15:52 +0530 Subject: [PATCH 1/2] upgrade npm modules --- package-lock.json | 194 ++++++++++++++++++++++++++++++++-------------- package.json | 2 +- test-report.xml | 50 ++++++------ 3 files changed, 161 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index 41290c8..a40ab14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "@types/express": "^4.17.21", - "@types/node": "^20.11.27", + "@types/node": "^20.11.28", "@types/swagger-ui-express": "^4.1.6", "@types/winston": "^2.4.4", "cors": "^2.8.5", @@ -1596,9 +1596,9 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.11.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", + "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", "dependencies": { "undici-types": "~5.26.4" } @@ -2259,16 +2259,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "peer": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2433,12 +2423,15 @@ "dev": true }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/body-parser": { @@ -2602,9 +2595,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "version": "1.0.30001598", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001598.tgz", + "integrity": "sha512-j8mQRDziG94uoBfeFuqsJUNECW37DXpnvhcMJMdlH2u3MRkq1sAI0LJcXP1i/Py0KbSIC4UDj8YHPrTn5YsL+Q==", "dev": true, "funding": [ { @@ -2927,6 +2920,57 @@ "dev": true, "peer": true }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3120,9 +3164,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.703", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.703.tgz", - "integrity": "sha512-094ZZC4nHXPKl/OwPinSMtLN9+hoFkdfQGKnvXbY+3WEAYtVDpz9UhJIViiY6Zb8agvqxiaJzNG9M+pRZWvSZw==", + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", "dev": true }, "node_modules/emittery": { @@ -3167,17 +3211,21 @@ } }, "node_modules/es-abstract": { - "version": "1.22.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", - "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.1.tgz", + "integrity": "sha512-r+YVn6hTqQb+P5kK0u3KeDqrmhHKm+OhU/Mw4jSL4eQtOxXmp75fXIUUb3sUqFZOlb/YtW5JRaIfEC3UyjYUZQ==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", @@ -3188,10 +3236,11 @@ "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.3", @@ -3202,7 +3251,7 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", + "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", @@ -3212,7 +3261,7 @@ "typed-array-byte-offset": "^1.0.2", "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -3247,27 +3296,38 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", - "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", "dev": true, "peer": true, "dependencies": { - "asynciterator.prototype": "^1.0.0", "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.4", + "es-abstract": "^1.23.0", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.1", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.0" + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -3670,9 +3730,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", - "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "peer": true, "dependencies": { @@ -4851,6 +4911,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -6918,17 +6993,17 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", - "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "peer": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0", - "get-intrinsic": "^1.2.3", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -7477,14 +7552,15 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7494,14 +7570,14 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" diff --git a/package.json b/package.json index b66ae22..c7eaa3d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "license": "Apache-2.0", "dependencies": { "@types/express": "^4.17.21", - "@types/node": "^20.11.27", + "@types/node": "^20.11.28", "@types/swagger-ui-express": "^4.1.6", "@types/winston": "^2.4.4", "cors": "^2.8.5", diff --git a/test-report.xml b/test-report.xml index 9166629..23a2e76 100644 --- a/test-report.xml +++ b/test-report.xml @@ -1,43 +1,43 @@ + + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - - - - - - - + + + - - - + + + - - - - \ No newline at end of file From 42284ecdd2352465de82a2417d348f612dd644da Mon Sep 17 00:00:00 2001 From: Santosh Shinde Date: Mon, 18 Mar 2024 16:49:50 +0530 Subject: [PATCH 2/2] fixed naming conventions --- coverage/lcov.info | 47 ++++++++++--------- src/App.ts | 3 +- src/abstractions/ApiResponses.ts | 2 +- .../{BaseApi.ts => BaseController.ts} | 4 +- .../system-status/system-status.controller.ts | 4 +- .../system-status/system-status.types.ts | 32 ++++++------- src/middleware/error-handler.ts | 2 +- test-report.xml | 36 +++++++------- .../components/SystemStatusController.spec.ts | 10 ++-- 9 files changed, 71 insertions(+), 69 deletions(-) rename src/components/{BaseApi.ts => BaseController.ts} (87%) diff --git a/coverage/lcov.info b/coverage/lcov.info index ea2ea0c..343cfe7 100644 --- a/coverage/lcov.info +++ b/coverage/lcov.info @@ -1,11 +1,11 @@ TN: SF:src/App.ts FN:16,(anonymous_1) -FN:38,(anonymous_2) -FN:47,(anonymous_3) -FN:67,(anonymous_4) -FN:77,(anonymous_5) -FN:84,(anonymous_6) +FN:39,(anonymous_2) +FN:48,(anonymous_3) +FN:68,(anonymous_4) +FN:78,(anonymous_5) +FN:85,(anonymous_6) FNF:6 FNH:6 FNDA:2,(anonymous_1) @@ -26,27 +26,30 @@ DA:9,2 DA:11,2 DA:17,2 DA:18,2 -DA:21,2 -DA:24,2 -DA:27,2 -DA:30,2 +DA:19,2 +DA:22,2 +DA:25,2 +DA:28,2 DA:31,2 -DA:39,2 +DA:32,2 DA:40,2 DA:41,2 -DA:51,2 +DA:42,2 DA:52,2 DA:53,2 -DA:57,2 -DA:64,2 -DA:74,1 -DA:81,2 -DA:85,2 -LF:28 -LH:28 -BRDA:30,0,0,2 -BRF:1 -BRH:1 +DA:54,2 +DA:58,2 +DA:65,2 +DA:75,1 +DA:82,2 +DA:86,2 +LF:29 +LH:29 +BRDA:31,0,0,2 +BRDA:31,1,0,2 +BRDA:31,1,1,2 +BRF:3 +BRH:3 end_of_record TN: SF:src/routes.ts @@ -89,7 +92,7 @@ BRF:1 BRH:1 end_of_record TN: -SF:src/components/BaseApi.ts +SF:src/components/BaseController.ts FN:11,(anonymous_1) FN:22,(anonymous_2) FNF:2 diff --git a/src/App.ts b/src/App.ts index 51aebdc..ced207c 100755 --- a/src/App.ts +++ b/src/App.ts @@ -14,6 +14,7 @@ export default class App { public httpServer: http.Server; public async init(): Promise { + const { NODE_ENV } = process.env; this.express = express(); this.httpServer = http.createServer(this.express); @@ -27,7 +28,7 @@ export default class App { this.express.use(addErrorHandler); // In a development/test environment, Swagger will be enabled. - if (process.env.NODE_ENV !== 'prod') { + if (NODE_ENV && NODE_ENV !== 'prod') { this.setupSwaggerDocs(); } } diff --git a/src/abstractions/ApiResponses.ts b/src/abstractions/ApiResponses.ts index cb15116..1c2fe9b 100755 --- a/src/abstractions/ApiResponses.ts +++ b/src/abstractions/ApiResponses.ts @@ -1,3 +1,3 @@ -export interface IStandardResponse { +export type IStandardResponse = { success: boolean; } diff --git a/src/components/BaseApi.ts b/src/components/BaseController.ts similarity index 87% rename from src/components/BaseApi.ts rename to src/components/BaseController.ts index 250a0ae..ed4e306 100755 --- a/src/components/BaseApi.ts +++ b/src/components/BaseController.ts @@ -3,9 +3,9 @@ import { StatusCodes } from 'http-status-codes'; import Crypto from '../lib/crypto'; /** - * Provides services common to all API methods + * Base Controller */ -export default abstract class BaseApi { +export default abstract class BaseController { protected router: Router; constructor() { diff --git a/src/components/system-status/system-status.controller.ts b/src/components/system-status/system-status.controller.ts index 416c2a8..274999a 100755 --- a/src/components/system-status/system-status.controller.ts +++ b/src/components/system-status/system-status.controller.ts @@ -3,7 +3,7 @@ import * as os from 'os'; import * as process from 'process'; import { ReasonPhrases, StatusCodes } from 'http-status-codes'; import ApiError from '../../abstractions/ApiError'; -import BaseApi from '../BaseApi'; +import BaseController from '../BaseController'; import { IServerTimeResponse, IResourceUsageResponse, @@ -14,7 +14,7 @@ import { /** * Status controller */ -export default class SystemStatusController extends BaseApi { +export default class SystemStatusController extends BaseController { public basePath: string = 'system'; /** diff --git a/src/components/system-status/system-status.types.ts b/src/components/system-status/system-status.types.ts index 6bb27a9..d765b49 100755 --- a/src/components/system-status/system-status.types.ts +++ b/src/components/system-status/system-status.types.ts @@ -1,16 +1,16 @@ -export interface INodeJsMemoryUsage { +export type INodeJsMemoryUsage = { rss: number; heapTotal: number; heapUsed: number; external: number; } -export interface INodeJsCpuUsage { +export type INodeJsCpuUsage = { user: number; system: number; } -export interface INodeJsCpuInfo { +export type INodeJsCpuInfo = { model: string; speed: number; times: { @@ -22,26 +22,24 @@ export interface INodeJsCpuInfo { }; } -export interface ISystemMemory { +export type ISystemMemory = { total: number; free: number; percentFree: number; } -export interface INodeJsNetworkInterfaceBase { +export type INodeJsNetworkInterfaceBase = { address: string; netmask: string; mac: string; internal: boolean; } -export interface INodeJsNetworkInterfaceInfoIPv4 - extends INodeJsNetworkInterfaceBase { +export type INodeJsNetworkInterfaceInfoIPv4 = INodeJsNetworkInterfaceBase & { family: 'IPv4'; } -export interface INodeJsNetworkInterfaceInfoIPv6 - extends INodeJsNetworkInterfaceBase { +export type INodeJsNetworkInterfaceInfoIPv6 = INodeJsNetworkInterfaceBase & { family: 'IPv6'; scopeid: number; } @@ -50,12 +48,12 @@ export type INodeJsNetworkInterfaceInfo = | INodeJsNetworkInterfaceInfoIPv4 | INodeJsNetworkInterfaceInfoIPv6; -export interface IServerTimeResponse { +export type IServerTimeResponse = { date: Date; utc: Date; } -export interface INodeJsProcessVersions { +export type INodeJsProcessVersions = { http_parser: string; node: string; v8: string; @@ -66,11 +64,11 @@ export interface INodeJsProcessVersions { openssl: string; } -export interface INodeJsProcessEnv { +export type INodeJsProcessEnv = { [key: string]: string | undefined; } -export interface IProcessInfoResponse { +export type IProcessInfoResponse = { procCpu: INodeJsCpuUsage; memUsage: INodeJsMemoryUsage; env: INodeJsProcessEnv; @@ -80,7 +78,7 @@ export interface IProcessInfoResponse { nodeDependencyVersions: INodeJsProcessVersions; } -export interface IUserInfo { +export type IUserInfo = { username: string; uid: number; gid: number; @@ -88,21 +86,21 @@ export interface IUserInfo { homedir: string; } -export interface IOsInformation { +export type IOsInformation = { platform: string; version: string; totalMemory: number; uptime: number; } -export interface ISystemInfoResponse { +export type ISystemInfoResponse = { cpus: INodeJsCpuInfo[]; network: { [index: string]: INodeJsNetworkInterfaceInfo[] }; os: IOsInformation; currentUser: IUserInfo; } -export interface IResourceUsageResponse { +export type IResourceUsageResponse = { processMemory: INodeJsMemoryUsage; systemMemory: ISystemMemory; processCpu: INodeJsCpuUsage; diff --git a/src/middleware/error-handler.ts b/src/middleware/error-handler.ts index 83ed58d..9892c02 100644 --- a/src/middleware/error-handler.ts +++ b/src/middleware/error-handler.ts @@ -13,7 +13,7 @@ const addErrorHandler = ( ): void => { if (err) { const status: number = err.status || StatusCodes.INTERNAL_SERVER_ERROR; - logger.debug(`REQUEST HANDLING ERROR: + logger.error(`REQUEST HANDLING ERROR: \nERROR:\n${JSON.stringify(err)} \nREQUEST HEADERS:\n${util.inspect(req.headers)} \nREQUEST PARAMS:\n${util.inspect(req.params)} diff --git a/test-report.xml b/test-report.xml index 23a2e76..cb46c1b 100644 --- a/test-report.xml +++ b/test-report.xml @@ -1,43 +1,43 @@ - - - - + - + + - + + + + + + + - + - + - + - + - - - - - - - - + + + + \ No newline at end of file diff --git a/tests/unit-tests/components/SystemStatusController.spec.ts b/tests/unit-tests/components/SystemStatusController.spec.ts index f4980e1..46deb2c 100644 --- a/tests/unit-tests/components/SystemStatusController.spec.ts +++ b/tests/unit-tests/components/SystemStatusController.spec.ts @@ -1,6 +1,6 @@ import { NextFunction, Request, Response } from 'express'; import SystemStatusController from '../../../src/components/system-status/system-status.controller'; -import BaseApi from '../../../src/components/BaseApi'; +import BaseController from '../../../src/components/BaseController'; import Crypto from '../../../src/lib/crypto'; describe('System Status Controller', () => { @@ -42,7 +42,7 @@ describe('System Status Controller', () => { }); test('test getSystemInfo method with exception', () => { - jest.spyOn(BaseApi.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); + jest.spyOn(BaseController.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); controller.getSystemInfo(request as Request, response as Response, next) expect(next).toHaveBeenCalled(); }); @@ -56,7 +56,7 @@ describe('System Status Controller', () => { test('test getServerTime method with exception', () => { - jest.spyOn(BaseApi.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); + jest.spyOn(BaseController.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); controller.getServerTime(request as Request, response as Response, next) expect(next).toHaveBeenCalled(); }); @@ -69,7 +69,7 @@ describe('System Status Controller', () => { }); test('test getResourceUsage method with exception', () => { - jest.spyOn(BaseApi.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); + jest.spyOn(BaseController.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); controller.getResourceUsage(request as Request, response as Response, next) expect(next).toHaveBeenCalled(); }); @@ -82,7 +82,7 @@ describe('System Status Controller', () => { }); test('test getProcessInfo method with exception', () => { - jest.spyOn(BaseApi.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); + jest.spyOn(BaseController.prototype, 'send').mockImplementation(() => { throw new Error('exception');}); controller.getProcessInfo(request as Request, response as Response, next) expect(next).toHaveBeenCalled(); });