{"version":3,"file":"is-error.mjs","names":[],"sources":["../src/is-error.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n                       🗲 Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website:                  https://stormsoftware.com\n Repository:               https://github.com/storm-software/stryke\n Documentation:            https://docs.stormsoftware.com/projects/stryke\n Contact:                  https://stormsoftware.com/contact\n\n SPDX-License-Identifier:  Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { getObjectTag } from \"./get-object-tag\";\nimport { isObject } from \"./is-object\";\nimport { isPlainObject } from \"./is-plain-object\";\n\n/**\n * Checks if `obj` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @example\n * ```typescript\n * isError(new Error)\n * // => true\n *\n * isError(Error)\n * // => false\n * ```\n *\n * @param obj - The obj to check.\n * @returns Returns `true` if `obj` is an error object, else `false`.\n */\nexport const isError = (obj: unknown): obj is Error => {\n  if (!isObject(obj)) {\n    return false;\n  }\n\n  const tag = getObjectTag(obj);\n\n  return (\n    tag === \"[object Error]\" ||\n    tag === \"[object DOMException]\" ||\n    (typeof (obj as Error)?.message === \"string\" &&\n      typeof (obj as Error)?.name === \"string\" &&\n      !isPlainObject(obj))\n  );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsCA,MAAa,WAAW,QAA+B;AACrD,KAAI,CAAC,SAAS,IAAI,CAChB,QAAO;CAGT,MAAM,MAAM,aAAa,IAAI;AAE7B,QACE,QAAQ,oBACR,QAAQ,2BACP,OAAQ,KAAe,YAAY,YAClC,OAAQ,KAAe,SAAS,YAChC,CAAC,cAAc,IAAI"}