You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.6 KiB

"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);
});
}
]);