UNPKG

@devcycle/nestjs-server-sdk

Version:

The DevCycle NestJS Server SDK used for feature management.

48 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MockDevCycleClient = void 0; class MockDevCycleClient { constructor(sdkKey, options) { this.onClientInitialized = (callback) => { var _a; return (_a = callback === null || callback === void 0 ? void 0 : callback()) !== null && _a !== void 0 ? _a : Promise.resolve(this); }; this.variable = (user, key, defaultValue) => { var _a; return (_a = this.mockedVariables[key]) !== null && _a !== void 0 ? _a : { key, value: defaultValue, isDefaulted: true, defaultValue, type: getType(defaultValue), }; }; this.variableValue = (user, key, defaultValue) => { var _a, _b; return (_b = (_a = this.mockedVariables[key]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : defaultValue; }; this.allFeatures = () => ({}); this.allVariables = () => ({}); this.track = () => null; this.flushEvents = (callback) => Promise.resolve(); this.close = () => Promise.resolve(); this.mockedVariables = {}; } mockVariables(values) { this.mockedVariables = Object.entries(values).reduce((map, [key, value]) => { map[key] = { key, value, isDefaulted: false, defaultValue: value, type: getType(value), }; return map; }, {}); } } exports.MockDevCycleClient = MockDevCycleClient; const getType = (value) => { const types = { string: 'String', number: 'Number', boolean: 'Boolean', object: 'JSON', }; return types[typeof value]; }; //# sourceMappingURL=DevCycleClient.js.map