{"version":3,"file":"is-equal.mjs","names":[],"sources":["../src/is-equal.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\nexport const isEqual = <TType>(x: TType, y: TType): boolean => {\n  if (Object.is(x, y)) return true;\n  if (x instanceof Date && y instanceof Date) {\n    return x.getTime() === y.getTime();\n  }\n  if (x instanceof RegExp && y instanceof RegExp) {\n    return x.toString() === y.toString();\n  }\n  if (\n    typeof x !== \"object\" ||\n    x === null ||\n    typeof y !== \"object\" ||\n    y === null\n  ) {\n    return false;\n  }\n\n  const keysX = Reflect.ownKeys(x) as (keyof typeof x)[];\n  const keysY = Reflect.ownKeys(y) as (keyof typeof y)[];\n  if (keysX.length !== keysY.length) return false;\n  for (const element of keysX) {\n    if (!Reflect.has(y, element)) return false;\n    if (!isEqual(x[element], y[element])) return false;\n  }\n  return true;\n};\n"],"mappings":";AAkBA,MAAa,WAAkB,GAAU,MAAsB;AAC7D,KAAI,OAAO,GAAG,GAAG,EAAE,CAAE,QAAO;AAC5B,KAAI,aAAa,QAAQ,aAAa,KACpC,QAAO,EAAE,SAAS,KAAK,EAAE,SAAS;AAEpC,KAAI,aAAa,UAAU,aAAa,OACtC,QAAO,EAAE,UAAU,KAAK,EAAE,UAAU;AAEtC,KACE,OAAO,MAAM,YACb,MAAM,QACN,OAAO,MAAM,YACb,MAAM,KAEN,QAAO;CAGT,MAAM,QAAQ,QAAQ,QAAQ,EAAE;CAChC,MAAM,QAAQ,QAAQ,QAAQ,EAAE;AAChC,KAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,MAAK,MAAM,WAAW,OAAO;AAC3B,MAAI,CAAC,QAAQ,IAAI,GAAG,QAAQ,CAAE,QAAO;AACrC,MAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAE,QAAO;;AAE/C,QAAO"}