es-http-error
v1.2.1
Published
HttpError class for browsers (without Node.js dependencies)
Downloads
21
Readme
es-http-error
HttpError class for browsers (without Node.js dependencies)
Installation
$ npm install es-http-error
Usage
throw new HttpError(404) // 'Not Found' as a default message
throw new HttpError(401, 'Unauthorized') // Custom Error Message
throw new HttpError(statusCodes.notFound); // Using with enums
Supported http status codes are here.
Example
import HttpError, {statusCodes} from 'es-http-error'
main()
async function main (id) {
try {
// retrieve some data from API server
const res = await fetch('/api/something/great')
// check the response and throw an error if it's not ok
if (!res.ok) throw new HttpError(res.status)
// for example, render the view by lit-html
const render(view(await res.json()), document.body)
} catch (e) {
if (e instanceof HttpError) {
if (e.code === 401) logout() // check the code simply by number
if (e.code === statusCodes.notFound) notFound() // or via statusCodes
} else throw e
}
}
i18n
import HttpError, {statusCodes} from 'es-http-error/langs/ja'
try {
throw new HttpError(404)
} catch (e) {
console.log(e.message) // translated message "未検出"
}
Supported languages are listed here.
Serverside Usage (on Node.js)
This library also provides a CommonJS vesion complementally.
Note: there's no support for i18n for CommonJS version.
const HttpError = require('es-http-error')
const {statusCodes} = HttpError
throw new HttpError(statusCodes.notFound)
Motivation
There're some prior arts like below, but I couldn't find the one for browsers. So I made it.
- boom
- http-errors
- http-error - So close! But it has dependency for
util
.
...etc.
License
MIT