@qso-soft/shared
Version:
Shared library for QSO-soft
21 lines • 717 B
JavaScript
export const getTimeoutPromise = ({ timeoutInSeconds, errorMessage }) => {
let timeout;
const timeoutPromise = new Promise((_resolve, reject) => {
timeout = setTimeout(() => {
reject(new Error(errorMessage || ''));
}, timeoutInSeconds * 1000);
});
return {
timeout,
timeoutPromise,
};
};
export const callFunctionWithTimeout = async ({ timeoutInSeconds, callback, errorMessage, }) => {
const { timeoutPromise, timeout } = getTimeoutPromise({ timeoutInSeconds, errorMessage });
const result = (await Promise.race([callback(), timeoutPromise]));
return {
result,
timeout,
};
};
//# sourceMappingURL=call-with-timeout.js.map