UNPKG

patronum

Version:

☄️ Effector utility library delivering modularity and convenience

52 lines (50 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.every = every; var _effector = require("effector"); /* eslint-disable @typescript-eslint/no-unused-vars */ function every(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: "sid3ut" })) { 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: "rwb5jx" } }); // Combine pass simple values as is const $checker = checker; return (0, _effector.combine)({ and: [$checker, $values, (checker, values) => values.every(checker), { skipVoid: false }], or: { sid: "hgnz2z" } }); } function isFunction(value) { return typeof value === 'function'; }