UNPKG

patronum

Version:

☄️ Effector utility library delivering modularity and convenience

72 lines (71 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.condition = condition; var _effector = require("effector"); function condition({ source = (0, _effector.createEvent)({ name: "source", sid: "rytt3j" }), if: test, then: thenBranch, else: elseBranch }) { const checker = _effector.is.unit(test) || isFunction(test) ? test : value => value === test; if (thenBranch && elseBranch) { (0, _effector.split)({ and: [{ source, match: { then: checker, else: inverse(checker) }, cases: { then: thenBranch, else: elseBranch } }], or: { sid: "aaw2hr" } }); } else if (thenBranch) { // @ts-expect-error (0, _effector.sample)({ and: [{ source: source, filter: checker, target: thenBranch }], or: { sid: "-dwrmbb" } }); } else if (elseBranch) { // @ts-expect-error (0, _effector.sample)({ and: [{ source, filter: inverse(checker), target: elseBranch }], or: { sid: "-dsx25s" } }); } return source; } function isFunction(value) { return typeof value === 'function'; } function inverse(fnOrUnit) { if (_effector.is.unit(fnOrUnit)) { return fnOrUnit.map(value => !value, { skipVoid: false }); } return value => !fnOrUnit(value); }