Búsqueda de sitios web

typescript - ¿Cómo extender superagent con el método proxy?


No he encontrado definiciones de TypeScript para superagent-proxy. Así que cuando intento compilar mi aplicación TypeScript a JavaScript, recibo el mensaje de error:

ts: La propiedad 'proxy' no existe en el tipo 'SuperAgentRequest'.

import * as request from 'superagent';
import * as withProxy from 'superagent-proxy';

withProxy(request);

request
    .get(...)
    .proxy(proxy)

He creado un archivo con declaraciones, pero no sé qué más hacer.

declare module 'superagent-proxy';

Supongo que quiero definir alguna función de orden superior que tome un superagente y devuelva un superagente con proxy de alguna manera.

Este es mi mejor intento hasta ahora:

import * as request from 'superagent';

declare module 'superagent-proxy' {
    interface SuperAgentRequestWithProxy extends request.SuperAgentStatic {
        proxy(url: string): SuperAgentRequestWithProxy;
    }
}

Pero no funciona y ni siquiera estoy seguro de que esté cerca de ser correcto.

Nombre de módulo no válido en la augmentación. El módulo 'superagent-proxy' se resuelve a un módulo sin tipos en '.../node_modules/superagent-proxy/index.js', el cual no puede ser augmentado

Respuesta #1

también necesitas agregar la dependencia de tipo, importar solo la dependencia de super agent proxy no es suficiente, necesitas tener dos importaciones: "superagent-proxy": "^2.1.0", bajo dependencias
"@types/superagent-proxy": "^2.0.0", bajo dependencias de desarrollo

Respuesta #2

Instalar

npm i superagent
npm i superagent-proxy
npm i --save-dev suuperagent-proxy

Usar

import * as superagent from 'superagent';
import enableProxy from 'superagent-proxy';
enableProxy(superagent);

Entonces :

await superagent.get(...).proxy(proxyUrl)

Artículos relacionados