ee-ts-util
Version:
typescript utilities and functions
23 lines • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fetch = require("isomorphic-fetch");
exports.fetchPageData = (baseUrl, apiPath, token, dtoAccumulator, extract) => (fetch(`${baseUrl}${apiPath}`, {
headers: new Headers({ "content-type": "application/json", "auth": token }),
}).then((response) => {
if (!response.ok) {
return response.text().then((body) => Promise.reject("[Request Error]" +
`[${response.url}][HTTP ${response.status} - ${response.statusText}][payload:${body}]`));
}
return response.json().then((nextPageJson) => extractPageData(nextPageJson, dtoAccumulator, baseUrl, token, extract));
}));
const extractPageData = (responseJson, dtoAccumulator, baseUrl, token, extract) => {
const currentPageDtos = responseJson.data.map(extract);
dtoAccumulator.push(...currentPageDtos);
if (responseJson.paging.next != null) {
return exports.fetchPageData(baseUrl, responseJson.paging.next, token, dtoAccumulator, extract);
}
else {
return Promise.resolve(dtoAccumulator);
}
};
//# sourceMappingURL=common.js.map