1.2.1 • Published 6 years ago

es-http-error v1.2.1

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

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.

...etc.

License

MIT

1.2.1

6 years ago

1.2.0

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago