UNPKG

@ngneat/loadoff

Version:

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

52 lines 5.47 kB
import { of, pipe } from 'rxjs'; import { catchError, map, startWith } from 'rxjs/operators'; export class AsyncState { constructor(state = {}) { this.res = undefined; this.error = undefined; this.loading = true; this.success = false; this.complete = false; Object.assign(this, state); } } export function createAsyncState(state = {}) { return new AsyncState(state); } export function createSyncState(res) { return new AsyncState({ loading: false, complete: true, res, }); } export function isSuccess(state) { return state.success; } export function hasError(state) { return !!state.error; } export function isComplete(state) { return state.complete; } export function isLoading(state) { return state.loading; } export function toAsyncState() { return pipe(map((res) => { return new AsyncState({ res, loading: false, complete: true, success: true, }); }), startWith(new AsyncState()), catchError((error) => { console.error(error); return of(new AsyncState({ error, loading: false, complete: true, })); })); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9Bc3luY1N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L2xvYWRvZmYvc3JjL2xpYi90b0FzeW5jU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBb0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sT0FBTyxVQUFVO0lBT3JCLFlBQVksUUFBbUMsRUFBRTtRQU5qRCxRQUFHLEdBQWtCLFNBQVMsQ0FBQztRQUMvQixVQUFLLEdBQWtCLFNBQVMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFhLFFBQW1DLEVBQUU7SUFDaEYsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBYSxHQUFNO0lBQ2hELE9BQU8sSUFBSSxVQUFVLENBQU87UUFDMUIsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsSUFBSTtRQUNkLEdBQUc7S0FDSixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUFvQjtJQUMvQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUksS0FBb0I7SUFDOUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUEwQjtJQUNuRCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBMEI7SUFDbEQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLElBQUksQ0FDVCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNWLE9BQU8sSUFBSSxVQUFVLENBQU87WUFDMUIsR0FBRztZQUNILE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLFVBQVUsRUFBUSxDQUFDLEVBQ2pDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckIsT0FBTyxFQUFFLENBQ1AsSUFBSSxVQUFVLENBQU87WUFDbkIsS0FBSztZQUNMLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YsIE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgQXN5bmNTdGF0ZTxULCBFID0gYW55PiB7XG4gIHJlczogVCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgZXJyb3I6IEUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGxvYWRpbmcgPSB0cnVlO1xuICBzdWNjZXNzID0gZmFsc2U7XG4gIGNvbXBsZXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3Ioc3RhdGU6IFBhcnRpYWw8QXN5bmNTdGF0ZTxULCBFPj4gPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgc3RhdGUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBc3luY1N0YXRlPFQsIEUgPSBhbnk+KHN0YXRlOiBQYXJ0aWFsPEFzeW5jU3RhdGU8VCwgRT4+ID0ge30pIHtcbiAgcmV0dXJuIG5ldyBBc3luY1N0YXRlKHN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN5bmNTdGF0ZTxULCBFID0gYW55PihyZXM6IFQpIHtcbiAgcmV0dXJuIG5ldyBBc3luY1N0YXRlPFQsIEU+KHtcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBjb21wbGV0ZTogdHJ1ZSxcbiAgICByZXMsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdWNjZXNzPFQ+KHN0YXRlOiBBc3luY1N0YXRlPFQ+KTogc3RhdGUgaXMgQXN5bmNTdGF0ZTxUPiAmIHsgcmVzOiBUIH0ge1xuICByZXR1cm4gc3RhdGUuc3VjY2Vzcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Vycm9yPFQ+KHN0YXRlOiBBc3luY1N0YXRlPFQ+KTogc3RhdGUgaXMgQXN5bmNTdGF0ZTxUPiAmIHsgcmVzOiB1bmRlZmluZWQgfSB7XG4gIHJldHVybiAhIXN0YXRlLmVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV0ZShzdGF0ZTogQXN5bmNTdGF0ZTx1bmtub3duPikge1xuICByZXR1cm4gc3RhdGUuY29tcGxldGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvYWRpbmcoc3RhdGU6IEFzeW5jU3RhdGU8dW5rbm93bj4pIHtcbiAgcmV0dXJuIHN0YXRlLmxvYWRpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0FzeW5jU3RhdGU8VCwgRSA9IGFueT4oKTogT3BlcmF0b3JGdW5jdGlvbjxULCBBc3luY1N0YXRlPFQsIEU+PiB7XG4gIHJldHVybiBwaXBlKFxuICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFzeW5jU3RhdGU8VCwgRT4oe1xuICAgICAgICByZXMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBjb21wbGV0ZTogdHJ1ZSxcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHN0YXJ0V2l0aChuZXcgQXN5bmNTdGF0ZTxULCBFPigpKSxcbiAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgIHJldHVybiBvZihcbiAgICAgICAgbmV3IEFzeW5jU3RhdGU8VCwgRT4oe1xuICAgICAgICAgIGVycm9yLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGNvbXBsZXRlOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KVxuICApO1xufVxuIl19