parse-err
Version:
Parse errors in the Browser and Node. Made for Cabin.
1 lines • 1.04 kB
JavaScript
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).parseErr=e()}}((function(){var e=function(e){switch(Object.prototype.toString.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e instanceof Error}};const r=function(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e(t))throw new Error("`err` must be an Error");if(!Array.isArray(o))throw new TypeError("`fields` must be an Array");const n={},f=new Set([...Object.getOwnPropertyNames(Object.getPrototypeOf(t)),...Object.getOwnPropertyNames(t)]);for(const e of f)"function"!=typeof t[e]&&(n[e]=t[e]);return!n.name&&t.constructor.name&&(n.name=t.constructor.name),Array.isArray(t.errors)&&(n.errors=t.errors.map(t=>e(t)?r(t,o):t)),Array.isArray(o)&&o.length>0?n.filter(e=>o.includes(e)):n};return r}));