UNPKG

@platform/state

Version:

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

25 lines (24 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.create = void 0; var operators_1 = require("rxjs/operators"); function create(event$, dispose$) { var $ = event$.pipe((0, operators_1.takeUntil)(dispose$)); var changing$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'StateObject/changing'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)()); var changed$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'StateObject/changed'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)()); var patched$ = changed$.pipe((0, operators_1.map)(function (e) { var op = e.op, cid = e.cid; var _a = e.patches, prev = _a.prev, next = _a.next; return { op: op, cid: cid, prev: prev, next: next }; })); var cancelled$ = $.pipe((0, operators_1.filter)(function (e) { return e.type === 'StateObject/cancelled'; }), (0, operators_1.map)(function (e) { return e.payload; }), (0, operators_1.share)()); return { $: $, dispose$: dispose$, changing$: changing$, changed$: changed$, patched$: patched$, cancelled$: cancelled$, }; } exports.create = create;