@devcycle/nestjs-server-sdk
Version:
The DevCycle NestJS Server SDK used for feature management.
48 lines • 1.84 kB
JavaScript
;
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