UNPKG

@devcycle/nodejs-server-sdk

Version:

The DevCycle NodeJS Server SDK used for feature management.

32 lines 1.74 kB
"use strict"; 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