patronum
Version:
☄️ Effector utility library delivering modularity and convenience
50 lines (49 loc) • 1.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.some = some;
var _effector = require("effector");
function some(configOrStores, predicateOrNone) {
let stores = [];
let predicate = () => false;
if (Array.isArray(configOrStores)) {
stores = configOrStores;
predicate = predicateOrNone;
} else if (Array.isArray(configOrStores.stores)) {
stores = configOrStores.stores;
predicate = configOrStores.predicate;
}
let checker;
if (isFunction(predicate)) {
checker = predicate;
} else if (_effector.is.store(predicate, {
sid: "zbwu0l"
})) {
checker = predicate.map(value => required => value === required, {
skipVoid: false
});
} else {
checker = value => value === predicate;
}
const $values = (0, _effector.combine)({
and: [stores],
or: {
name: "$values",
sid: "-kx24vm"
}
});
// Combine pass simple values as is
const $checker = checker;
return (0, _effector.combine)({
and: [$checker, $values, (checker, values) => values.some(checker), {
skipVoid: false
}],
or: {
sid: "-ee8kph"
}
});
}
function isFunction(value) {
return typeof value === 'function';
}
;