1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-04 00:18:40 +01:00
unleash.unleash/src/lib/middleware/maintenance-middleware.ts

22 lines
661 B
TypeScript
Raw Normal View History

2022-12-19 08:01:04 +01:00
import { IUnleashConfig } from '../types';
import { Request } from 'express';
const maintenanceMiddleware = ({
getLogger,
flagResolver,
}: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>): any => {
const logger = getLogger('/middleware/maintenance-middleware.ts');
logger.debug('Enabling Maintenance middleware');
return async (req: Request, res, next) => {
const writeMethod = ['POST', 'PUT', 'DELETE'].includes(req.method);
if (writeMethod && flagResolver.isEnabled('maintenance')) {
res.status(503).send({});
} else {
next();
}
};
};
export default maintenanceMiddleware;