export function getTimeLimitPromise()

in packages/synthetics-sdk-broken-links/src/link_utils.ts [370:388]


export function getTimeLimitPromise(
  startTime: string,
  totalTimeoutMillis: number,
  extraOffsetMillis = 0
): [Promise<boolean>, NodeJS.Timeout, () => void] {
  let timeLimitTimeout: NodeJS.Timeout;
  let timeLimitresolver = () => {};
  const timeLimitPromise = new Promise<boolean>((resolve) => {
    timeLimitresolver = () => {
      resolve(false);
    };
    const timeUsed = Date.now() - new Date(startTime).getTime();
    timeLimitTimeout = setTimeout(
      timeLimitresolver,
      totalTimeoutMillis - timeUsed - extraOffsetMillis
    );
  });
  return [timeLimitPromise, timeLimitTimeout!, timeLimitresolver!];
}