{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport equal from '@gilbarbara/deep-equal';\nimport treeChanges, { Data, KeyType, TreeChanges } from 'tree-changes';\n\nexport default function useTreeChanges<T extends Data>(value: T) {\n  const previousValue = useRef(value);\n\n  const isEqual = equal(previousValue.current, value);\n  const previousIsEqual = useRef(isEqual);\n\n  const instance = useRef<TreeChanges<KeyType<T, typeof previousValue.current>>>(\n    treeChanges(previousValue.current, value),\n  );\n\n  useEffect(() => {\n    previousValue.current = value;\n  });\n\n  if (previousIsEqual.current !== isEqual || !isEqual) {\n    previousIsEqual.current = isEqual;\n    instance.current = treeChanges(previousValue.current, value);\n  }\n\n  return instance.current;\n}\n\n// eslint-disable-next-line unicorn/prefer-export-from\nexport { treeChanges };\nexport type { Data, KeyType, TreeChanges, Value } from 'tree-changes';\n"],"mappings":";AAAA,SAAS,WAAW,cAAc;AAClC,OAAO,WAAW;AAClB,OAAO,iBAAiD;AAEzC,SAAR,eAAgD,OAAU;AAC/D,QAAM,gBAAgB,OAAO,KAAK;AAElC,QAAM,UAAU,MAAM,cAAc,SAAS,KAAK;AAClD,QAAM,kBAAkB,OAAO,OAAO;AAEtC,QAAM,WAAW;AAAA,IACf,YAAY,cAAc,SAAS,KAAK;AAAA,EAC1C;AAEA,YAAU,MAAM;AACd,kBAAc,UAAU;AAAA,EAC1B,CAAC;AAED,MAAI,gBAAgB,YAAY,WAAW,CAAC,SAAS;AACnD,oBAAgB,UAAU;AAC1B,aAAS,UAAU,YAAY,cAAc,SAAS,KAAK;AAAA,EAC7D;AAEA,SAAO,SAAS;AAClB;","names":[]}