mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-31 00:16:47 +01:00
53354224fc
Upgrades biome to 1.6.1, and updates husky pre-commit hook. Most changes here are making type imports explicit.
33 lines
1.1 KiB
TypeScript
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;
|