diff --git a/types/superagent/index.d.ts b/types/superagent/index.d.ts index 7daf5f47dc..e5a52ce3cd 100644 --- a/types/superagent/index.d.ts +++ b/types/superagent/index.d.ts @@ -150,7 +150,7 @@ declare namespace request { write(data: string | Buffer, encoding?: string): this; } - type Plugin = (req: Request) => void; + type Plugin = (req: SuperAgentRequest) => void; interface ProgressEvent { direction: 'download' | 'upload'; diff --git a/types/superagent/superagent-tests.ts b/types/superagent/superagent-tests.ts index 66046759f1..0c4b51f31e 100644 --- a/types/superagent/superagent-tests.ts +++ b/types/superagent/superagent-tests.ts @@ -390,3 +390,18 @@ request .then(response => { // reads 404 page as a successful response }); + +// Test that the "Plugin" type from "use" provides a SuperAgentRequest rather than a Request, +// which has additional properties. +const echoPlugin = (request: request.SuperAgentRequest) => { + req.url = '' + req.url; + req.cookies = '' + req.cookies; + if (req.method) { + req.url = '/echo'; + } +}; + +request + .get('/echo') + .use(echoPlugin) + .end();