promi-safe
Version:
Type-safe promise wrapper with runtime validation support
2 lines • 785 B
JavaScript
var l=(r,s,e)=>new Promise((t,d)=>{var i=a=>{try{o(e.next(a))}catch(c){d(c)}},n=a=>{try{o(e.throw(a))}catch(c){d(c)}},o=a=>a.done?t(a.value):Promise.resolve(a.value).then(i,n);o((e=e.apply(r,s)).next())});var m=class extends Error{constructor(e,t="Validation failed"){super(t);this.issues=e;this.name="ValidationError"}},S=r=>(s,e)=>l(void 0,null,function*(){var o,a;let t=yield r,d=s["~standard"].validate(t),i=yield Promise.resolve(d),n={throwOnError:(o=e==null?void 0:e.throwOnError)!=null?o:!0,onFail:e==null?void 0:e.onFail};if(i.issues&&((a=n.onFail)==null||a.call(n,i.issues),n.throwOnError))throw new m(i.issues);return t}),u=r=>Object.assign(r,{safe:(s,e)=>S(r)(s,e)});export{m as ValidationError,u as makeSafePromise,S as validateResponse};
//# sourceMappingURL=index.mjs.map