@platform/state
Version:
A small, simple, strongly typed, [rx/observable] state-machine.
22 lines (21 loc) • 1.29 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(operators_1.takeUntil(args.until$));
var changed$ = $.pipe(operators_1.filter(function (e) { return e.type === 'TreeState/changed'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share());
var patched$ = $.pipe(operators_1.filter(function (e) { return e.type === 'TreeState/patched'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share());
var childAdded$ = $.pipe(operators_1.filter(function (e) { return e.type === 'TreeState/child/added'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share());
var childRemoved$ = $.pipe(operators_1.filter(function (e) { return e.type === 'TreeState/child/removed'; }), operators_1.map(function (e) { return e.payload; }), 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;