@devcycle/nodejs-server-sdk
Version:
The DevCycle NodeJS Server SDK used for feature management.
32 lines • 1.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.setConfigDataUTF8 = exports.trackMemoryUsage = exports.startTrackingMemoryUsage = exports.importBucketingLib = void 0;
const bucketing_assembly_script_1 = require("@devcycle/bucketing-assembly-script");
const importBucketingLib = async ({ logger, options, } = {}) => {
const debugWASM = process.env.DEVCYCLE_DEBUG_WASM === '1';
const result = await (0, bucketing_assembly_script_1.instantiate)(debugWASM);
const interval = (0, exports.startTrackingMemoryUsage)(result, logger, options === null || options === void 0 ? void 0 : options.reporter);
return [result, interval];
};
exports.importBucketingLib = importBucketingLib;
const startTrackingMemoryUsage = (bucketing, logger, reporter, interval = 30 * 1000) => {
if (!reporter)
return;
(0, exports.trackMemoryUsage)(bucketing, reporter, logger);
return setInterval(() => (0, exports.trackMemoryUsage)(bucketing, reporter, logger), interval);
};
exports.startTrackingMemoryUsage = startTrackingMemoryUsage;
const trackMemoryUsage = (bucketing, reporter, logger) => {
if (!reporter)
return;
const memoryUsageMB = bucketing.memory.buffer.byteLength / 1e6;
logger === null || logger === void 0 ? void 0 : logger.debug(`WASM memory usage: ${memoryUsageMB} MB`);
reporter.reportMetric('wasmMemoryMB', memoryUsageMB, {});
};
exports.trackMemoryUsage = trackMemoryUsage;
const setConfigDataUTF8 = (bucketing, sdkKey, projectConfigStr) => {
const configBuffer = Buffer.from(projectConfigStr, 'utf8');
bucketing.setConfigDataUTF8(sdkKey, configBuffer);
};
exports.setConfigDataUTF8 = setConfigDataUTF8;
//# sourceMappingURL=bucketing.js.map
;