From fe3f6d628790b571d3b5d9a4439d311836014310 Mon Sep 17 00:00:00 2001 From: sabhas Date: Thu, 17 Feb 2022 23:39:55 +0500 Subject: [PATCH] feat(sasjs-config): add optional attribute requestHistoryLimit --- src/SASjs.ts | 3 ++- src/request/RequestClient.ts | 7 +++++-- src/types/SASjsConfig.ts | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/SASjs.ts b/src/SASjs.ts index 687e653..ce07b95 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -1034,7 +1034,8 @@ export default class SASjs { : RequestClient this.requestClient = new RequestClientClass( this.sasjsConfig.serverUrl, - this.sasjsConfig.httpsAgentOptions + this.sasjsConfig.httpsAgentOptions, + this.sasjsConfig.requestHistoryLimit ) } else { this.requestClient.setConfig( diff --git a/src/request/RequestClient.ts b/src/request/RequestClient.ts index 3e18632..208da39 100644 --- a/src/request/RequestClient.ts +++ b/src/request/RequestClient.ts @@ -56,6 +56,7 @@ export interface HttpClient { export class RequestClient implements HttpClient { private requests: SASjsRequest[] = [] + private requestsLimit: number = 10 protected csrfToken: CsrfToken = { headerName: '', value: '' } protected fileUploadCsrfToken: CsrfToken | undefined @@ -63,9 +64,11 @@ export class RequestClient implements HttpClient { constructor( protected baseUrl: string, - httpsAgentOptions?: https.AgentOptions + httpsAgentOptions?: https.AgentOptions, + requestsLimit?: number ) { this.createHttpClient(baseUrl, httpsAgentOptions) + if (requestsLimit) this.requestsLimit = requestsLimit } public setConfig(baseUrl: string, httpsAgentOptions?: https.AgentOptions) { @@ -149,7 +152,7 @@ export class RequestClient implements HttpClient { SASWORK: sasWork }) - if (this.requests.length > 20) { + if (this.requests.length > this.requestsLimit) { this.requests.splice(0, 1) } } diff --git a/src/types/SASjsConfig.ts b/src/types/SASjsConfig.ts index a40db2f..a537bf4 100644 --- a/src/types/SASjsConfig.ts +++ b/src/types/SASjsConfig.ts @@ -69,6 +69,10 @@ export class SASjsConfig { * Supported login mechanisms are - Redirected and Default */ loginMechanism: LoginMechanism = LoginMechanism.Default + /** + * Optional settings to configure limit for requests history + */ + requestHistoryLimit?: number = 10 } export enum LoginMechanism {