UNPKG

fp-ts-zio

Version:

fp-ts bindings for Scala ZIO

79 lines 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var E = require("fp-ts/lib/Either"); var function_1 = require("fp-ts/lib/function"); var O = require("fp-ts/lib/Option"); var pipeable_1 = require("fp-ts/lib/pipeable"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); /** * @since 0.6.0 */ exports.URI = 'Observable'; /** * @since 0.6.0 */ function getMonoid() { return { concat: function (x, y) { return rxjs_1.merge(x, y); }, empty: rxjs_1.EMPTY }; } exports.getMonoid = getMonoid; exports.fromTask = function (fa) { return rxjs_1.defer(function () { return fa(); }); }; function fromIO(ma) { return rxjs_1.defer(function () { return rxjs_1.of(ma()); }); } exports.fromIO = fromIO; /** * @since 0.6.0 */ exports.observable = { URI: exports.URI, map: function (fa, f) { return fa.pipe(operators_1.map(f)); }, of: rxjs_1.of, ap: function (fab, fa) { return rxjs_1.combineLatest([fab, fa]).pipe(operators_1.map(function (_a) { var f = _a[0], a = _a[1]; return f(a); })); }, chain: function (fa, f) { return fa.pipe(operators_1.mergeMap(f)); }, zero: function () { return rxjs_1.EMPTY; }, alt: function (fx, f) { return rxjs_1.merge(fx, f()); }, compact: function (fa) { return exports.observable.filterMap(fa, function_1.identity); }, separate: function (fa) { return exports.observable.partitionMap(fa, function_1.identity); }, partitionMap: function (fa, f) { return ({ left: exports.observable.filterMap(fa, function (a) { return pipeable_1.pipe(f(a), E.fold(O.some, function () { return O.none; })); }), right: exports.observable.filterMap(fa, function (a) { return pipeable_1.pipe(f(a), E.fold(function () { return O.none; }, O.some)); }) }); }, partition: function (fa, p) { return exports.observable.partitionMap(fa, E.fromPredicate(p, function_1.identity)); }, filterMap: function (fa, f) { return fa.pipe(operators_1.mergeMap(function (a) { return pipeable_1.pipe(f(a), // tslint:disable-next-line: deprecation O.fold(function () { return rxjs_1.EMPTY; }, rxjs_1.of)); })); }, filter: function (fa, p) { return exports.observable.filterMap(fa, O.fromPredicate(p)); }, fromTask: exports.fromTask, fromIO: fromIO }; var _a = pipeable_1.pipeable(exports.observable), alt = _a.alt, ap = _a.ap, apFirst = _a.apFirst, apSecond = _a.apSecond, chain = _a.chain, chainFirst = _a.chainFirst, compact = _a.compact, filter = _a.filter, filterMap = _a.filterMap, flatten = _a.flatten, map = _a.map, partition = _a.partition, partitionMap = _a.partitionMap, separate = _a.separate; exports.alt = alt; exports.ap = ap; exports.apFirst = apFirst; exports.apSecond = apSecond; exports.chain = chain; exports.chainFirst = chainFirst; exports.compact = compact; exports.filter = filter; exports.filterMap = filterMap; exports.flatten = flatten; exports.map = map; exports.partition = partition; exports.partitionMap = partitionMap; exports.separate = separate; //# sourceMappingURL=Observable.js.map