@trpc/server
Version:
24 lines (21 loc) • 624 B
JavaScript
import { makeResource } from './disposable.mjs';
const disposablePromiseTimerResult = Symbol();
function timerResource(ms) {
let timer = null;
return makeResource({
start () {
if (timer) {
throw new Error('Timer already started');
}
const promise = new Promise((resolve)=>{
timer = setTimeout(()=>resolve(disposablePromiseTimerResult), ms);
});
return promise;
}
}, ()=>{
if (timer) {
clearTimeout(timer);
}
});
}
export { disposablePromiseTimerResult, timerResource };