UNPKG

@platform/state

Version:

A small, simple, strongly typed, [rx/observable] state-machine.

22 lines (21 loc) 1.35 kB
"use strict"; 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;