unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
37 lines • 1.15 kB
JavaScript
/**
* @deprecated Use `requireFeatureEnabled` for feature-flag route gating.
*
* Generic conditional middleware runner.
* Prefer this only for non-feature-flag conditions.
*/
export const conditionalMiddleware = (condition, middleware) => {
return (req, res, next) => {
if (condition()) {
middleware(req, res, next);
}
else {
next();
}
};
};
/**
* Route-level feature gate middleware.
*
* Recommended usage:
* `middleware: [requireFeatureEnabled(config.flagResolver, 'myFlag')]`
*
* Guidance:
* - Prefer route-level usage (`this.route({ middleware: [...] })`) in controllers.
* - Avoid broad prefix mounts (for example `/api/admin/projects`) where sibling routes
* can accidentally be gated.
* - The route remains registered/discoverable; disabled features return `404` at request time.
*/
export const requireFeatureEnabled = (flagResolver, flagName) => {
return (_req, res, next) => {
if (flagResolver.isEnabled(flagName)) {
return next();
}
return res.sendStatus(404);
};
};
//# sourceMappingURL=conditional-middleware.js.map