{"version":3,"file":"index.cjs","sources":["../../../../../packages/hooks/use-memo/index.ts"],"sourcesContent":["import type { Ref, WatchSource } from 'vue';\nimport { ref, watch } from 'vue';\n\nexport function useMemo<T>(\n  getValue: () => T,\n  condition: Array<WatchSource<unknown> | object>,\n  shouldUpdate?: (prev: any[], next: any[]) => boolean,\n) {\n  const cacheRef: Ref<T> = ref(getValue() as any);\n  watch(condition, (next, pre) => {\n    if (shouldUpdate) {\n      if (shouldUpdate(next, pre))\n        cacheRef.value = getValue();\n    } else {\n      cacheRef.value = getValue();\n    }\n  });\n\n  return cacheRef;\n}\n"],"names":["ref","watch"],"mappings":";;;;AAGgB,SAAA,OAAA,CACd,QACA,EAAA,SAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,QAAA,GAAmBA,OAAI,CAAA,QAAA,EAAiB,CAAA,CAAA;AAC9C,EAAMC,SAAA,CAAA,SAAA,EAAW,CAAC,IAAA,EAAM,GAAQ,KAAA;AAC9B,IAAA,IAAI,YAAc,EAAA;AAChB,MAAI,IAAA,YAAA,CAAa,MAAM,GAAG,CAAA;AACxB,QAAA,QAAA,CAAS,QAAQ,QAAS,EAAA,CAAA;AAAA,KACvB,MAAA;AACL,MAAA,QAAA,CAAS,QAAQ,QAAS,EAAA,CAAA;AAAA,KAC5B;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,QAAA,CAAA;AACT;;;;"}