diff --git a/core/base-service/legacy-request-handler.js b/core/base-service/legacy-request-handler.js index 0639c098d59463bdf68a488f836c2e0558d4ccc0..d7375a880f7608b306205af369db5c7016ffff2b 100644 --- a/core/base-service/legacy-request-handler.js +++ b/core/base-service/legacy-request-handler.js @@ -1,11 +1,8 @@ 'use strict' -// eslint-disable-next-line node/no-deprecated-api -const domain = require('domain') const request = require('request') const queryString = require('query-string') const makeBadge = require('../../gh-badges/lib/make-badge') -const log = require('../server/log') const { setCacheHeaders } = require('./cache-headers') const { Inaccessible, @@ -32,12 +29,6 @@ const freqRatioMax = 1 - minAccuracy // Request cache size of 5MB (~5000 bytes/image). const requestCache = new LruCache(1000) -// Deep error handling for vendor hooks. -const vendorDomain = domain.create() -vendorDomain.on('error', err => { - log.error('Vendor hook error:', err.stack) -}) - // These query parameters are available to any badge. They are handled by // `coalesceBadge`. const globalQueryParams = new Set([ @@ -254,51 +245,47 @@ function handleRequest(cacheHeaderConfig, handlerOptions) { // to pass a callback. cachingRequest.asPromise = promisify(cachingRequest) - vendorDomain.run(() => { - const result = handlerOptions.handler( - filteredQueryParams, - match, - // eslint-disable-next-line mocha/prefer-arrow-callback - function sendBadge(format, badgeData) { - if (serverUnresponsive) { - return - } - clearTimeout(serverResponsive) - // Check for a change in the data. - let dataHasChanged = false - if ( - cached !== undefined && - cached.data.badgeData.text[1] !== badgeData.text[1] - ) { - dataHasChanged = true - } - // Add format to badge data. - badgeData.format = format - // Update information in the cache. - const updatedCache = { - reqs: cached ? cached.reqs + 1 : 1, - dataChange: cached - ? cached.dataChange + (dataHasChanged ? 1 : 0) - : 1, - time: +reqTime, - interval: cacheInterval, - data: { format, badgeData }, - } - requestCache.set(cacheIndex, updatedCache) - if (!cachedVersionSent) { - const svg = makeBadge(badgeData) - setCacheHeadersOnResponse(ask.res, badgeData.cacheLengthSeconds) - makeSend(format, ask.res, end)(svg) - } - }, - cachingRequest - ) - if (result && result.catch) { - result.catch(err => { - throw err - }) - } - }) + const result = handlerOptions.handler( + filteredQueryParams, + match, + // eslint-disable-next-line mocha/prefer-arrow-callback + function sendBadge(format, badgeData) { + if (serverUnresponsive) { + return + } + clearTimeout(serverResponsive) + // Check for a change in the data. + let dataHasChanged = false + if ( + cached !== undefined && + cached.data.badgeData.text[1] !== badgeData.text[1] + ) { + dataHasChanged = true + } + // Add format to badge data. + badgeData.format = format + // Update information in the cache. + const updatedCache = { + reqs: cached ? cached.reqs + 1 : 1, + dataChange: cached ? cached.dataChange + (dataHasChanged ? 1 : 0) : 1, + time: +reqTime, + interval: cacheInterval, + data: { format, badgeData }, + } + requestCache.set(cacheIndex, updatedCache) + if (!cachedVersionSent) { + const svg = makeBadge(badgeData) + setCacheHeadersOnResponse(ask.res, badgeData.cacheLengthSeconds) + makeSend(format, ask.res, end)(svg) + } + }, + cachingRequest + ) + if (result && result.catch) { + result.catch(err => { + throw err + }) + } } }