bitwarden-estensione-browser/src/services/nodeApi.service.ts

30 lines
1.1 KiB
TypeScript
Raw Normal View History

import * as FormData from 'form-data';
import * as HttpsProxyAgent from 'https-proxy-agent';
2018-05-15 15:02:57 +02:00
import * as fe from 'node-fetch';
2018-05-15 05:56:27 +02:00
import { ApiService } from './api.service';
import { PlatformUtilsService } from '../abstractions/platformUtils.service';
import { TokenService } from '../abstractions/token.service';
2018-05-15 15:02:57 +02:00
(global as any).fetch = fe.default;
(global as any).Request = fe.Request;
(global as any).Response = fe.Response;
(global as any).Headers = fe.Headers;
(global as any).FormData = FormData;
2018-05-15 05:56:27 +02:00
export class NodeApiService extends ApiService {
constructor(tokenService: TokenService, platformUtilsService: PlatformUtilsService,
logoutCallback: (expired: boolean) => Promise<void>, customUserAgent: string = null) {
super(tokenService, platformUtilsService, logoutCallback, customUserAgent);
2018-05-15 05:56:27 +02:00
}
nativeFetch(request: Request): Promise<Response> {
const proxy = process.env.http_proxy || process.env.https_proxy;
if (proxy) {
(request as any).agent = new HttpsProxyAgent(proxy);
}
return fetch(request);
}
2018-05-15 05:56:27 +02:00
}