"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateGuard: function() { return generateGuard; }, isGuardTest: function() { return isGuardTest; }, isGuardTestGroups: function() { return isGuardTestGroups; }, isGuardTests: function() { return isGuardTests; } }); var _interop_require_default = require("@swc/helpers/_/_interop_require_default"); var _to_consumable_array = require("@swc/helpers/_/_to_consumable_array"); var _castArray = /*#__PURE__*/ _interop_require_default._(require("lodash/castArray")); var _every = /*#__PURE__*/ _interop_require_default._(require("lodash/every")); var _isArray = /*#__PURE__*/ _interop_require_default._(require("lodash/isArray")); var _isBoolean = /*#__PURE__*/ _interop_require_default._(require("lodash/isBoolean")); var _isFunction = /*#__PURE__*/ _interop_require_default._(require("lodash/isFunction")); var _over = /*#__PURE__*/ _interop_require_default._(require("lodash/over")); var _some = /*#__PURE__*/ _interop_require_default._(require("lodash/some")); var generateGuard = function() { for(var _len = arguments.length, testGroups = new Array(_len), _key = 0; _key < _len; _key++){ testGroups[_key] = arguments[_key]; } if (testGroups.length < 1) { return function(maybe) { return false; }; } return function(maybe) { return (0, _some.default)(testGroups, function(tests) { var safeTests = (0, _castArray.default)(tests); if (safeTests.length < 1) { return false; } return (0, _every.default)(_over.default.apply(void 0, _to_consumable_array._(safeTests))(maybe), function(result) { return result === true; }); }); }; }; var isGuardTest = generateGuard([ _isFunction.default, // eslint-disable-next-line @typescript-eslint/no-explicit-any function(maybe) { return (0, _isFunction.default)(maybe) && (0, _isBoolean.default)(maybe("something")); } ]); var isGuardTests = generateGuard([ _isArray.default, function(maybe) { return (0, _every.default)(maybe, isGuardTest); } ]); var isGuardTestGroups = generateGuard([ _isArray.default, function(maybe) { return (0, _every.default)(maybe, function(testGroup) { return isGuardTest(testGroup) || isGuardTests(testGroup); }); } ]);