private setAccumulateSamplesTransformFn()

in glean/src/core/metrics/types/timing_distribution.ts [293:316]


  private setAccumulateSamplesTransformFn(samples: number[], maxSampleTime: number) {
    return (old?: JSONValue): TimingDistributionMetric => {
      const values = extractAccumulatedValuesFromJsonValue(old);

      const convertedSamples: number[] = [];
      samples.forEach((sample) => {
        if (sample >= 0) {
          // Check the range prior to converting the incoming unit to
          // nanoseconds, so we can compare against the constant
          // MAX_SAMPLE_TIME.
          if (sample === 0) {
            sample = 1;
          } else if (sample > maxSampleTime) {
            sample = maxSampleTime;
          }

          sample = convertTimeUnitToNanos(sample, this.timeUnit as TimeUnit);
          convertedSamples.push(sample);
        }
      });

      return new TimingDistributionMetric([...values, ...convertedSamples]);
    };
  }