UNPKG

@graphql-hive/core

Version:
28 lines (27 loc) 923 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.randomSampling = randomSampling; exports.dynamicSampling = dynamicSampling; function randomSampling(sampleRate) { if (sampleRate > 1 || sampleRate < 0) { throw new Error(`Expected usage.sampleRate to be 0 <= x <= 1, received ${sampleRate}`); } return function shouldInclude() { return Math.random() <= sampleRate; }; } function dynamicSampling(sampler) { return function shouldInclude(context) { let sampleRate = sampler(context); if (sampleRate === true) { sampleRate = 1; } else if (sampleRate === false) { sampleRate = 0; } if (sampleRate > 1 || sampleRate < 0) { throw new Error(`Expected usage.sampleRate to be 0 <= x <= 1, received ${sampleRate}`); } return Math.random() <= sampleRate; }; }