conway-errors
Version:
A convenient primitive for creating, structing and throwing errors
3 lines (2 loc) • 3.18 kB
JavaScript
function r(){return r=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(r[e]=n[e])}return r},r.apply(null,arguments)}function t(r){return t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},t(r)}function n(r,t){r.prototype=Object.create(t.prototype),r.prototype.constructor=r,o(r,t)}function e(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(r){}return(e=function(){return!!r})()}function o(r,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,t){return r.__proto__=t,r},o(r,t)}function u(r){var n="function"==typeof Map?new Map:void 0;return u=function(r){if(null===r||!function(r){try{return-1!==Function.toString.call(r).indexOf("[native code]")}catch(t){return"function"==typeof r}}(r))return r;if("function"!=typeof r)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(r))return n.get(r);n.set(r,u)}function u(){return function(r,t,n){if(e())return Reflect.construct.apply(null,arguments);var u=[null];u.push.apply(u,t);var i=new(r.bind.apply(r,u));return n&&o(i,n.prototype),i}(r,arguments,t(this).constructor)}return u.prototype=Object.create(r.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),o(u,r)},u(r)}var i=/*#__PURE__*/function(r){function t(t,n,e,o,u,i,a){var c;return(c=r.call(this,o)||this).rootContext=void 0,c.contextsChunk=void 0,c.originalError=void 0,c.extendedParams=void 0,c.feature="",c.emit=void 0,c.name=t,c.rootContext=n,c.contextsChunk=e,c.originalError=i,c.emit=u,c.extendedParams=a,c}return n(t,r),t}(/*#__PURE__*/u(Error));function a(r,t){/*#__PURE__*/return function(e){function o(n,o,u,i,a){return e.call(this,r,t,n,o,u,i,a)||this}return n(o,e),o}(i)}var c={handleEmit:function(r){console.error(r)},extendedParams:{}};exports.createError=function(t,n){var e,o=r({},c,n),u=null!=(e=null==n?void 0:n.extendedParams)?e:{};return function(n,e){void 0===e&&(e={});var i=r({},u,e),c=Array.isArray(t)?t.reduce(function(r,t){var e=t.errorType,o=t.createMessagePostfix;return r[e]={errorClass:a(e,n),createMessagePostfix:o},r},{}):{},l=a("UnknownError",n),f=function(t,n){return function(e,o){void 0===o&&(o={});var u=r({},n,o);return s(t+"/"+e,u)}};function s(t,n){return void 0===n&&(n=i),{__brand:t,subcontext:f(t,n),feature:function(e,u){void 0===u&&(u={});var i=r({},n,u);return function(t,n,e){void 0===e&&(e={});var u=function(u,i,a){var f,s=c[u],d=null!=a&&a.originalError&&null!=s&&s.createMessagePostfix?s.createMessagePostfix(null==a?void 0:a.originalError):"",p=new(null!=(f=null==s?void 0:s.errorClass)?f:l)(n,function(r,t,n){return r+"/"+t+": "+n}(n,t,i+d),function(t){void 0===t&&(t={});var n=r({},e,null==a?void 0:a.extendedParams,t);null==o.handleEmit||o.handleEmit(p,n)},null==a?void 0:a.originalError,null==a?void 0:a.extendedParams);return p.feature=t,p};return Object.assign(u,{__brand:n+"/"+t}),u}(e,t,i)}}}return s(n)}},exports.isConwayError=function(r){return"object"==typeof r&&r instanceof i};
//# sourceMappingURL=index.js.map