Files
worldmonitor/api/opensky.js
Elie Habib 7c3f3825f7 refactor(api): extract shared relay helper into _relay.js (#782)
DRY 7 edge functions that duplicated relay proxy boilerplate (~80%
identical: CORS, origin check, OPTIONS, relay URL construction, auth
headers, fetchWithTimeout, error handling).

- New `api/_relay.js` exports createRelayHandler factory + getRelayBaseUrl,
  getRelayHeaders, fetchWithTimeout utilities
- Convert ais-snapshot, polymarket, opensky, oref-alerts, telegram-feed
  to ~15-25 line config objects via createRelayHandler
- Refactor youtube/live.js and rss-proxy.js to import shared utils only
  (complex handlers not suited for factory pattern)
- 30 unit/behavior tests in tests/relay-helper.test.mjs

Net: -501 lines removed, +72 added across 7 prod files. Relay utility
functions exist in 1 place instead of 7.
2026-03-02 19:28:31 +04:00

16 lines
438 B
JavaScript

import { createRelayHandler } from './_relay.js';
export const config = { runtime: 'edge' };
export default createRelayHandler({
relayPath: '/opensky',
timeout: 20000,
cacheHeaders: () => ({
'Cache-Control': 'public, s-maxage=120, stale-while-revalidate=60, stale-if-error=300',
}),
extraHeaders: (response) => {
const xCache = response.headers.get('x-cache');
return xCache ? { 'X-Cache': xCache } : {};
},
});