UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

34 lines 1.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.enrichContextWithIp = void 0; exports.createContext = createContext; // Copy of https://github.com/Unleash/unleash-proxy/blob/main/src/create-context.ts. const node_crypto_1 = __importDefault(require("node:crypto")); 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; } const enrichContextWithIp = (contextData, ip) => { contextData.remoteAddress = contextData.remoteAddress || ip; contextData.sessionId = contextData.sessionId || node_crypto_1.default.randomBytes(18).toString('hex'); return createContext(contextData); }; exports.enrichContextWithIp = enrichContextWithIp; //# sourceMappingURL=create-context.js.map