UNPKG

@helenejs/react

Version:

Real-time Web Apps for Node.js

24 lines 1.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCircuitBreaker = useCircuitBreaker; const react_1 = require("react"); const isEmpty_1 = __importDefault(require("lodash/isEmpty")); const isFunction_1 = __importDefault(require("lodash/isFunction")); const isNil_1 = __importDefault(require("lodash/isNil")); function useCircuitBreaker({ parse, params, required, deps }) { return (0, react_1.useMemo)(() => { const result = (0, isFunction_1.default)(parse) ? parse(params) : void 0; const hasAllRequiredParams = (0, isEmpty_1.default)(required) || required.every(key => !(0, isNil_1.default)(params?.[key])); if (result !== void 0 || !hasAllRequiredParams) { return { shouldCall: false, placeholderValue: result, }; } return { shouldCall: true }; }, [params, parse, required, ...deps]); } //# sourceMappingURL=use-circuit-breaker.js.map