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!];
}