UNPKG

rxdeep

Version:
21 lines 869 B
import { merge } from 'rxjs'; import { tap, filter } from 'rxjs/operators'; import { State } from './state'; export class PersistentState extends State { constructor(state, storage, transform) { super(state.value, merge(state.downstream, state.downstream.pipe(filter(change => this._received !== change.value), transform || (_ => _), tap(change => { this._received = change.value; storage.save(change.value); }), filter(() => false)), storage.load().pipe(tap(value => { this._received = value; this.next(value); }), filter(() => false))), state.upstream); this.state = state; this.storage = storage; this.transform = transform; } } export function persistent(state, storage) { return new PersistentState(state, storage); } //# sourceMappingURL=persistent.js.map