@platform/state
Version:
A small, simple, strongly typed, [rx/observable] state-machine.
22 lines (21 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = void 0;
var util_value_1 = require("@platform/util.value");
var operators_1 = require("rxjs/operators");
function create(args) {
var $ = args.event$.pipe((0, operators_1.takeUntil)(args.until$));
var changed$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'TreeState/changed'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)());
var patched$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'TreeState/patched'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)());
var childAdded$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'TreeState/child/added'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)());
var childRemoved$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'TreeState/child/removed'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)());
return {
$: $,
changed$: changed$,
patched$: patched$,
childAdded$: childAdded$,
childRemoved$: childRemoved$,
payload: function (type) { return util_value_1.rx.payload($, type); },
};
}
exports.create = create;