@@ -12,38 +12,37 @@ const axios = require('axios');
1212 * @param {string } lang Language/locale code.
1313 * @returns {Promise<void> } A promise when the operation is completed.
1414 */
15- exports . download = ( loc , lang ) => {
15+ exports . download = async ( loc , lang ) => {
1616 // If the lang is english then keep the url simple, otherwise add language.
1717 const suffix = ( lang === 'en' ? '' : '.' + lang ) ;
1818 const url = config . get ( ) . repositoryBase + suffix + '.zip' ;
1919 const folderName = path . join ( loc , 'pages' + suffix ) ;
20- const REQUEST_TIMEOUT = 10000 ;
20+ const REQUEST_TIMEOUT = 120000 ;
2121
22- return axios ( {
22+ const response = await axios ( {
2323 method : 'get' ,
2424 url : url ,
2525 responseType : 'stream' ,
26- headers : { 'User-Agent' : 'tldr-node-client' } ,
26+ headers : { 'User-Agent' : 'tldr-node-client' } ,
2727 timeout : REQUEST_TIMEOUT ,
28- } ) . then ( ( response ) => {
29- return new Promise ( ( /** @type {(v?: never) => void } */ resolve , reject ) => {
30- let fileName = path . join ( loc , 'download_' + lang + '.zip' ) ;
28+ } ) ;
3129
32- const writer = fs . createWriteStream ( fileName ) ;
33- response . data . pipe ( writer ) ;
30+ let fileName = path . join ( loc , 'download_' + lang + '.zip' ) ;
31+ const writer = fs . createWriteStream ( fileName ) ;
3432
35- writer . on ( 'finish' , ( ) => {
36- writer . end ( ) ;
37- const zip = new unzip ( fileName ) ;
33+ const promise = new Promise ( ( /** @type {(v?: never) => void } */ resolve , reject ) => {
34+ writer . on ( 'finish' , ( ) => {
35+ writer . end ( ) ;
36+ const zip = new unzip ( fileName ) ;
3837
39- zip . extractAllTo ( folderName , true ) ;
40- fs . unlinkSync ( fileName ) ;
41- resolve ( ) ;
42- } ) . on ( 'error' , ( err ) => {
43- reject ( err ) ;
44- } ) ;
38+ zip . extractAllTo ( folderName , true ) ;
39+ fs . unlinkSync ( fileName ) ;
40+ resolve ( ) ;
41+ } ) . on ( 'error' , ( err ) => {
42+ reject ( err ) ;
4543 } ) ;
46- } ) . catch ( ( err ) => {
47- return Promise . reject ( err ) ;
4844 } ) ;
45+
46+ response . data . pipe ( writer ) ;
47+ return promise ;
4948} ;
0 commit comments