mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
76fa325f08
Authelia client uses hash router instead of browser router in order to work with Kubernetes nginx-ingress-controller. This is also better for users having old browsers. This commit is breaking because it requires to change the configuration of the proxy to include the # in the URL of the login portal.
28 lines
683 B
TypeScript
28 lines
683 B
TypeScript
import sleep from "./sleep";
|
|
|
|
export default function WaitUntil(
|
|
fn: () => Promise<boolean>, timeout: number = 15000,
|
|
interval: number = 1000, waitAfter: number = 0): Promise<void> {
|
|
|
|
return new Promise(async (resolve, reject) => {
|
|
const timer = setTimeout(() => { throw new Error('Timeout') }, timeout);
|
|
while (true) {
|
|
try {
|
|
const res = await fn();
|
|
if (res && res === true) {
|
|
clearTimeout(timer);
|
|
break;
|
|
}
|
|
await sleep(interval);
|
|
} catch (err) {
|
|
console.error(err);
|
|
reject(err);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (waitAfter > 0)
|
|
await sleep(waitAfter);
|
|
resolve();
|
|
});
|
|
} |