UNPKG

foop

Version:

interfaces that describe their intentions.

55 lines (52 loc) 3.29 kB
var toS = require('./toS') /** * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, * `SyntaxError`, `TypeError`, or `URIError` object. * * @version 3.0.0 <- adding .message prop check * @version 2.0.0 <- just string tag * @version 1.0.0 <- was instanceof * @since 4.0.0 * @memberOf is * * @param {*} x value * @return {boolean} isError * * @name isError * @func * * {@link https://nodejs.org/api/util.html#util_util_iserror_object node-util-iserror} * @see {@link node-util-iserror} * * @example * * isError(new Error()) * //=> true * isError(new Error().stack) * //=> false * isError(1) * //=> false * isError('') * //=> false * * @example * * const e = {} * eh[Symbol.toStringTag] = '[Object Error]' * isError(eh) * //=> true * * @example * * class Eh extends Error() * isError(new Eh()) * //=> true * */ module.exports = function isError(x) { return toS(x) === '[object Error]' // return tag == '[object Error]' || tag == '[object DOMException]' || // (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)) // x instanceof Error || } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRvUyA9IHJlcXVpcmUoJy4vdG9TJylcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBgRXJyb3JgLCBgRXZhbEVycm9yYCwgYFJhbmdlRXJyb3JgLCBgUmVmZXJlbmNlRXJyb3JgLFxuICogYFN5bnRheEVycm9yYCwgYFR5cGVFcnJvcmAsIG9yIGBVUklFcnJvcmAgb2JqZWN0LlxuICpcbiAqIEB2ZXJzaW9uIDMuMC4wIDwtIGFkZGluZyAubWVzc2FnZSBwcm9wIGNoZWNrXG4gKiBAdmVyc2lvbiAyLjAuMCA8LSBqdXN0IHN0cmluZyB0YWdcbiAqIEB2ZXJzaW9uIDEuMC4wIDwtIHdhcyBpbnN0YW5jZW9mXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBtZW1iZXJPZiBpc1xuICpcbiAqIEBwYXJhbSAgeyp9IHggdmFsdWVcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzRXJyb3JcbiAqXG4gKiBAbmFtZSBpc0Vycm9yXG4gKiBAZnVuYyBcbiAqIFxuICoge0BsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdXRpbC5odG1sI3V0aWxfdXRpbF9pc2Vycm9yX29iamVjdCBub2RlLXV0aWwtaXNlcnJvcn1cbiAqIEBzZWUge0BsaW5rIG5vZGUtdXRpbC1pc2Vycm9yfVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGlzRXJyb3IobmV3IEVycm9yKCkpXG4gKiAgLy89PiB0cnVlXG4gKiAgaXNFcnJvcihuZXcgRXJyb3IoKS5zdGFjaylcbiAqICAvLz0+IGZhbHNlXG4gKiAgaXNFcnJvcigxKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc0Vycm9yKCcnKVxuICogIC8vPT4gZmFsc2VcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICBjb25zdCBlID0ge31cbiAqICBlaFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ1tPYmplY3QgRXJyb3JdJ1xuICogIGlzRXJyb3IoZWgpXG4gKiAgLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgY2xhc3MgRWggZXh0ZW5kcyBFcnJvcigpXG4gKiAgaXNFcnJvcihuZXcgRWgoKSlcbiAqICAvLz0+IHRydWVcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNFcnJvcih4KSB7XG4gIHJldHVybiB0b1MoeCkgPT09ICdbb2JqZWN0IEVycm9yXSdcbiAgLy8gIHJldHVybiB0YWcgPT0gJ1tvYmplY3QgRXJyb3JdJyB8fCB0YWcgPT0gJ1tvYmplY3QgRE9NRXhjZXB0aW9uXScgfHxcbiAgLy8gKHR5cGVvZiB2YWx1ZS5tZXNzYWdlID09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZS5uYW1lID09ICdzdHJpbmcnICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKSlcblxuICAvLyB4IGluc3RhbmNlb2YgRXJyb3IgfHxcbn1cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThDNUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFDLEVBQUU7RUFDbkMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCOzs7OztDQUtuQzsifQ==