homeio
PublikFork dari doctor-io/homeio
async-utils.mjs
import { DBUS_METHOD_TIMEOUT_MS } from "./config.mjs";
import { HelperServiceError } from "./errors.mjs";
function withTimeout(promise, timeoutMs = DBUS_METHOD_TIMEOUT_MS) {
let timeoutHandle;
return Promise.race([
promise.finally(() => {
if (timeoutHandle) clearTimeout(timeoutHandle);
}),
new Promise((_, reject) => {
timeoutHandle = setTimeout(() => {
reject(
new HelperServiceError("DBus operation timeout", {
code: "timeout",
statusCode: 504,
}),
);
}, timeoutMs);
}),
]);
}
export { withTimeout };