Update gitignore (sorry)

This commit is contained in:
olcxja 2026-05-10 14:02:17 +02:00
commit cca8b02fea
6604 changed files with 1219661 additions and 4 deletions

View file

@ -0,0 +1,31 @@
import { fullJitter } from './full.jitter';
describe(`Testing ${fullJitter.name}`, () => {
const delay = 100;
function arrayWith5FullJitterDelays() {
return Array(5).fill(delay).map(fullJitter)
}
describe(`when calling #fullJitter on the same delay multiple times`, () => {
it('all the delays are greater than or equal to 0', () => {
arrayWith5FullJitterDelays()
.forEach(value => expect(value).toBeGreaterThanOrEqual(0));
})
it('all the delays are less than or equal to the original delay', () => {
arrayWith5FullJitterDelays()
.forEach(value => expect(value).toBeLessThanOrEqual(delay));
})
it('the delays are not equal to one another', () => {
const delays = arrayWith5FullJitterDelays();
expect(new Set(delays).size).not.toBe(1);
})
it('the delays are integers', () => {
arrayWith5FullJitterDelays()
.forEach(value => expect(Number.isInteger(value)).toBe(true))
})
})
})

View file

@ -0,0 +1,4 @@
export function fullJitter(delay: number) {
const jitteredDelay = Math.random() * delay;
return Math.round(jitteredDelay);
}

View file

@ -0,0 +1,16 @@
import { IBackOffOptions } from "../options";
import { fullJitter } from "./full/full.jitter";
import { noJitter } from "./no/no.jitter";
export type Jitter = (delay: number) => number;
export function JitterFactory(options: IBackOffOptions): Jitter {
switch (options.jitter) {
case "full":
return fullJitter;
case "none":
default:
return noJitter;
}
}

View file

@ -0,0 +1,9 @@
import { noJitter } from './no.jitter';
describe(`Testing ${noJitter.name}`, () => {
it(`when calling #noJitter with a delay,
it returns the same delay`, () => {
const delay = 100;
expect(noJitter(delay)).toBe(delay);
})
})

View file

@ -0,0 +1,3 @@
export function noJitter(delay: number) {
return delay;
}