react-healthy
Version:
Incrementally check and alert your users to the health of your APIs
8 lines (5 loc) • 641 B
JavaScript
import { useCallback, useMemo } from 'react';
import { useSet } from 'react-use';
import useInterval from './useInterval.js';
const useHealthCheck=a=>{let{apis:b,interval:d=3e4,onError:c}=a;const[e,{add:f,has:g,remove:h}]=useSet(new Set),i=useCallback(async()=>{b.forEach(a=>{makeCall(a).then(b=>{b.ok&&g(a)?h(a):!b.ok&&!g(a)&&(f(a),null===c||void 0===c?void 0:c({api:a,response:b}));});});},[b,c,f,g,h]);return useInterval(i,d),useMemo(()=>({pageHasError:0<e.size,apisWithErrors:Array.from(e)}),[e])};const makeCall=async a=>fetch(a.endpoint);var useHealthCheck$1 = useHealthCheck;
export { useHealthCheck$1 as default, useHealthCheck };