Add robustness to download script

This commit is contained in:
Pieter Vander Vennet 2021-05-14 17:37:21 +02:00
parent 7101baf13b
commit 703b66195f

View file

@ -17,37 +17,43 @@ export default class ScriptUtils {
} }
return result; return result;
} }
public static DownloadJSON(url) : Promise<any>{
return new Promise((resolve, reject) => {
https.get(url, (res) => {
const parts : string[] = []
res.setEncoding('utf8');
res.on('data', function (chunk) {
// @ts-ignore
parts.push(chunk)
});
res.addListener('end', function () { public static DownloadJSON(url): Promise<any> {
const result = parts.join("") return new Promise((resolve, reject) => {
try{ try {
resolve(JSON.parse(result))
}catch (e){
reject(e) https.get(url, (res) => {
} const parts: string[] = []
}); res.setEncoding('utf8');
}) res.on('data', function (chunk) {
// @ts-ignore
parts.push(chunk)
});
res.addListener('end', function () {
const result = parts.join("")
try {
resolve(JSON.parse(result))
} catch (e) {
reject(e)
}
});
})
} catch (e) {
reject(e)
}
}) })
} }
public static sleep(ms) { public static sleep(ms) {
if(ms <= 0){ if (ms <= 0) {
process.stdout.write("\r \r") process.stdout.write("\r \r")
return; return;
} }
return new Promise((resolve) => { return new Promise((resolve) => {
process.stdout.write("\r Sleeping for "+(ms/1000)+"s \r") process.stdout.write("\r Sleeping for " + (ms / 1000) + "s \r")
setTimeout(resolve, 1000); setTimeout(resolve, 1000);
}).then(() => ScriptUtils.sleep(ms - 1000)); }).then(() => ScriptUtils.sleep(ms - 1000));
} }