1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00
unleash.unleash/src/lib/features/maintenance/maintenance-middleware.ts
Christopher Kolstad 53354224fc
chore: Bump biome and configure husky (#6589)
Upgrades biome to 1.6.1, and updates husky pre-commit hook.

Most changes here are making type imports explicit.
2024-03-18 13:58:05 +01:00

33 lines
1.1 KiB
TypeScript

import type { IUnleashConfig } from '../../types';
import type MaintenanceService from './maintenance-service';
import type { IAuthRequest } from '../../routes/unleash-types';
export const MAINTENANCE_MODE_ENABLED =
'Unleash is currently in maintenance mode.';
const maintenanceMiddleware = (
{ getLogger }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>,
maintenanceService: MaintenanceService,
): any => {
const logger = getLogger('/middleware/maintenance-middleware.ts');
logger.debug('Enabling Maintenance middleware');
return async (req: IAuthRequest, res, next) => {
const isProtectedPath = !req.path.includes('/maintenance');
const writeMethod = ['POST', 'PUT', 'DELETE'].includes(req.method);
if (
isProtectedPath &&
writeMethod &&
(await maintenanceService.isMaintenanceMode())
) {
res.status(503).send({
message: MAINTENANCE_MODE_ENABLED,
});
} else {
next();
}
};
};
export default maintenanceMiddleware;