diff options
Diffstat (limited to 'src/main/util/webrequest.ts')
-rw-r--r-- | src/main/util/webrequest.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main/util/webrequest.ts b/src/main/util/webrequest.ts new file mode 100644 index 0000000..aba8bfd --- /dev/null +++ b/src/main/util/webrequest.ts @@ -0,0 +1,35 @@ +import * as https from 'https'; +import * as http from 'http'; + +export function getRequest(url:string):Promise<any> { + const webrequest:any = url.indexOf('https') !== -1 ? https:http; + const t1 = Date.now(); + return new Promise((resolve, reject) => { + webrequest.get(url, (res:any) => { + const { statusCode } = res; + + let error; + if (statusCode !== 200) { + error = new Error('Request Failed.\n' + + `Status Code: ${statusCode}`); + } + if (error) { + res.resume(); + reject(error); + } else { + res.setEncoding('utf8'); + let rawData = ''; + res.on('data', (chunk:any) => { rawData += chunk; }); + res.on('end', () => { + try { + resolve(JSON.parse(rawData)); + } catch (e) { + reject(e); + } + }); + } + }).on('error', (e:Error) => { + reject(e); + }); + }); +} |