http-status-codes.ts30 lines · main
| 1 | import { status } from 'http-status' |
| 2 | |
| 3 | export function getHttpStatusCodeInfo(codeNumber: number): { |
| 4 | code: number |
| 5 | name: string |
| 6 | message: string |
| 7 | label: string |
| 8 | } { |
| 9 | type StatusCodeKey = keyof typeof status |
| 10 | |
| 11 | if (!(codeNumber in status)) { |
| 12 | return { |
| 13 | code: codeNumber, |
| 14 | name: 'UNKNOWN', |
| 15 | message: 'Unknown status code', |
| 16 | label: 'Unknown', |
| 17 | } |
| 18 | } |
| 19 | |
| 20 | const statusCodeLabel = status[codeNumber as StatusCodeKey] |
| 21 | const statusCodeMessage = status[`${codeNumber}_MESSAGE` as StatusCodeKey] |
| 22 | const statusCodeName = status[`${codeNumber}_NAME` as StatusCodeKey] |
| 23 | |
| 24 | return { |
| 25 | code: codeNumber, |
| 26 | name: statusCodeName as string, |
| 27 | label: statusCodeLabel as string, |
| 28 | message: statusCodeMessage as string, |
| 29 | } |
| 30 | } |