import * as http from 'http'; export const getFileContents: () => Promise = () => new Promise((resolve, reject) => { const product = 'assets_swtor_de_de'; //Generate URL const url = `http://cdn-patch.swtor.com/patch/${product}/${product}_-1to0.solidpkg`; const path = `/patch/${product}/${product}_-1to0.solidpkg`; const fileName = url.substr(url.lastIndexOf('/') + 1); const request = http.request({ family: 4, host: 'cdn-patch.swtor.com', path, }, (response) => { console.log(`STATUS: ${response.statusCode}`); console.log(`HEADERS: ${JSON.stringify(response.headers)}`); const chunkList: Buffer[] = []; let totalLength = 0; response.on('data', (chunk) => { console.log(`BODY: ${chunk.length}`); chunkList.push(chunk); totalLength += chunk.length; }); response.on('end', () => { console.log('No more data in response.'); const fileContents = Buffer.concat(chunkList, totalLength); resolve(fileContents); }); }); request.on('error', (e) => { console.error(`problem with request: ${e.message}`); reject(e); }); request.end(); }); getFileContents();