patronum
Version:
☄️ Effector utility library delivering modularity and convenience
44 lines • 1.08 kB
JavaScript
import { combine, is } from 'effector';
export function some(configOrStores, predicateOrNone) {
var stores = [];
var predicate = () => false;
if (Array.isArray(configOrStores)) {
stores = configOrStores;
predicate = predicateOrNone;
} else if (Array.isArray(configOrStores.stores)) {
stores = configOrStores.stores;
predicate = configOrStores.predicate;
}
var checker;
if (isFunction(predicate)) {
checker = predicate;
} else if (is.store(predicate, {
sid: "zbwu0l"
})) {
checker = predicate.map(value => required => value === required, {
skipVoid: false
});
} else {
checker = value => value === predicate;
}
var $values = combine({
and: [stores],
or: {
name: "$values",
sid: "-kx24vm"
}
});
// Combine pass simple values as is
var $checker = checker;
return combine({
and: [$checker, $values, (checker, values) => values.some(checker), {
skipVoid: false
}],
or: {
sid: "-ee8kph"
}
});
}
function isFunction(value) {
return typeof value === 'function';
}