react-healthy
Version:
Incrementally check and alert your users to the health of your APIs
13 lines (8 loc) • 764 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var reactUse = require('react-use');
var useInterval = require('./useInterval.js');
const useHealthCheck=a=>{let{apis:b,interval:d=3e4,onError:c}=a;const[e,{add:f,has:g,remove:h}]=reactUse.useSet(new Set),i=React.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["default"](i,d),React.useMemo(()=>({pageHasError:0<e.size,apisWithErrors:Array.from(e)}),[e])};const makeCall=async a=>fetch(a.endpoint);var useHealthCheck$1 = useHealthCheck;
exports["default"] = useHealthCheck$1;
exports.useHealthCheck = useHealthCheck;