mirror of
https://github.com/honojs/hono.git
synced 2024-11-22 11:17:33 +01:00
feat(utils): remove HTTP status messages from http-status.ts
(#1037)
* feat(utils): remove HTTP status messages from `http-status.ts` * denoify
This commit is contained in:
parent
677b572fd5
commit
03df736763
@ -1,5 +1,4 @@
|
||||
import type { StatusCode } from './utils/http-status.ts'
|
||||
import { getStatusText } from './utils/http-status.ts'
|
||||
|
||||
type HTTPExceptionOptions = {
|
||||
res?: Response
|
||||
@ -10,7 +9,7 @@ export class HTTPException extends Error {
|
||||
readonly res?: Response
|
||||
readonly status: StatusCode
|
||||
constructor(status: StatusCode = 500, options?: HTTPExceptionOptions) {
|
||||
super(options?.message || getStatusText(status))
|
||||
super(options?.message)
|
||||
this.res = options?.res
|
||||
this.status = status
|
||||
}
|
||||
@ -20,7 +19,7 @@ export class HTTPException extends Error {
|
||||
}
|
||||
return new Response(this.message, {
|
||||
status: this.status,
|
||||
statusText: getStatusText(this.status),
|
||||
statusText: this.message,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1,120 +1 @@
|
||||
export const getStatusText = (statusCode: StatusCode): string => {
|
||||
const text = statuses[statusCode]
|
||||
return text
|
||||
}
|
||||
|
||||
export type StatusCode =
|
||||
| 100
|
||||
| 101
|
||||
| 102
|
||||
| 103
|
||||
| 200
|
||||
| 201
|
||||
| 202
|
||||
| 203
|
||||
| 204
|
||||
| 205
|
||||
| 206
|
||||
| 207
|
||||
| 208
|
||||
| 226
|
||||
| 300
|
||||
| 301
|
||||
| 302
|
||||
| 303
|
||||
| 304
|
||||
| 305
|
||||
| 306
|
||||
| 307
|
||||
| 308
|
||||
| 400
|
||||
| 401
|
||||
| 402
|
||||
| 403
|
||||
| 404
|
||||
| 405
|
||||
| 406
|
||||
| 407
|
||||
| 408
|
||||
| 409
|
||||
| 410
|
||||
| 411
|
||||
| 412
|
||||
| 413
|
||||
| 414
|
||||
| 415
|
||||
| 416
|
||||
| 417
|
||||
| 418
|
||||
| 420
|
||||
| 421
|
||||
| 422
|
||||
| 423
|
||||
| 424
|
||||
| 425
|
||||
| 426
|
||||
| 428
|
||||
| 429
|
||||
| 431
|
||||
| 444
|
||||
| 449
|
||||
| 450
|
||||
| 451
|
||||
| 499
|
||||
| 500
|
||||
| 501
|
||||
| 502
|
||||
| 503
|
||||
| 504
|
||||
| 505
|
||||
| 506
|
||||
| 507
|
||||
| 508
|
||||
| 509
|
||||
| 510
|
||||
| 511
|
||||
| 598
|
||||
| 599
|
||||
|
||||
const statuses: Record<StatusCode | number, string> = {
|
||||
100: 'Continue',
|
||||
101: 'Switching Protocols',
|
||||
102: 'Processing',
|
||||
103: 'Early Hints',
|
||||
200: 'OK',
|
||||
201: 'Created',
|
||||
202: 'Accepted',
|
||||
204: 'No Content',
|
||||
206: 'Partial Content',
|
||||
301: 'Moved Permanently',
|
||||
302: 'Moved Temporarily',
|
||||
303: 'See Other',
|
||||
304: 'Not Modified',
|
||||
307: 'Temporary Redirect',
|
||||
308: 'Permanent Redirect',
|
||||
400: 'Bad Request',
|
||||
401: 'Unauthorized',
|
||||
402: 'Payment Required',
|
||||
403: 'Forbidden',
|
||||
404: 'Not Found',
|
||||
405: 'Not Allowed',
|
||||
406: 'Not Acceptable',
|
||||
408: 'Request Time-out',
|
||||
409: 'Conflict',
|
||||
410: 'Gone',
|
||||
411: 'Length Required',
|
||||
412: 'Precondition Failed',
|
||||
413: 'Request Entity Too Large',
|
||||
414: 'Request-URI Too Large',
|
||||
415: 'Unsupported Media Type',
|
||||
416: 'Requested Range Not Satisfiable',
|
||||
421: 'Misdirected Request',
|
||||
429: 'Too Many Requests',
|
||||
500: 'Internal Server Error',
|
||||
501: 'Not Implemented',
|
||||
502: 'Bad Gateway',
|
||||
503: 'Service Temporarily Unavailable',
|
||||
504: 'Gateway Time-out',
|
||||
505: 'HTTP Version Not Supported',
|
||||
507: 'Insufficient Storage',
|
||||
}
|
||||
export type StatusCode = number
|
||||
|
@ -826,7 +826,9 @@ describe('Error handle', () => {
|
||||
const app = new Hono()
|
||||
|
||||
app.get('/exception', () => {
|
||||
throw new HTTPException(401)
|
||||
throw new HTTPException(401, {
|
||||
message: 'Unauthorized',
|
||||
})
|
||||
})
|
||||
|
||||
it('Should return 401 response', async () => {
|
||||
|
@ -4,7 +4,9 @@ describe('HTTPFatalError', () => {
|
||||
it('Should be 401 HTTP exception object', () => {
|
||||
// We should throw an exception if is not authorized
|
||||
// because next handlers should not be fired.
|
||||
const exception = new HTTPException(401)
|
||||
const exception = new HTTPException(401, {
|
||||
message: 'Unauthorized',
|
||||
})
|
||||
expect(exception.status).toBe(401)
|
||||
expect(exception.message).toBe('Unauthorized')
|
||||
const res = exception.getResponse()
|
||||
|
@ -1,5 +1,4 @@
|
||||
import type { StatusCode } from './utils/http-status'
|
||||
import { getStatusText } from './utils/http-status'
|
||||
|
||||
type HTTPExceptionOptions = {
|
||||
res?: Response
|
||||
@ -10,7 +9,7 @@ export class HTTPException extends Error {
|
||||
readonly res?: Response
|
||||
readonly status: StatusCode
|
||||
constructor(status: StatusCode = 500, options?: HTTPExceptionOptions) {
|
||||
super(options?.message || getStatusText(status))
|
||||
super(options?.message)
|
||||
this.res = options?.res
|
||||
this.status = status
|
||||
}
|
||||
@ -20,7 +19,7 @@ export class HTTPException extends Error {
|
||||
}
|
||||
return new Response(this.message, {
|
||||
status: this.status,
|
||||
statusText: getStatusText(this.status),
|
||||
statusText: this.message,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
import { getStatusText } from './http-status'
|
||||
|
||||
describe('http-status utility', () => {
|
||||
it('getStatusText', () => {
|
||||
expect(getStatusText(200)).toBe('OK')
|
||||
})
|
||||
})
|
@ -1,120 +1 @@
|
||||
export const getStatusText = (statusCode: StatusCode): string => {
|
||||
const text = statuses[statusCode]
|
||||
return text
|
||||
}
|
||||
|
||||
export type StatusCode =
|
||||
| 100
|
||||
| 101
|
||||
| 102
|
||||
| 103
|
||||
| 200
|
||||
| 201
|
||||
| 202
|
||||
| 203
|
||||
| 204
|
||||
| 205
|
||||
| 206
|
||||
| 207
|
||||
| 208
|
||||
| 226
|
||||
| 300
|
||||
| 301
|
||||
| 302
|
||||
| 303
|
||||
| 304
|
||||
| 305
|
||||
| 306
|
||||
| 307
|
||||
| 308
|
||||
| 400
|
||||
| 401
|
||||
| 402
|
||||
| 403
|
||||
| 404
|
||||
| 405
|
||||
| 406
|
||||
| 407
|
||||
| 408
|
||||
| 409
|
||||
| 410
|
||||
| 411
|
||||
| 412
|
||||
| 413
|
||||
| 414
|
||||
| 415
|
||||
| 416
|
||||
| 417
|
||||
| 418
|
||||
| 420
|
||||
| 421
|
||||
| 422
|
||||
| 423
|
||||
| 424
|
||||
| 425
|
||||
| 426
|
||||
| 428
|
||||
| 429
|
||||
| 431
|
||||
| 444
|
||||
| 449
|
||||
| 450
|
||||
| 451
|
||||
| 499
|
||||
| 500
|
||||
| 501
|
||||
| 502
|
||||
| 503
|
||||
| 504
|
||||
| 505
|
||||
| 506
|
||||
| 507
|
||||
| 508
|
||||
| 509
|
||||
| 510
|
||||
| 511
|
||||
| 598
|
||||
| 599
|
||||
|
||||
const statuses: Record<StatusCode | number, string> = {
|
||||
100: 'Continue',
|
||||
101: 'Switching Protocols',
|
||||
102: 'Processing',
|
||||
103: 'Early Hints',
|
||||
200: 'OK',
|
||||
201: 'Created',
|
||||
202: 'Accepted',
|
||||
204: 'No Content',
|
||||
206: 'Partial Content',
|
||||
301: 'Moved Permanently',
|
||||
302: 'Moved Temporarily',
|
||||
303: 'See Other',
|
||||
304: 'Not Modified',
|
||||
307: 'Temporary Redirect',
|
||||
308: 'Permanent Redirect',
|
||||
400: 'Bad Request',
|
||||
401: 'Unauthorized',
|
||||
402: 'Payment Required',
|
||||
403: 'Forbidden',
|
||||
404: 'Not Found',
|
||||
405: 'Not Allowed',
|
||||
406: 'Not Acceptable',
|
||||
408: 'Request Time-out',
|
||||
409: 'Conflict',
|
||||
410: 'Gone',
|
||||
411: 'Length Required',
|
||||
412: 'Precondition Failed',
|
||||
413: 'Request Entity Too Large',
|
||||
414: 'Request-URI Too Large',
|
||||
415: 'Unsupported Media Type',
|
||||
416: 'Requested Range Not Satisfiable',
|
||||
421: 'Misdirected Request',
|
||||
429: 'Too Many Requests',
|
||||
500: 'Internal Server Error',
|
||||
501: 'Not Implemented',
|
||||
502: 'Bad Gateway',
|
||||
503: 'Service Temporarily Unavailable',
|
||||
504: 'Gateway Time-out',
|
||||
505: 'HTTP Version Not Supported',
|
||||
507: 'Insufficient Storage',
|
||||
}
|
||||
export type StatusCode = number
|
||||
|
Loading…
Reference in New Issue
Block a user