Как расширить суперагент методом прокси?

Я не нашел определений TypeScript для superagent-proxy. Поэтому, когда я пытаюсь скомпилировать свое приложение TypeScript в JavaScript, я получаю сообщение об ошибке:

ts: свойство «прокси» не существует для типа «SuperAgentRequest».

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

withProxy(request);

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

Я создал файл с объявлениями, но я не знаю, что еще сделать.

declare module 'superagent-proxy';

Я думаю, я хочу определить какую-то функцию более высокого порядка, которая принимает суперагент и каким-то образом возвращает суперагент с прокси.

Это моя лучшая попытка:

import * as request from 'superagent';

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

Но это не работает, и я даже не уверен, что это близко к правильному.

Недопустимое имя модуля в дополнении. Модуль «superagent-proxy» разрешается в нетипизированный модуль в «.../node_modules/superagent-proxy/index.js», который не может быть расширен.


person user1283776    schedule 30.08.2019    source источник


Ответы (2)


вам также необходимо добавить зависимость типа, импорта только зависимости прокси-сервера суперагента недостаточно, вам нужно иметь два импорта: superagent-proxy: ^2.1.0, в разделе dependencies
@types/superagent-proxy: ^ 2.0.0, в зависимостях разработчиков

person Majd Mahajenah    schedule 17.11.2020
comment
Спасибо. Я попробую (прошло некоторое время, и я не использовал прокси, так как он предназначен только для отладки ...) FWIW, этих типов не существовало, когда задавался этот вопрос. Они были созданы только в январе этого года: github.com/DefinitelyTyped/DefinitelyTyped. /коммиты/мастер/типы/ - person Eric Liprandi; 18.11.2020
comment
может быть, в то время было что-то еще, я столкнулся с той же проблемой, поэтому я пришел сюда. когда я нашел решение, я разместил его. Надеюсь, поможет :) - person Majd Mahajenah; 18.11.2020

Установить

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

Использовать

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

Then...

await superagent.get(...).proxy(proxyUrl)
person TeYoU    schedule 15.04.2021