UNPKG

@platform/state

Version:

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

25 lines (24 loc) 1.26 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(operators_1.takeUntil(dispose$)); var changing$ = $.pipe(operators_1.filter(function (e) { return e.type === 'StateObject/changing'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share()); var changed$ = $.pipe(operators_1.filter(function (e) { return e.type === 'StateObject/changed'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share()); var patched$ = changed$.pipe(operators_1.map(function (e) { var op = e.op, cid = e.cid, action = e.action; var _a = e.patches, prev = _a.prev, next = _a.next; return { op: op, cid: cid, action: action, prev: prev, next: next }; })); var cancelled$ = $.pipe(operators_1.filter(function (e) { return e.type === 'StateObject/cancelled'; }), operators_1.map(function (e) { return e.payload; }), operators_1.share()); return { $: $, dispose$: dispose$, changing$: changing$, changed$: changed$, patched$: patched$, cancelled$: cancelled$, }; } exports.create = create;