hap-nodejs
Version:
HAP-NodeJS is a Node.js implementation of HomeKit Accessory Server.
30 lines • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromiseTimeout = PromiseTimeout;
exports.awaitEventOnce = awaitEventOnce;
/**
* @group Utils
*/
function PromiseTimeout(timeout) {
return new Promise(resolve => {
setTimeout(() => resolve(), timeout);
});
}
// eslint-disable-next-line @typescript-eslint/ban-types
function awaitEventOnce(element, event, timeout = 5000) {
return new Promise((resolve, reject) => {
// eslint-disable-next-line prefer-const
let timeoutId;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const resolveListener = (...args) => {
clearTimeout(timeoutId);
resolve(args.length ? (args.length === 1 ? args[0] : args) : undefined);
};
timeoutId = setTimeout(() => {
element.removeListener(event, resolveListener);
reject(new Error(`awaitEvent for event ${event} timed out!`));
}, timeout);
element.once(event, resolveListener);
});
}
//# sourceMappingURL=promise-utils.js.map
;