import { config } from './config.js' import * as cache from './cache.js' import { getRedisKey } from './util.js' export async function fetchMergedMetadata () { const metadata = await Promise.all(config.urls.map(async url => { const { origin } = new URL(url) try { const response = await fetch(new URL('meta.json', origin)) if (!response.ok) return return response.json() } catch (e) { // unhandled } })) metadata.push({ id: 'ui-middleware', name: 'UI Middleware', buildDate: process.env.BUILD_TIMESTAMP, commitSha: process.env.CI_COMMIT_SHA, version: process.env.APP_VERSION }) // only return when contains data return metadata.filter(Boolean) } export function getMergedMetadata ({ version }) { return cache.get(getRedisKey({ version, name: 'mergedMetadata' }), () => fetchMergedMetadata()) }