From 53b7d46975d8bfbfcaee100c3d807983caecb1f0 Mon Sep 17 00:00:00 2001 From: andrew rumble Date: Thu, 27 Jun 2024 17:02:07 +0100 Subject: [PATCH] Replace request with fetch-utils in ExpressLocals GitOrigin-RevId: 85c112a2124aeca128753e40c70869517c7026f6 --- .../app/src/infrastructure/ExpressLocals.js | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/services/web/app/src/infrastructure/ExpressLocals.js b/services/web/app/src/infrastructure/ExpressLocals.js index 4c2d227c33..35ab09d9a3 100644 --- a/services/web/app/src/infrastructure/ExpressLocals.js +++ b/services/web/app/src/infrastructure/ExpressLocals.js @@ -5,7 +5,7 @@ const _ = require('lodash') const { URL } = require('url') const Path = require('path') const moment = require('moment') -const request = require('request') +const { fetchJson, RequestFailedError } = require('@overleaf/fetch-utils') const contentDisposition = require('content-disposition') const Features = require('./Features') const SessionManager = require('../Features/Authentication/SessionManager') @@ -51,24 +51,28 @@ switch (process.env.NODE_ENV) { webpackManifest = {} } function loadManifestFromWebpackDevServer(done = function () {}) { - request( + webpackManifest = fetchJson( + new URL(`/manifest.json`, Settings.apis.webpack.url), { - uri: `${Settings.apis.webpack.url}/manifest.json`, - headers: { Host: 'localhost' }, - json: true, - }, - (err, res, body) => { - if (!err && res.statusCode !== 200) { - err = new Error(`webpack responded with statusCode: ${res.statusCode}`) - } - if (err) { - logger.err({ err }, 'cannot fetch webpack manifest') - return done(err) - } - webpackManifest = body - done() + headers: { + Host: 'localhost', + }, } ) + .then(json => { + webpackManifest = json + done() + }) + .catch(err => { + let error = err + if (err instanceof RequestFailedError) { + error = new Error( + `webpack responded with statusCode: ${err.response.status}` + ) + } + logger.err({ error }, 'cannot fetch webpack manifest') + done(error) + }) } const IN_CI = process.env.NODE_ENV === 'test' function getWebpackAssets(entrypoint, section) {