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