UNPKG

@ngneat/loadoff

Version:

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

24 lines 3 kB
import { BehaviorSubject, defer } from 'rxjs'; import { finalize } from 'rxjs/operators'; function loadingTracker(tracker) { return function (source) { return defer(() => { tracker.next(true); return source; }).pipe(finalize(() => tracker.next(false))); }; } export function loadingFor(...keys) { const result = {}; for (const key of keys) { const subject = new BehaviorSubject(false); result[key] = { inProgress$: subject.asObservable(), track() { return loadingTracker(subject); }, }; } return result; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZ0Zvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nbmVhdC9sb2Fkb2ZmL3NyYy9saWIvbG9hZGluZ0Zvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBd0MsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLFNBQVMsY0FBYyxDQUFJLE9BQWlDO0lBQzFELE9BQU8sVUFBVSxNQUFxQjtRQUNwQyxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUF3QixHQUFHLElBQVM7SUFDNUQsTUFBTSxNQUFNLEdBTVIsRUFBUyxDQUFDO0lBRWQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFcEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ1osV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDbkMsS0FBSztnQkFDSCxPQUFPLGNBQWMsQ0FBSSxPQUFPLENBQUMsQ0FBQztZQUNwQyxDQUFDO1NBQ0YsQ0FBQztLQUNIO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmZ1bmN0aW9uIGxvYWRpbmdUcmFja2VyPFQ+KHRyYWNrZXI6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPikge1xuICByZXR1cm4gZnVuY3Rpb24gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiB7XG4gICAgICB0cmFja2VyLm5leHQodHJ1ZSk7XG5cbiAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfSkucGlwZShmaW5hbGl6ZSgoKSA9PiB0cmFja2VyLm5leHQoZmFsc2UpKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkaW5nRm9yPEsgZXh0ZW5kcyBQcm9wZXJ0eUtleT4oLi4ua2V5czogS1tdKSB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPFxuICAgIEssXG4gICAge1xuICAgICAgaW5Qcm9ncmVzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgICB0cmFjazogPFQ+KCkgPT4gTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuICAgIH1cbiAgPiA9IHt9IGFzIGFueTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcmVzdWx0W2tleV0gPSB7XG4gICAgICBpblByb2dyZXNzJDogc3ViamVjdC5hc09ic2VydmFibGUoKSxcbiAgICAgIHRyYWNrPFQ+KCkge1xuICAgICAgICByZXR1cm4gbG9hZGluZ1RyYWNrZXI8VD4oc3ViamVjdCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19