UNPKG

cloudworker-proxy

Version:
265 lines (261 loc) 3.36 kB
// Data from https://datahub.io/JohnSnowLabs/country-and-continent-codes-list#data const countryRegions = { AF: 'AS', AL: 'EU', AQ: 'AN', DZ: 'AF', AS: 'OC', AD: 'EU', AO: 'AF', AG: 'NA', AZ: 'EU', AR: 'SA', AU: 'OC', AT: 'EU', BS: 'NA', BH: 'AS', BD: 'AS', AM: 'EU', BB: 'NA', BE: 'EU', BM: 'NA', BT: 'AS', BO: 'SA', BA: 'EU', BW: 'AF', BV: 'AN', BR: 'SA', BZ: 'NA', IO: 'AS', SB: 'OC', VG: 'NA', BN: 'AS', BG: 'EU', MM: 'AS', BI: 'AF', BY: 'EU', KH: 'AS', CM: 'AF', CA: 'NA', CV: 'AF', KY: 'NA', CF: 'AF', LK: 'AS', TD: 'AF', CL: 'SA', CN: 'AS', TW: 'AS', CX: 'AS', CC: 'AS', CO: 'SA', KM: 'AF', YT: 'AF', CG: 'AF', CD: 'AF', CK: 'OC', CR: 'NA', HR: 'EU', CU: 'NA', CY: 'EU', CZ: 'EU', BJ: 'AF', DK: 'EU', DM: 'NA', DO: 'NA', EC: 'SA', SV: 'NA', GQ: 'AF', ET: 'AF', ER: 'AF', EE: 'EU', FO: 'EU', FK: 'SA', GS: 'AN', FJ: 'OC', FI: 'EU', AX: 'EU', FR: 'EU', GF: 'SA', PF: 'OC', TF: 'AN', DJ: 'AF', GA: 'AF', GE: 'EU', GM: 'AF', PS: 'AS', DE: 'EU', GH: 'AF', GI: 'EU', KI: 'OC', GR: 'EU', GL: 'NA', GD: 'NA', GP: 'NA', GU: 'OC', GT: 'NA', GN: 'AF', GY: 'SA', HT: 'NA', HM: 'AN', VA: 'EU', HN: 'NA', HK: 'AS', HU: 'EU', IS: 'EU', IN: 'AS', ID: 'AS', IR: 'AS', IQ: 'AS', IE: 'EU', IL: 'AS', IT: 'EU', CI: 'AF', JM: 'NA', JP: 'AS', KZ: 'EU', JO: 'AS', KE: 'AF', KP: 'AS', KR: 'AS', KW: 'AS', KG: 'AS', LA: 'AS', LB: 'AS', LS: 'AF', LV: 'EU', LR: 'AF', LY: 'AF', LI: 'EU', LT: 'EU', LU: 'EU', MO: 'AS', MG: 'AF', MW: 'AF', MY: 'AS', MV: 'AS', ML: 'AF', MT: 'EU', MQ: 'NA', MR: 'AF', MU: 'AF', MX: 'NA', MC: 'EU', MN: 'AS', MD: 'EU', ME: 'EU', MS: 'NA', MA: 'AF', MZ: 'AF', OM: 'AS', NA: 'AF', NR: 'OC', NP: 'AS', NL: 'EU', AN: 'NA', CW: 'NA', AW: 'NA', SX: 'NA', BQ: 'NA', NC: 'OC', VU: 'OC', NZ: 'OC', NI: 'NA', NE: 'AF', NG: 'AF', NU: 'OC', NF: 'OC', NO: 'EU', MP: 'OC', UM: 'OC', FM: 'OC', MH: 'OC', PW: 'OC', PK: 'AS', PA: 'NA', PG: 'OC', PY: 'SA', PE: 'SA', PH: 'AS', PN: 'OC', PL: 'EU', PT: 'EU', GW: 'AF', TL: 'AS', PR: 'NA', QA: 'AS', RE: 'AF', RO: 'EU', RU: 'EU', RW: 'AF', BL: 'NA', SH: 'AF', KN: 'NA', AI: 'NA', LC: 'NA', MF: 'NA', PM: 'NA', VC: 'NA', SM: 'EU', ST: 'AF', SA: 'AS', SN: 'AF', RS: 'EU', SC: 'AF', SL: 'AF', SG: 'AS', SK: 'EU', VN: 'AS', SI: 'EU', SO: 'AF', ZA: 'AF', ZW: 'AF', ES: 'EU', SS: 'AF', EH: 'AF', SD: 'AF', SR: 'SA', SJ: 'EU', SZ: 'AF', SE: 'EU', CH: 'EU', SY: 'AS', TJ: 'AS', TH: 'AS', TG: 'AF', TK: 'OC', TO: 'OC', TT: 'NA', AE: 'AS', TN: 'AF', TR: 'EU', TM: 'AS', TC: 'NA', TV: 'OC', UG: 'AF', UA: 'EU', MK: 'EU', EG: 'AF', GB: 'EU', GG: 'EU', JE: 'EU', IM: 'EU', TZ: 'AF', US: 'NA', VI: 'NA', BF: 'AF', UY: 'SA', UZ: 'AS', VE: 'SA', WF: 'OC', WS: 'OC', YE: 'AS', ZM: 'AF', XX: 'XX', }; module.exports = function geoHandler() { return async (ctx, next) => { const country = ctx.request.headers['cf-ipcountry'] || 'XX'; ctx.request.headers['proxy-continent'] = countryRegions[country]; await next(ctx); }; };