@20i/exceptions
TypeScript icon, indicating that this package has built-in type declarations

1.0.24 • Public • Published

@20i/exceptions

Provides standard exceptions to throw. We should add to this simple library when we wish to add more.

Examples:

  1. Throw one error:
import * as Exception from "@20i/exceptions"

throw Exception.BadRequest("This was a bad request")
// throws { name: "badRequest", code: 400, message: "This was a bad request" }

throw Exception.Unauthorized("You must be logged in to do this")
// throws { name: "unauthorized", code: 401, message: "You must be logged in to do this" }

throw Exception.Forbidden("You do not have permission")
// throws { name: "forbidden", code: 403, message: "You do not have permission" }

throw Exception.NotFound("The record was not found")
// throws { name: "notFound", code: 404, "The record was not found" }

throw Exception.InternalError("Unexpected error")
// throws { name: "internalError", code: 500, "Unexpected error" }
  1. Throw multiple errors
import * as Exception from "@20i/exceptions"

const exceptions: Exception.IException = {
    name: "multipleErrors",
    code: 400,
    message: [
        Exception.BadRequest("This was a bad request"),
        Exception.Unauthorized("You must be logged in to do this"),
        Exception.Forbidden("You do not have permission"),
        Exception.NotFound("The record was not found"),
        Exception.InternalError("Unexpected error")
    ]
}

// reading the text from exceptions
console.log(Exception.GetErrorMessage(exceptions))
// [
//    "This was a bad request",
//    "You must be logged in to do this",
//    "You do not have permission",
//    "The record was not found",
//    "Unexpected error"
// ]
  1. Axios example
import * as Exception from "@20i/exceptions"
import axios, { AxiosResponse } from "axios"

const axiosCall = () => {
    try {
        const response = await axios.get("http://your-url-here.com")
        return response.data
    } catch (e) {
        const res: AxiosResponse = e.response.data
        if (Exception.isException(res)) {
            // print what the message(s)
            Exception.GetErrorMessage(res)
        }
        throw res
    }
}


Readme

Keywords

none

Package Sidebar

Install

npm i @20i/exceptions

Weekly Downloads

1

Version

1.0.24

License

ISC

Unpacked Size

8.94 kB

Total Files

9

Last publish

Collaborators

  • wilblack
  • trevordilley
  • wasredacted
  • james-20i
  • 20i-npm-service
  • valery20i
  • hiddn
  • keeto-20i
  • gelfer
  • tony20i
  • mearl20i
  • mook-20i
  • orianna-20i