@major-tanya/fancy-status
v0.1.3
Published
A convenient wrapper library to return certain status code responses
Downloads
2
Readme
fancy-status
A convenient wrapper library to return certain status code responses. Zero dependencies, zero complexity.
If you ever wanted to just type noContent
or internalServerError
instead of looking up the status codes for them,
then figuring out what your framework uses for replies, this is the library for you.
Available codes
- 2xx status codes
- 200 OK (
ok
) - 201 Created (
created
) - 204 No Content (
noContent
)
- 200 OK (
- 3xx status codes
- 301 Moved Permanently (
movedPermanently
) - 302 Found (
found
) - 307 Temporary Redirect (
temporaryRedirect
) - 308 Permanent Redirect (
permanentRedirect
)
- 301 Moved Permanently (
- 4xx status codes
- 400 Bad Request (
badRequest
) - 401 Unauthorized (
unauthorized
) - 403 Forbidden (
forbidden
) - 404 Not Found (
notFound
) - 410 Gone (
gone
) - 418 I'm a teapot (
imATeapot
)
- 400 Bad Request (
- 5xx status codes
- 500 Internal Server Error (
internalServerError
)
- 500 Internal Server Error (
Usage
Install with npm install @major-tanya/fancy-status
.
All methods support adding a body (BodyInit
type) and options (ResponseInit
type) (see Notes).
import { ok } from '@major-tanya/fancy-status'
function myHandler(request: Request): Response {
/* business logic */
const options: ResponseInit = { headers: { 'X-Some-Header': 'some value' } }
return ok('Some response body text', options)
}
It's also compatible with libraries that use pure Response
, like
itty-router
.
Notes
- The functions do not perform any sort of formatting or parsing on the passed content - they only set the status code and status text.
- The functions will override any provided
status
andstatusText
values with the method's corresponding values. If this is undesired, you can always just return normalResponse
s with yourstatus
andstatusText
overrides. - RFC 9110 defines some status codes like 204 as not allowing a body,
so the
noContent
function does not accept a body parameter.
TODO
- [ ] more ergonomic handling of things like JSON body content (right now requires manual correct setting of
Content-Type
header)