Skip to content

Commit

Permalink
Replace AxiosRequestConfig with RawAxiosRequestConfig
Browse files Browse the repository at this point in the history
  • Loading branch information
fwilhe committed Jan 18, 2023
1 parent 19ab0cd commit cbdf5b9
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 44 deletions.
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
import nock from 'nock';
import * as jwt123 from 'jsonwebtoken';
import nock from 'nock';
// eslint-disable-next-line import/named
import axios, { AxiosRequestConfig } from 'axios';
import * as resilienceMethods from '@sap-cloud-sdk/resilience/internal';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { createLogger } from '@sap-cloud-sdk/util';
import { circuitBreakers } from '@sap-cloud-sdk/resilience/internal';
import { createLogger } from '@sap-cloud-sdk/util';
import axios, { RawAxiosRequestConfig } from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { mockCertificateCall } from '../../../../../test-resources/test/test-util';
import { destinationServiceUri } from '../../../../../test-resources/test/test-util/environment-mocks';
import { privateKey } from '../../../../../test-resources/test/test-util/keys';
import { mockCertificateCall } from '../../../../../test-resources/test/test-util';
import { Destination } from './destination-service-types';
import { DestinationConfiguration, parseDestination } from './destination';
import {
fetchDestination,
fetchCertificate, fetchDestination,
fetchInstanceDestinations,
fetchSubaccountDestinations,
fetchCertificate
fetchSubaccountDestinations
} from './destination-service';
import { DestinationConfiguration, parseDestination } from './destination';
import { Destination } from './destination-service-types';

const jwt = jwt123.sign(
JSON.stringify({ user_id: 'user', zid: 'tenant' }),
Expand Down Expand Up @@ -531,7 +530,7 @@ describe('destination service', () => {
const result = await fetchDestination(destinationServiceUri, jwt, {
destinationName
});
const expectedConfig: AxiosRequestConfig = {
const expectedConfig: RawAxiosRequestConfig = {
baseURL:
'https://destination.example.com/destination-configuration/v1/destinations/HTTP-OAUTH',
method: 'get',
Expand Down Expand Up @@ -609,7 +608,7 @@ describe('destination service', () => {
await fetchDestination(destinationServiceUri, jwt, {
destinationName
});
const expectedConfig: AxiosRequestConfig = {
const expectedConfig: RawAxiosRequestConfig = {
baseURL:
'https://destination.example.com/destination-configuration/v1/destinations/HTTP-OAUTH',
headers: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,17 @@ import {
removeTrailingSlashes
} from '@sap-cloud-sdk/util';
// eslint-disable-next-line import/named
import axios, { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
import { executeWithMiddleware } from '@sap-cloud-sdk/resilience/internal';
import {
Context,
resilience,
HttpMiddlewareContext,
Middleware
Context, HttpMiddlewareContext,
Middleware, resilience
} from '@sap-cloud-sdk/resilience';
import { executeWithMiddleware } from '@sap-cloud-sdk/resilience/internal';
import * as asyncRetry from 'async-retry';
import { decodeJwt, wrapJwtInHeader } from '../jwt';
import axios, { AxiosError, AxiosResponse, RawAxiosRequestConfig } from 'axios';
import { urlAndAgent } from '../../http-agent';
import { getSubdomainAndZoneId } from '../xsuaa-service';
import { buildAuthorizationHeaders } from '../authorization-header';
import { decodeJwt, wrapJwtInHeader } from '../jwt';
import { getSubdomainAndZoneId } from '../xsuaa-service';
import {
DestinationConfiguration,
DestinationJson,
Expand All @@ -26,12 +24,12 @@ import {
parseDestination,
validateDestinationConfig
} from './destination';
import { DestinationFetchOptions } from './destination-accessor-types';
import { destinationServiceCache } from './destination-service-cache';
import {
Destination,
DestinationCertificate
} from './destination-service-types';
import { destinationServiceCache } from './destination-service-cache';
import { DestinationFetchOptions } from './destination-accessor-types';

const logger = createLogger({
package: 'connectivity',
Expand Down Expand Up @@ -400,7 +398,7 @@ async function callDestinationService(
> {
const { destinationName, retry } = options || {};

const config: AxiosRequestConfig = {
const config: RawAxiosRequestConfig = {
...urlAndAgent(context.uri),
proxy: false,
method: 'get',
Expand Down
4 changes: 2 additions & 2 deletions packages/http-client/src/http-client-types.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as http from 'http';
import type { Middleware } from '@sap-cloud-sdk/resilience';
import { HttpMiddlewareContext } from '@sap-cloud-sdk/resilience';
import * as http from 'http';
/**
* Represents the request configuration, that was inferred from a destination.
*/
Expand Down Expand Up @@ -47,7 +47,7 @@ export type Method =
| 'PATCH';

/**
* This interface is compatible with AxiosRequestConfig.
* This interface is compatible with RawAxiosRequestConfig.
*/
export type HttpRequestConfig = HttpRequestConfigBase & {
params?: Record<string, any>;
Expand Down
8 changes: 4 additions & 4 deletions packages/http-client/src/http-client.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import * as http from 'http';
import * as https from 'https';
import {
buildHeadersForDestination,
Destination,
Expand All @@ -16,6 +14,7 @@ import {
getSubdomainAndZoneId,
resolveDestination
} from '@sap-cloud-sdk/connectivity/internal';
import { executeWithMiddleware } from '@sap-cloud-sdk/resilience/internal';
import {
createLogger,
ErrorWithCause,
Expand All @@ -24,7 +23,8 @@ import {
unixEOL
} from '@sap-cloud-sdk/util';
import axios from 'axios';
import { executeWithMiddleware } from '@sap-cloud-sdk/resilience/internal';
import * as http from 'http';
import * as https from 'https';
import { buildCsrfHeaders } from './csrf-token-header';
import {
DestinationHttpRequestConfig,
Expand Down Expand Up @@ -453,7 +453,7 @@ function executeWithAxios(request: HttpRequest): Promise<HttpResponse> {

/**
* Builds an Axios config with default configuration i.e. no_proxy, default http and https agent and GET as request method.
* @returns AxiosRequestConfig with default parameters
* @returns RawAxiosRequestConfig with default parameters
* @internal
*/
export function getAxiosConfigWithDefaults(): HttpRequestConfig {
Expand Down
18 changes: 9 additions & 9 deletions packages/resilience/src/circuit-breaker.spec.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// eslint-disable-next-line import/named
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
import axios, { AxiosResponse, RawAxiosRequestConfig } from 'axios';
import nock from 'nock';
import { executeWithMiddleware, HttpMiddlewareContext } from './middleware';
import { circuitBreakerHttp, circuitBreakers } from './circuit-breaker';
import { executeWithMiddleware, HttpMiddlewareContext } from './middleware';

describe('circuit-breaker', () => {
beforeEach(() => {
Expand All @@ -17,7 +17,7 @@ describe('circuit-breaker', () => {
.get(/failing-500/)
.reply(500);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'failing-500'
Expand Down Expand Up @@ -63,7 +63,7 @@ describe('circuit-breaker', () => {
.times(10)
.reply(404);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'failing-ignore'
Expand Down Expand Up @@ -92,7 +92,7 @@ describe('circuit-breaker', () => {
it('creates circuit breaker for each tenant', async () => {
nock(host, {}).get(/ok/).times(2).reply(200);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'ok'
Expand Down Expand Up @@ -128,19 +128,19 @@ describe('circuit-breaker', () => {
.get(/path-2/)
.reply(200);

const requestConfigPath1: AxiosRequestConfig = {
const requestConfigPath1: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'path-1'
};
const requestConfigPath2: AxiosRequestConfig = {
const requestConfigPath2: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'path-2'
};
const request = requestConfig => () => axios.request(requestConfig);
const context: (
requestConfig: AxiosRequestConfig
requestConfig: RawAxiosRequestConfig
) => HttpMiddlewareContext = requestConfig => ({
requestConfig,
uri: host,
Expand All @@ -167,7 +167,7 @@ describe('circuit-breaker', () => {
.times(10)
.reply(401);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'post',
baseURL: host,
url: '/oauth/token',
Expand Down
4 changes: 2 additions & 2 deletions packages/resilience/src/middleware.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// eslint-disable-next-line import/named
import { AxiosRequestConfig } from 'axios';
import { RawAxiosRequestConfig } from 'axios';

/**
* Context for HttpRequests of the middleware.
Expand All @@ -12,7 +12,7 @@ export interface HttpMiddlewareContext extends Context {
/**
* Request config.
*/
requestConfig: AxiosRequestConfig;
requestConfig: RawAxiosRequestConfig;
}

/**
Expand Down
8 changes: 4 additions & 4 deletions packages/resilience/src/resilience.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// eslint-disable-next-line import/named
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
import axios, { AxiosResponse, RawAxiosRequestConfig } from 'axios';
import nock from 'nock';
import { circuitBreakers } from './circuit-breaker';
import { executeWithMiddleware, HttpMiddlewareContext } from './middleware';
Expand Down Expand Up @@ -79,7 +79,7 @@ describe('combined resilience features', () => {
.delay(delay)
.reply(200);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'with-delay'
Expand Down Expand Up @@ -124,7 +124,7 @@ describe('combined resilience features', () => {
.get(/with-retry/)
.reply(HTTP_STATUS.UNAUTHORIZED);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'with-retry'
Expand Down Expand Up @@ -155,7 +155,7 @@ describe('combined resilience features', () => {
.get(/with-retry/)
.reply(HTTP_STATUS.OK);

const requestConfig: AxiosRequestConfig = {
const requestConfig: RawAxiosRequestConfig = {
method: 'get',
baseURL: host,
url: 'with-retry'
Expand Down

0 comments on commit cbdf5b9

Please sign in to comment.