{"version":3,"file":"useRefreshOnWindowFocusPlugin.mjs","sources":["../../../../../../../package/hooks/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.ts"],"sourcesContent":["import type { Plugin } from \"../types\";\nimport limit from \"../../__utils__/limit\";\nimport subscribeFocus from \"../../__utils__/subscribeFocus\";\nimport { onUnmounted } from \"vue\";\n\nconst useRefreshOnWindowFocusPlugin: Plugin<any, any[]> = (\n  fetchInstance,\n  { refreshOnWindowFocus, focusTimespan = 5000 }\n) => {\n  let unsubscribe: () => void = () => {};\n\n  const stopSubscribe = () => {\n    unsubscribe?.();\n  };\n\n  if (refreshOnWindowFocus) {\n    const limitRefresh = limit(fetchInstance.refresh.bind(fetchInstance), focusTimespan);\n    unsubscribe = subscribeFocus(() => {\n      limitRefresh();\n    });\n  }\n\n  onUnmounted(() => {\n    stopSubscribe();\n  });\n\n  return {};\n};\n\nexport default useRefreshOnWindowFocusPlugin;\n"],"names":["subscribeFocus"],"mappings":";;;;AAKA,MAAM,gCAAoD,CACxD,aAAA,EACA,EAAE,oBAAsB,EAAA,aAAA,GAAgB,KACrC,KAAA;AACH,EAAA,IAAI,cAA0B,MAAM;AAAA,GAAC,CAAA;AAErC,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,EAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,oBAAsB,EAAA;AACxB,IAAA,MAAM,eAAe,KAAM,CAAA,aAAA,CAAc,QAAQ,IAAK,CAAA,aAAa,GAAG,aAAa,CAAA,CAAA;AACnF,IAAA,WAAA,GAAcA,UAAe,MAAM;AACjC,MAAa,YAAA,EAAA,CAAA;AAAA,KACd,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,WAAA,CAAY,MAAM;AAChB,IAAc,aAAA,EAAA,CAAA;AAAA,GACf,CAAA,CAAA;AAED,EAAA,OAAO,EAAC,CAAA;AACV;;;;"}