unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
26 lines • 1.03 kB
JavaScript
// Copy of https://github.com/Unleash/unleash-proxy/blob/main/src/create-context.ts.
import crypto from 'node:crypto';
export function createContext(contextData) {
const { appName, environment, userId, sessionId, remoteAddress, properties, ...rest } = contextData;
// move non root context fields to properties
const context = {
appName,
environment,
userId,
sessionId,
remoteAddress,
properties: Object.assign({}, rest, properties),
};
// Clean undefined properties on the context
const cleanContext = Object.keys(context)
.filter((k) => context[k])
.reduce((a, k) => ({ ...a, [k]: context[k] }), {});
return cleanContext;
}
export const enrichContextWithIp = (contextData, ip) => {
contextData.remoteAddress = contextData.remoteAddress || ip;
contextData.sessionId =
contextData.sessionId || crypto.randomBytes(18).toString('hex');
return createContext(contextData);
};
//# sourceMappingURL=create-context.js.map