@@ -3,7 +3,7 @@ import format from 'date-fns/format';
33import isUrl from 'is-url' ;
44import jsdom , { serializeDocument } from 'jsdom' ;
55import isAfter from 'date-fns/isAfter' ;
6- import request from 'request ' ;
6+ import axios from 'axios ' ;
77import slugify from 'slugify' ;
88import Project from '../models/project' ;
99import User from '../models/user' ;
@@ -125,7 +125,7 @@ export function getProjectsForUserId(userId) {
125125export function getProjectAsset ( req , res ) {
126126 Project . findById ( req . params . project_id )
127127 . populate ( 'user' , 'username' )
128- . exec ( ( err , project ) => { // eslint-disable-line
128+ . exec ( async ( err , project ) => { // eslint-disable-line
129129 if ( err ) {
130130 return res
131131 . status ( 404 )
@@ -145,15 +145,15 @@ export function getProjectAsset(req, res) {
145145 if ( ! resolvedFile . url ) {
146146 return res . send ( resolvedFile . content ) ;
147147 }
148- request (
149- { method : 'GET' , url : resolvedFile . url , encoding : null } ,
150- ( innerErr , response , body ) => {
151- if ( innerErr ) {
152- return res . status ( 404 ) . send ( { message : 'Asset does not exist' } ) ;
153- }
154- return res . send ( body ) ;
155- }
156- ) ;
148+
149+ try {
150+ const { data } = await axios . get ( resolvedFile . url , {
151+ responseType : 'arraybuffer'
152+ } ) ;
153+ res . send ( data ) ;
154+ } catch ( error ) {
155+ res . status ( 404 ) . send ( { message : 'Asset does not exist' } ) ;
156+ }
157157 } ) ;
158158}
159159
@@ -198,7 +198,7 @@ function bundleExternalLibs(project, zip, callback) {
198198 let numScriptsResolved = 0 ;
199199 let numScriptTags = 0 ;
200200
201- function resolveScriptTagSrc ( scriptTag , document ) {
201+ async function resolveScriptTagSrc ( scriptTag , document ) {
202202 const path = scriptTag . src . split ( '/' ) ;
203203 const filename = path [ path . length - 1 ] ;
204204 const { src } = scriptTag ;
@@ -212,23 +212,21 @@ function bundleExternalLibs(project, zip, callback) {
212212 return ;
213213 }
214214
215- request (
216- { method : 'GET' , url : src , encoding : null } ,
217- ( err , response , body ) => {
218- if ( err ) {
219- console . log ( err ) ;
220- } else {
221- zip . append ( body , { name : filename } ) ;
222- scriptTag . src = filename ;
223- }
215+ try {
216+ const { data } = await axios . get ( src , {
217+ responseType : 'arraybuffer'
218+ } ) ;
219+ zip . append ( data , { name : filename } ) ;
220+ scriptTag . src = filename ;
221+ } catch ( err ) {
222+ console . log ( err ) ;
223+ }
224224
225- numScriptsResolved += 1 ;
226- if ( numScriptsResolved === numScriptTags ) {
227- indexHtml . content = serializeDocument ( document ) ;
228- callback ( ) ;
229- }
230- }
231- ) ;
225+ numScriptsResolved += 1 ;
226+ if ( numScriptsResolved === numScriptTags ) {
227+ indexHtml . content = serializeDocument ( document ) ;
228+ callback ( ) ;
229+ }
232230 }
233231
234232 jsdom . env ( indexHtml . content , ( innerErr , window ) => {
@@ -264,7 +262,7 @@ function buildZip(project, req, res) {
264262 ) ;
265263 zip . pipe ( res ) ;
266264
267- function addFileToZip ( file , path ) {
265+ async function addFileToZip ( file , path ) {
268266 if ( file . fileType === 'folder' ) {
269267 const newPath = file . name === 'root' ? path : `${ path } ${ file . name } /` ;
270268 file . children . forEach ( ( fileId ) => {
@@ -274,16 +272,18 @@ function buildZip(project, req, res) {
274272 } ) ( ) ;
275273 } ) ;
276274 } else if ( file . url ) {
277- request (
278- { method : 'GET' , url : file . url , encoding : null } ,
279- ( err , response , body ) => {
280- zip . append ( body , { name : `${ path } ${ file . name } ` } ) ;
281- numCompletedFiles += 1 ;
282- if ( numCompletedFiles === numFiles ) {
283- zip . finalize ( ) ;
284- }
285- }
286- ) ;
275+ try {
276+ const { data } = await axios . get ( file . url , {
277+ responseType : 'arraybuffer'
278+ } ) ;
279+ zip . append ( data , { name : `${ path } ${ file . name } ` } ) ;
280+ } catch ( err ) {
281+ console . log ( err ) ;
282+ }
283+ numCompletedFiles += 1 ;
284+ if ( numCompletedFiles === numFiles ) {
285+ zip . finalize ( ) ;
286+ }
287287 } else {
288288 zip . append ( file . content , { name : `${ path } ${ file . name } ` } ) ;
289289 numCompletedFiles += 1 ;
0 commit comments