promi-safe
Version:
Type-safe promise wrapper with runtime validation support
2 lines • 1.31 kB
JavaScript
;var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var w=(r,a)=>{for(var e in a)l(r,e,{get:a[e],enumerable:!0})},P=(r,a,e,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of f(a))!O.call(r,s)&&s!==e&&l(r,s,{get:()=>a[s],enumerable:!(n=u(a,s))||n.enumerable});return r};var T=r=>P(l({},"__esModule",{value:!0}),r);var S=(r,a,e)=>new Promise((n,s)=>{var d=t=>{try{i(e.next(t))}catch(m){s(m)}},o=t=>{try{i(e.throw(t))}catch(m){s(m)}},i=t=>t.done?n(t.value):Promise.resolve(t.value).then(d,o);i((e=e.apply(r,a)).next())});var V={};w(V,{ValidationError:()=>c,makeSafePromise:()=>p,validateResponse:()=>h});module.exports=T(V);var c=class extends Error{constructor(e,n="Validation failed"){super(n);this.issues=e;this.name="ValidationError"}},h=r=>(a,e)=>S(void 0,null,function*(){var i,t;let n=yield r,s=a["~standard"].validate(n),d=yield Promise.resolve(s),o={throwOnError:(i=e==null?void 0:e.throwOnError)!=null?i:!0,onFail:e==null?void 0:e.onFail};if(d.issues&&((t=o.onFail)==null||t.call(o,d.issues),o.throwOnError))throw new c(d.issues);return n}),p=r=>Object.assign(r,{safe:(a,e)=>h(r)(a,e)});0&&(module.exports={ValidationError,makeSafePromise,validateResponse});
//# sourceMappingURL=index.js.map