UNPKG

@ngneat/loadoff

Version:

<p align="center"> <img width="20%" height="20%" src="./logo.svg"> </p>

14 lines 2.58 kB
import { pipe } from 'rxjs'; import { scan, startWith } from 'rxjs/operators'; import { AsyncState, createAsyncState } from './toAsyncState'; /** * Operator that retains the previous response on a new emission of an AsyncState item. * This can be useful for implementing a refresh mechanism, where you want to keep displaying the old value while fetching a new value */ export function retainResponse(startWithValue = createAsyncState()) { return pipe(startWith(startWithValue), scan((acc, val) => new AsyncState({ ...val, res: val.success ? val.res : acc.res, }))); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0YWluUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvbG9hZG9mZi9zcmMvbGliL3JldGFpblJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLGlCQUFtQyxnQkFBZ0IsRUFBUTtJQUUzRCxPQUFPLElBQUksQ0FDVCxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQ3pCLElBQUksQ0FDRixDQUFDLEdBQXFCLEVBQUUsR0FBcUIsRUFBRSxFQUFFLENBQy9DLElBQUksVUFBVSxDQUFPO1FBQ25CLEdBQUcsR0FBRztRQUNOLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRztLQUNyQyxDQUFDLENBQ0wsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNjYW4sIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFzeW5jU3RhdGUsIGNyZWF0ZUFzeW5jU3RhdGUgfSBmcm9tICcuL3RvQXN5bmNTdGF0ZSc7XG5cbi8qKlxuICogT3BlcmF0b3IgdGhhdCByZXRhaW5zIHRoZSBwcmV2aW91cyByZXNwb25zZSBvbiBhIG5ldyBlbWlzc2lvbiBvZiBhbiBBc3luY1N0YXRlIGl0ZW0uXG4gKiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBhIHJlZnJlc2ggbWVjaGFuaXNtLCB3aGVyZSB5b3Ugd2FudCB0byBrZWVwIGRpc3BsYXlpbmcgdGhlIG9sZCB2YWx1ZSB3aGlsZSBmZXRjaGluZyBhIG5ldyB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV0YWluUmVzcG9uc2U8VCwgRSA9IGFueT4oXG4gIHN0YXJ0V2l0aFZhbHVlOiBBc3luY1N0YXRlPFQsIEU+ID0gY3JlYXRlQXN5bmNTdGF0ZTxULCBFPigpXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFzeW5jU3RhdGU8VCwgRT4sIEFzeW5jU3RhdGU8VCwgRT4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgc3RhcnRXaXRoKHN0YXJ0V2l0aFZhbHVlKSxcbiAgICBzY2FuKFxuICAgICAgKGFjYzogQXN5bmNTdGF0ZTxULCBFPiwgdmFsOiBBc3luY1N0YXRlPFQsIEU+KSA9PlxuICAgICAgICBuZXcgQXN5bmNTdGF0ZTxULCBFPih7XG4gICAgICAgICAgLi4udmFsLFxuICAgICAgICAgIHJlczogdmFsLnN1Y2Nlc3MgPyB2YWwucmVzIDogYWNjLnJlcyxcbiAgICAgICAgfSlcbiAgICApXG4gICk7XG59XG4iXX0=