mirror of
https://github.com/Unleash/unleash.git
synced 2025-03-04 00:18:40 +01:00
22 lines
661 B
TypeScript
22 lines
661 B
TypeScript
|
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;
|