@helenejs/react
Version:
Real-time Web Apps for Node.js
24 lines • 1.12 kB
JavaScript
;
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