unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
28 lines • 1.01 kB
JavaScript
import { REQUEST_ORIGIN, emitMetricEvent } from '../metric-events.js';
import { determineIntegrationSource } from './integration-headers.js';
export const originMiddleware = ({ getLogger, eventBus, }) => {
const logger = getLogger('/middleware/origin-middleware.ts');
logger.debug('Enabling origin middleware');
return (req, _, next) => {
const isUI = !req.headers.authorization;
if (isUI) {
emitMetricEvent(eventBus, REQUEST_ORIGIN, {
type: 'UI',
method: req.method,
});
}
else {
const userAgent = req.headers['user-agent'];
const uaLabel = userAgent
? determineIntegrationSource(userAgent)
: 'Other';
emitMetricEvent(eventBus, REQUEST_ORIGIN, {
type: 'API',
method: req.method,
source: uaLabel,
});
}
next();
};
};
//# sourceMappingURL=origin-middleware.js.map