ignore-errors
Version:
Easily ignore specific promise errors
37 lines • 1.23 kB
JavaScript
import shallowContains from 'shallow-contains';
const isRegExp = (val) => Object.prototype.toString.call(val) === '[object RegExp]';
const shallowContainsComparator = (a, b) => {
return isRegExp(b) ? b.test(a) : a === b;
};
export default function ignore(...args) {
return (err) => {
const match = args.length === 2 ? { [args[0]]: args[1] } : args[0];
if (shallowContains(err, match, shallowContainsComparator)) {
// ignore
return null;
}
throw err;
};
}
export const ignoreMessage = (val) => ignore('message', val);
export const ignoreName = (val) => ignore('name', val);
export const ignoreStatus = (val) => ignore('status', val);
export const ignoreReason = (val) => ignore('reason', val);
export const ignoreCode = (val) => ignore('code', val);
export const ignoreAny = (...ignoreFns) => {
return (err) => {
const somePassed = ignoreFns.some((ignoreFn) => {
try {
ignoreFn(err);
return true;
}
catch (err) {
return false;
}
});
if (somePassed)
return null;
throw err;
};
};
//# sourceMappingURL=index.js.map