UNPKG

@vtex/diagnostics-nodejs

Version:

Diagnostics library for Node.js applications

51 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StaticProvider = void 0; exports.newStaticProvider = newStaticProvider; class StaticProvider { constructor(config) { this.validateConfig(config); this.defaultRate = config.defaultRate; this.accounts = new Map(); if (config.accounts) { for (const [accountId, rate] of Object.entries(config.accounts)) { if (typeof rate === 'number') { this.accounts.set(accountId, rate); } else { console.warn(`Invalid rate type for account ${accountId}, expected number but got ${typeof rate}`); } } } } validateConfig(config) { if (config.defaultRate < 0 || config.defaultRate > 1) { throw new Error(`Invalid default sampling rate: ${config.defaultRate}. Must be between 0 and 1.`); } if (config.accounts) { for (const [accountId, rate] of Object.entries(config.accounts)) { if (typeof rate !== 'number') { throw new Error(`Invalid sampling rate type for account ${accountId}. Expected number, got ${typeof rate}.`); } if (rate < 0 || rate > 1) { throw new Error(`Invalid sampling rate for account ${accountId}: ${rate}. Must be between 0 and 1.`); } } } } getSamplingRate(accountId) { const rate = this.accounts.get(accountId); if (rate !== undefined) { return [rate, true]; } return [this.defaultRate, false]; } getDefaultRate() { return this.defaultRate; } } exports.StaticProvider = StaticProvider; function newStaticProvider(config) { return new StaticProvider(config); } //# sourceMappingURL=static.js.map