return new Promise((done, reject) => { curl.on('end', (statusCode, body, headers) => { if (statusCode > 400) { reject(); return; } curl.close.bind(curl); done(body); }); curl.on('error', () => { curl.close.bind(curl); reject(); }); curl.perform(); });
protected async downloadByCurl(url: string) { const curl = new Curl(); curl.setOpt('URL', url); curl.setOpt('FOLLOWLOCATION', true); return new Promise((done, reject) => { curl.on('end', (statusCode, body, headers) => { if (statusCode > 400) { reject(); return; } curl.close.bind(curl); done(body); }); curl.on('error', () => { curl.close.bind(curl); reject(); }); curl.perform(); }); }