All files with-concurrency-limit.ts

0% Statements 0/13
0% Branches 0/1
0% Functions 0/1
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14                           
/**
 * Copyright (c) OpenLens Authors. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import pLimit from "p-limit";

export type ConcurrencyLimiter = <Args extends any[], Res>(fn: (...args: Args) => Res) => (...args: Args) => Promise<Res>;

export function withConcurrencyLimit(limit: number): ConcurrencyLimiter {
  const limiter = pLimit(limit);

  return fn => (...args) => limiter(() => fn(...args));
}