chai-http icon indicating copy to clipboard operation
chai-http copied to clipboard

add ChaiHttp.Request to types

Open bgmort opened this issue 2 years ago • 2 comments

Suppose I assign a type to an unresolved chai http request in Typescript. Chai doesn't export a type, so the type has to be imported from superagent, which breaks encapsulation. This PR exports a wrapper type so that requests can be typed without an explicit dependency on superagent.

Before:

import chai, { request } from 'chai'
import chaiHttp from 'chai-http'
import {SuperAgentRequest} from 'superagent' // breaks encapsulation

chai.use(chaiHttp)

let req: SuperAgentRequest
if (Math.random() < .5) {
	req = request('https://example.com').get('/')
}
else {
	req = request('https://other.com').get('/other')
}

req.set('Cookie', 'cookie=true')

After:

import chai, { request } from 'chai'
import chaiHttp from 'chai-http'

chai.use(chaiHttp)

let req: ChaiHttp.Request
if (Math.random() < .5) {
	req = request('https://example.com').get('/')
}
else {
	req = request('https://other.com').get('/other')
}

req.set('Cookie', 'cookie=true')

bgmort avatar Jan 20 '23 17:01 bgmort