Socket
Socket
Sign inDemoInstall

ts-http-assert

Package Overview
Dependencies
8
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ts-http-assert

TypeScript version of http-assert with Assertion Functions.


Version published
0
Maintainers
1
Install size
104 kB
Created
Weekly downloads
 

Readme

Source

ts-http-assert

Build Status Coverage Status

TypeScript version of http-assert with Assertion Functions.

Motivation

There are multiple attempts to give the http-assert assertion functions supports:

All of these attemps are failed because @types/koa refers @types/http-assert as methods, and due to https://github.com/microsoft/TypeScript/issues/36931 methods cannot simply have assertion functions.

This package is a drop-in replacement of the http-assert package with:

  • better typings, and
  • assertion functions support.

Install

npm install ts-http-assert

or

yarn add ts-http-assert

Usage

Just replace all

import assert from 'http-assert'

with

import assert from 'ts-http-assert`

to give the assert function and its child functions better typings.

  1. All parameter combinations in createHttpError, includes:

    • assert(value, status, message, properties)
    • assert(value, status, message)
    • assert(value, status, properties)
    • assert(value, status)
    • assert(value, message, properties)
    • assert(value, message)
    • assert(value, properties)
    • assert(value)
  2. assert and assert.ok have assertion signatures to assert the condition is true, for example:

    import { IncomingMessage, ServerResponse } from 'http'
    import assert from 'ts-http-assert'
    
    function controller(req: IncomingMessage, res: ServerResponse): void {
        const authorization = req.headers['authorization']
        // authorization might be string | string[] | undefined
        assert(typeof authorization === 'string', 401)
        // or `assert.ok(typeof authorization === 'string', 401)`
    
        // It's OK to call the following `authorization.split` because authorization
        // is asserted to be string in the above line.
        const [method, credentials] = authorization.split(' ', 2)
        res.end(`You are in ${method} authorization.`)
    }
    
  3. assert.strictEqual has assertion signature to assert to 2 values are of the same type, for example:

    import { IncomingMessage, ServerResponse } from 'http'
    import assert from 'ts-http-assert'
    
    function controller(req: IncomingMessage, res: ServerResponse): void {
        const contentType = req.headers['content-type']
        assert.strictEqual(contentType, 'application/json')
    
        // Now the contentType is asserted to be of type string
        res.end(`You submitted in type ${contentType.splice('/')[1]}`)
    }
    

License

MIT

FAQs

Last updated on 21 Sep 2020

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc