1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-03 10:40:06 +00:00

Compare commits

..

13 Commits

Author SHA1 Message Date
Krishna Acondy
f763f05b5e Merge pull request #30 from sasjs/deployFix
fix: makeRequest retry
2020-08-05 20:02:44 +01:00
Mihajlo Medjedovic
b6aced5bad fix: makeRequest retry 2020-08-05 20:58:10 +02:00
Allan Bowe
7bb7db0f27 Merge pull request #24 from sasjs/dependabot/npm_and_yarn/webpack-4.44.1
chore(deps-dev): bump webpack from 4.43.0 to 4.44.1
2020-08-04 20:57:22 +02:00
Allan Bowe
36ea148446 Merge branch 'master' into dependabot/npm_and_yarn/webpack-4.44.1 2020-08-04 20:56:51 +02:00
Allan Bowe
762254d8c4 Merge pull request #29 from sasjs/deployFixing
fix: makeRequest retry, getFolderUri error catching
2020-08-04 20:56:20 +02:00
Mihajlo Medjedovic
8474b222ea fix: makeRequest retry, getFolderUri error catching 2020-08-04 20:39:09 +02:00
dependabot-preview[bot]
c1750c014e chore(deps-dev): bump webpack from 4.43.0 to 4.44.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.43.0 to 4.44.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.43.0...v4.44.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 20:41:21 +00:00
Krishna Acondy
d7a7909529 Merge pull request #26 from sasjs/dependabot/npm_and_yarn/tslint-6.1.3
chore(deps-dev): bump tslint from 6.1.2 to 6.1.3
2020-08-03 21:39:07 +01:00
dependabot-preview[bot]
31b60a985e chore(deps-dev): bump tslint from 6.1.2 to 6.1.3
Bumps [tslint](https://github.com/palantir/tslint) from 6.1.2 to 6.1.3.
- [Release notes](https://github.com/palantir/tslint/releases)
- [Changelog](https://github.com/palantir/tslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/palantir/tslint/compare/6.1.2...6.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 20:38:05 +00:00
Krishna Acondy
a6b13d9cb9 Merge pull request #27 from sasjs/dependabot/npm_and_yarn/types/jest-26.0.8
chore(deps-dev): bump @types/jest from 26.0.5 to 26.0.8
2020-08-03 21:35:56 +01:00
dependabot-preview[bot]
55fcbf2e36 chore(deps-dev): bump @types/jest from 26.0.5 to 26.0.8
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.5 to 26.0.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 19:34:31 +00:00
Krishna Acondy
fad8549d92 Merge pull request #28 from sasjs/dependabot/npm_and_yarn/ts-loader-8.0.2
chore(deps-dev): bump ts-loader from 8.0.1 to 8.0.2
2020-08-03 20:32:10 +01:00
dependabot-preview[bot]
95c03e5d07 chore(deps-dev): bump ts-loader from 8.0.1 to 8.0.2
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v8.0.1...v8.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 18:57:46 +00:00
4 changed files with 499 additions and 849 deletions

1281
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -37,7 +37,7 @@
"license": "ISC",
"devDependencies": {
"@types/isomorphic-fetch": "0.0.35",
"@types/jest": "^26.0.5",
"@types/jest": "^26.0.8",
"cp": "^0.2.0",
"jest": "^25.5.4",
"path": "^0.12.7",
@@ -45,15 +45,15 @@
"rimraf": "^3.0.2",
"semantic-release": "^17.1.1",
"ts-jest": "^25.5.1",
"ts-loader": "^8.0.1",
"tslint": "^6.1.2",
"ts-loader": "^8.0.2",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0",
"typedoc": "^0.17.8",
"typedoc-neo-theme": "^1.0.9",
"typedoc-plugin-external-module-name": "^4.0.3",
"typescript": "^3.9.7",
"uglifyjs-webpack-plugin": "^2.2.0",
"webpack": "^4.43.0",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12"
},
"main": "index.js",

View File

@@ -1018,7 +1018,10 @@ export class SASViyaApiClient {
const { result: folder } = await this.request<Folder>(
`${this.serverUrl}${url}`,
requestInfo
);
).catch((err) => {
return {result: null};
})
if (!folder) return undefined;
return `/folders/folders/${folder.id}`;
}

View File

@@ -1,4 +1,8 @@
import { CsrfToken } from "../types";
import { needsRetry } from "./needsRetry";
let retryCount: number = 0;
let retryLimit: number = 5;
export async function makeRequest<T>(
url: string,
@@ -6,6 +10,8 @@ export async function makeRequest<T>(
callback: (value: CsrfToken) => any,
contentType: "text" | "json" = "json"
): Promise<{ result: T; etag: string | null }> {
let retryRequest: any = null;
const responseTransform =
contentType === "json"
? (res: Response) => res.json()
@@ -23,7 +29,7 @@ export async function makeRequest<T>(
value: token || "",
});
const retryRequest = {
retryRequest = {
...request,
headers: { ...request.headers, [tokenHeader]: token },
};
@@ -34,15 +40,53 @@ export async function makeRequest<T>(
}
} else {
const body = await response.text();
if (needsRetry(body)) {
if (retryCount < retryLimit) {
retryCount++;
let retryResponse = await makeRequest(url, retryRequest || request, callback, contentType);
retryCount = 0;
return retryResponse;
} else {
retryCount = 0;
throw new Error('Request retry limit exceeded');
}
}
return Promise.reject({ status: response.status, body });
}
} else {
if (response.redirected && response.url.includes("SASLogon/login")) {
const body = await response.text();
return Promise.reject({ status: 401, body });
const responseTransformed = await responseTransform(response);
let responseText = '';
if (typeof responseTransformed === 'string') {
responseText = responseTransformed;
} else {
responseText = JSON.stringify(responseTransformed);
}
if (response.redirected && response.url.includes("SASLogon/login")) {
return Promise.reject({ status: 401, responseTransformed });
}
if (needsRetry(responseText)) {
if (retryCount < retryLimit) {
retryCount++;
let retryResponse = await makeRequest(url, retryRequest || request, callback, contentType);
retryCount = 0;
return retryResponse;
} else {
retryCount = 0;
throw new Error('Request retry limit exceeded');
}
}
etag = response.headers.get("ETag");
return responseTransform(response);
return responseTransformed;
}
});
return { result, etag };