![PyPI Now Supports iOS and Android Wheels for Mobile Python Development](https://cdn.sanity.io/images/cgdhsj6q/production/96416c872705517a6a65ad9646ce3e7caef623a0-1024x1024.webp?w=400&fit=max&auto=format)
Security News
PyPI Now Supports iOS and Android Wheels for Mobile Python Development
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Throws error objects with status and code
throw Error('What the heck goes here?...')
You do not know exactly what to throw?! We've got you covered!
The latest version is available at: https://www.npmjs.com/package/throwlhos
Use your favorite package manager to install. For instance:
yarn add throwlhos
import throwlhos from 'throwlhos'
import { Request, Response } from 'express'
class FooBarController {
async index(request: Request, response: Response) {
console.log(throwlhos.err_internalServerError())
// IThrowlhos object
}
}
Above code prompts the following output:
{
code: 500,
status: 'INTERNAL_SERVER_ERROR',
message: 'Internal Server Error'
}
err_*
methods accept two optional parameters:
message?: string | null
errors?: any
Returned throwlhos
object type exaplained:
export type IThrowlhos = {
code: number
status: string
message: string
errors: any
}
code
: Number value of HTTP Status Code
status
: String value of HTTP Status Name
message
: Message given at first parameter or HTTP Status Name human-readable
if none or null is given.
errors
: Anything given as the second parameter. It's undefined
if no value is given.
You can use throwlhos
as an express middleware:
app.use(throwlhos.middlware)
Since throwlhos
overwrites Express interface, you can find throwlhos
err_*
methods directly in express response!
Consider the following code which is an express middlware:
import throwlhos from 'throwlhos'
import { Request, Response } from 'express'
class FooBarController {
async index(request: Request, response: Response) {
const throwlhos = response.err_internalServerError()
return response.status(throwlhos.code).send(throwlhos)
}
}
Outputs:
HTTP/1.1 500 INTERNAL_SERVER_ERROR
X-Powered-By: Express
errors-Type: application/json; charset=utf-8
{
code: 500,
status: 'INTERNAL_SERVER_ERROR',
message: 'Internal Server Error'
}
If you want to quickly send an error response with your throwlhos
use it with responserror.
Responserror handler will catch-all errors from any express middleware router in-between by using next(err)
.
Full example:
import throwlhos from 'throwlhos'
import errorHandler from 'responserror'
const app = express()
const router = express.Router()
router.post('/resources', (_, response: Response, next: NextFunction) => {
try {
throw response.err_forbidden('Access denied.. Sorry')
} catch(err) {
return next(err)
}
})
app.use(throwlhos.middlware)
app.use(router)
app.use(errorHandler)
POST /resources
outputs:
HTTP/1.1 403 FORBIDDEN
X-Powered-By: Express
errors-Type: application/json; charset=utf-8
{
code: 403,
status: 'FORBIDDEN',
message: 'Access denied.. Sorry',
success: false
}
Throwlhos currently supports following methods:
err_multipleChoices // Multiple Choices
err_movedPermanently // Moved Permanently
err_movedTemporarily // Moved Temporarily
err_seeOther // See Other
err_notModified // Not Modified
err_useProxy // Use Proxy
err_temporaryRedirect // Temporary Redirect
err_permanentRedirect // Permanent Redirect
err_badRequest // Bad Request
err_unauthorized // Unauthorized
err_paymentRequired // Payment Required
err_forbidden // Forbidden
err_notFound // Not Found
err_methodNotAllowed // Method Not Allowed
err_notAcceptable // Not Acceptable
err_proxyAuthenticationRequired // Proxy Authentication Required
err_requestTimeout // Request Timeout
err_conflict // Conflict
err_gone // Gone
err_lengthRequired // Length Required
err_preconditionFailed // Precondition Failed
err_requestTooLong // Request Entity Too Large
err_requestUriTooLong // Request-URI Too Long
err_unsupportedMediaType // Unsupported Media Type
err_requestedRangeNotSatisfiable // Requested Range Not Satisfiable
err_expectationFailed // Expectation Failed
err_imATeapot // I'm a teapot
err_insufficientSpaceOnResource // Insufficient Space on Resource
err_methodFailure // Method Failure
err_misdirectedRequest // Misdirected Request
err_unprocessableEntity // Unprocessable Entity
err_locked // Locked
err_failedDependency // Failed Dependency
err_preconditionRequired // Precondition Required
err_tooManyRequests // Too Many Requests
err_requestHeaderFieldsTooLarge // Request Header Fields Too Large
err_unavailableForLegalReasons // Unavailable For Legal Reasons
err_internalServerError // Internal Server Error
err_notImplemented // Not Implemented
err_badGateway // Bad Gateway
err_serviceUnavailable // Service Unavailable
err_gatewayTimeout // Gateway Timeout
err_httpVersionNotSupported // HTTP Version Not Supported
err_insufficientStorage // Insufficient Storage
err_networkAuthenticationRequired // Network Authentication Required
err_custom // Custom Error (provide message, code and errors)
Special thanks to my fellow engineer Estanis as his words where my inspiration in the naming of the package.
Run the test suit with yarn test
.
If you want to contribute in any of theses ways:
You can (and should) open an issue or even a pull request.
Has this package been useful for you?
If so, you can contribute by giving it a Star ⭐ at the GitHub Repository!
Thanks for your interest in contributing to this repo!
Luiz Felipe Zarco (felipezarco@hotmail.com)
This code is licensed under the MIT License. See the LICENSE.md file for more info.
FAQs
Thorw error objects directly from express response
We found that throwlhos demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.