diff --git a/package-lock.json b/package-lock.json index dc1dbd9..444247d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1072,9 +1072,9 @@ } }, "@sasjs/utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-1.5.0.tgz", - "integrity": "sha512-xKRotDWeCouIebA9GN+eRDFenUZHzn8CRBwqSqi4huLgP/GKtyRpuqBCJ8PYqdvT3q7fBdGM2zHgX+1TNOFEug==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.0.2.tgz", + "integrity": "sha512-FyY/MyeeLP0+OhJWCbiVmV3Mz/mRcrc4oNbw1xhO7CR3DLpiPSmAHaq3sf+1NKCk2AzXbVPqgZM5NVKzvd2wrA==", "requires": { "consola": "^2.15.0", "prompts": "^2.4.0", diff --git a/package.json b/package.json index 7937ffb..8f382f9 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ }, "main": "index.js", "dependencies": { - "@sasjs/utils": "^1.5.0", + "@sasjs/utils": "^2.0.2", "es6-promise": "^4.2.8", "form-data": "^3.0.0", "isomorphic-fetch": "^2.2.1" diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index edbf002..bac2d8e 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -1107,6 +1107,8 @@ export class SASViyaApiClient { } return new Promise(async (resolve, _) => { + let printedState = '' + const interval = setInterval(async () => { if ( postedJobState === 'running' || @@ -1114,9 +1116,6 @@ export class SASViyaApiClient { postedJobState === 'pending' ) { if (stateLink) { - if (this.debug) { - console.log('Polling job status... \n') - } const { result: jobState } = await this.request( `${this.serverUrl}${stateLink.href}?_action=wait&wait=30`, { @@ -1126,10 +1125,16 @@ export class SASViyaApiClient { ) postedJobState = jobState.trim() - if (this.debug) { - console.log(`Current state: ${postedJobState}\n`) + + if (this.debug && printedState !== postedJobState) { + console.log('Polling job status...') + console.log(`Current job state: ${postedJobState}`) + + printedState = postedJobState } + pollCount++ + if (pollCount >= MAX_POLL_COUNT) { resolve(postedJobState) } diff --git a/src/SessionManager.ts b/src/SessionManager.ts index 1ff7cc2..1b63f17 100644 --- a/src/SessionManager.ts +++ b/src/SessionManager.ts @@ -23,6 +23,10 @@ export class SessionManager { private currentContext: Context | null = null private csrfToken: CsrfToken | null = null private _debug: boolean = false + private printedSessionState = { + printed: false, + state: '' + } public get debug() { return this._debug @@ -175,8 +179,10 @@ export class SessionManager { sessionState === '' ) { if (stateLink) { - if (this.debug) { - console.log('Polling session status... \n') + if (this.debug && !this.printedSessionState.printed) { + console.log('Polling session status...') + + this.printedSessionState.printed = true } const { result: state } = await this.requestSessionStatus( @@ -191,8 +197,11 @@ export class SessionManager { sessionState = state.trim() - if (this.debug) { - console.log(`Current state is '${sessionState}'\n`) + if (this.debug && this.printedSessionState.state !== sessionState) { + console.log(`Current session state is '${sessionState}'`) + + this.printedSessionState.state = sessionState + this.printedSessionState.printed = false } // There is an internal error present in SAS Viya 3.5