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

feat(*): recreate package with new name

This commit is contained in:
Krishna Acondy
2020-07-07 19:53:35 +01:00
commit 066f953863
150 changed files with 48625 additions and 0 deletions

37
src/utils/makeRequest.ts Normal file
View File

@@ -0,0 +1,37 @@
import { CsrfToken } from "../types";
export async function makeRequest<T>(
url: string,
request: RequestInit,
callback: (value: CsrfToken) => any,
contentType: "text" | "json" = "json"
): Promise<T> {
const responseTransform =
contentType === "json"
? (res: Response) => res.json()
: (res: Response) => res.text();
const result = await fetch(url, request).then((response) => {
if (!response.ok) {
if (response.status === 403) {
const tokenHeader = response.headers.get("X-CSRF-HEADER");
if (tokenHeader) {
const token = response.headers.get(tokenHeader);
callback({
headerName: tokenHeader,
value: token || "",
});
const retryRequest = {
...request,
headers: { ...request.headers, [tokenHeader]: token },
};
return fetch(url, retryRequest).then(responseTransform);
}
}
} else {
return responseTransform(response);
}
});
return result;
}