UNPKG

@devcycle/nodejs-server-sdk

Version:

The DevCycle NodeJS Server SDK used for feature management.

55 lines 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bucketUserForConfig = bucketUserForConfig; exports.getSDKKeyFromConfig = getSDKKeyFromConfig; exports.getVariableTypeCode = getVariableTypeCode; exports.variableForUser = variableForUser; exports.variableForUser_PB = variableForUser_PB; const types_1 = require("@devcycle/types"); const compiled_1 = require("@devcycle/bucketing-assembly-script/protobuf/compiled"); const pbTypeHelpers_1 = require("../pb-types/pbTypeHelpers"); const populatedUserHelpers_1 = require("../models/populatedUserHelpers"); function bucketUserForConfig(bucketing, user, sdkKey) { return JSON.parse(bucketing.generateBucketedConfigForUser(sdkKey, JSON.stringify(user))); } function getSDKKeyFromConfig(bucketing, sdkKey) { return bucketing.getSDKKeyFromConfig(sdkKey); } function getVariableTypeCode(bucketing, type) { switch (type) { case types_1.VariableType.boolean: return bucketing.VariableType.Boolean; case types_1.VariableType.number: return bucketing.VariableType.Number; case types_1.VariableType.string: return bucketing.VariableType.String; case types_1.VariableType.json: return bucketing.VariableType.JSON; default: throw new Error(`Unknown variable type: ${type}`); } } function variableForUser(bucketing, sdkKey, user, key, type) { const bucketedVariable = bucketing.variableForUser(sdkKey, JSON.stringify(user), key, type, true); if (!bucketedVariable) return null; return JSON.parse(bucketedVariable); } function variableForUser_PB(bucketing, sdkKey, user, key, type) { const params = { sdkKey, user: (0, populatedUserHelpers_1.DVCPopulatedUserToPBUser)(user), variableKey: key, variableType: type, shouldTrackEvent: true, }; const err = compiled_1.VariableForUserParams_PB.verify(params); if (err) throw new Error(`Invalid VariableForUserParams_PB protobuf params: ${err}`); const buffer = compiled_1.VariableForUserParams_PB.encode(params).finish(); const bucketedVariable = bucketing.variableForUser_PB(buffer); if (!bucketedVariable) return null; return (0, pbTypeHelpers_1.pbSDKVariableTransform)(compiled_1.SDKVariable_PB.decode(bucketedVariable)); } //# sourceMappingURL=userBucketingHelper.js.map