UNPKG

decorio

Version:

First-class ECMAScript decorators for caching, binding, and concurrency patterns

2 lines (1 loc) 435 B
import{decorate as a}from"../internal/index.js";class c extends Error{constructor(r){super(),this.name="TimeoutExceededError",this.message=`timeout ${r}ms exceeded`}}t.signal=void 0;function t(e){return(r,i)=>a(r,i,l=>function(...s){const n=new AbortController,u=setTimeout(()=>{n.abort(new c(e))},e);let o;try{t.signal=n.signal,o=l.apply(this,s)}finally{t.signal=void 0}return o.finally(()=>{clearTimeout(u)})})}export{t as timeout};