UNPKG

@backstage/backend-defaults

Version:

Backend defaults used by Backstage backend apps

53 lines (47 loc) 1.67 kB
'use strict'; var Router = require('express-promise-router'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var Router__default = /*#__PURE__*/_interopDefaultCompat(Router); const HEADER_CONFIG_KEY = "backend.health.headers"; function createHealthRouter(options) { const headersConfig = options.config.getOptionalConfig(HEADER_CONFIG_KEY)?.get(); if (headersConfig) { for (const [key, value] of Object.entries(headersConfig)) { if (!key || typeof key !== "string") { throw new Error( `Invalid header name in at ${HEADER_CONFIG_KEY}, must be a non-empty string` ); } if (!value || typeof value !== "string") { throw new Error( `Invalid header value in at ${HEADER_CONFIG_KEY}, must be a non-empty string` ); } } } const headers = headersConfig && new Headers(headersConfig); const router = Router__default.default(); router.get( "/.backstage/health/v1/readiness", async (_request, response) => { const { status, payload } = await options.health.getReadiness(); if (headers) { response.setHeaders(headers); } response.status(status).json(payload); } ); router.get( "/.backstage/health/v1/liveness", async (_request, response) => { const { status, payload } = await options.health.getLiveness(); if (headers) { response.setHeaders(headers); } response.status(status).json(payload); } ); return router; } exports.createHealthRouter = createHealthRouter; //# sourceMappingURL=createHealthRouter.cjs.js.map