2018-05-17 21:35:02 +02:00
|
|
|
import * as FormData from "form-data";
|
2021-01-28 02:08:56 +01:00
|
|
|
import { 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
|
|
|
|
2021-07-23 20:03:52 +02:00
|
|
|
import { EnvironmentService } from "jslib-common/abstractions/environment.service";
|
2021-06-03 18:58:57 +02:00
|
|
|
import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service";
|
|
|
|
import { TokenService } from "jslib-common/abstractions/token.service";
|
2022-02-22 15:39:11 +01:00
|
|
|
import { ApiService } from "jslib-common/services/api.service";
|
2018-05-15 05:56:27 +02:00
|
|
|
|
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;
|
2018-05-17 21:35:02 +02:00
|
|
|
(global as any).FormData = FormData;
|
2018-05-15 05:56:27 +02:00
|
|
|
|
|
|
|
export class NodeApiService extends ApiService {
|
|
|
|
constructor(
|
|
|
|
tokenService: TokenService,
|
|
|
|
platformUtilsService: PlatformUtilsService,
|
2021-07-23 20:03:52 +02:00
|
|
|
environmentService: EnvironmentService,
|
|
|
|
logoutCallback: (expired: boolean) => Promise<void>,
|
2021-08-13 15:28:03 +02:00
|
|
|
customUserAgent: string = null,
|
|
|
|
apiKeyRefresh: (clientId: string, clientSecret: string) => Promise<any>
|
|
|
|
) {
|
2021-07-23 20:03:52 +02:00
|
|
|
super(tokenService, platformUtilsService, environmentService, logoutCallback, customUserAgent);
|
2021-08-13 15:28:03 +02:00
|
|
|
this.apiKeyRefresh = apiKeyRefresh;
|
2018-05-15 05:56:27 +02:00
|
|
|
}
|
2019-06-24 17:07:26 +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);
|
2021-12-16 13:36:21 +01:00
|
|
|
}
|
2018-05-15 05:56:27 +02:00
|
|
|
}
|