UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

136 lines 9.86 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Subject } from 'rxjs'; import { Injectable } from '@angular/core'; import { filter, map } from 'rxjs/operators'; import { isFunction } from '@datorama/akita'; import { HttpMethod } from './ng-entity-service-notifier'; import * as i0 from "@angular/core"; var NgEntityServiceLoader = /** @class */ (function () { function NgEntityServiceLoader() { this.dispatcher = new Subject(); this.loading$ = this.dispatcher.asObservable(); } /** * @param {?} event * @return {?} */ NgEntityServiceLoader.prototype.dispatch = /** * @param {?} event * @return {?} */ function (event) { this.dispatcher.next(event); }; /** * @param {?=} name * @return {?} */ NgEntityServiceLoader.prototype.loadersFor = /** * @param {?=} name * @return {?} */ function (name) { var _this = this; /** @type {?} */ var filterStore = filter((/** * @param {?} __0 * @return {?} */ function (_a) { var storeName = _a.storeName; return (name ? storeName === name : true); })); /** @type {?} */ var filterMethod = (/** * @param {?} mthd * @return {?} */ function (mthd) { return filter((/** * @param {?} __0 * @return {?} */ function (_a) { var method = _a.method; return isFunction(mthd) ? mthd(method) : method === mthd; })); }); /** @type {?} */ var actionBased = (/** * @param {?} current * @return {?} */ function (current) { return _this.loading$.pipe(filterStore, filterMethod(current), map((/** * @param {?} action * @return {?} */ function (action) { return action.loading; }))); }); /** @type {?} */ var idBased = (/** * @param {?} id * @param {?} mthd * @return {?} */ function (id, mthd) { return _this.loading$.pipe(filterStore, filterMethod(mthd), filter((/** * @param {?} action * @return {?} */ function (action) { return action.entityId === id; })), map((/** * @param {?} action * @return {?} */ function (action) { return action.loading; }))); }); return { get$: actionBased(HttpMethod.GET), add$: actionBased(HttpMethod.POST), update$: actionBased((/** * @param {?} method * @return {?} */ function (method) { return method === HttpMethod.PUT || method === HttpMethod.PATCH; })), delete$: actionBased(HttpMethod.DELETE), getEntity: (/** * @param {?} id * @return {?} */ function (id) { return idBased(id, HttpMethod.GET); }), updateEntity: (/** * @param {?} id * @return {?} */ function (id) { return idBased(id, (/** * @param {?} method * @return {?} */ function (method) { return method === HttpMethod.PUT || method === HttpMethod.PATCH; })); }), deleteEntity: (/** * @param {?} id * @return {?} */ function (id) { return idBased(id, HttpMethod.DELETE); }) }; }; NgEntityServiceLoader.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = i0.defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" }); return NgEntityServiceLoader; }()); export { NgEntityServiceLoader }; if (false) { /** * @type {?} * @private */ NgEntityServiceLoader.prototype.dispatcher; /** @type {?} */ NgEntityServiceLoader.prototype.loading$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LXNlcnZpY2UubG9hZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhL2FuZ3VsYXIvcGxheWdyb3VuZC9wcm9qZWN0cy9uZy1lbnRpdHktc2VydmljZS8iLCJzb3VyY2VzIjpbImxpYi9uZy1lbnRpdHktc2VydmljZS5sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSTFEO0lBQUE7UUFFVSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQztRQUMxQyxhQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQXNDM0M7Ozs7O0lBcENDLHdDQUFROzs7O0lBQVIsVUFBUyxLQUFZO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7Ozs7O0lBRUQsMENBQVU7Ozs7SUFBVixVQUFXLElBQWE7UUFBeEIsaUJBK0JDOztZQTlCTyxXQUFXLEdBQUcsTUFBTTs7OztRQUFDLFVBQUMsRUFBb0I7Z0JBQWxCLHdCQUFTO1lBQWMsT0FBQSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQWxDLENBQWtDLEVBQUM7O1lBQ2xGLFlBQVk7Ozs7UUFBRyxVQUFBLElBQUk7WUFDdkIsT0FBQSxNQUFNOzs7O1lBQUMsVUFBQyxFQUFpQjtvQkFBZixrQkFBTTtnQkFDZCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO1lBQzNELENBQUMsRUFBQztRQUZGLENBRUUsQ0FBQTs7WUFFRSxXQUFXOzs7O1FBQUcsVUFBQyxPQUEyQztZQUM5RCxPQUFBLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixXQUFXLEVBQ1gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUNyQixHQUFHOzs7O1lBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsT0FBTyxFQUFkLENBQWMsRUFBQyxDQUM5QjtRQUpELENBSUMsQ0FBQTs7WUFFRyxPQUFPOzs7OztRQUFHLFVBQUMsRUFBTyxFQUFFLElBQXdDO1lBQ2hFLE9BQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLFdBQVcsRUFDWCxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2xCLE1BQU07Ozs7WUFBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUF0QixDQUFzQixFQUFDLEVBQ3hDLEdBQUc7Ozs7WUFBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxPQUFPLEVBQWQsQ0FBYyxFQUFDLENBQzlCO1FBTEQsQ0FLQyxDQUFBO1FBRUgsT0FBTztZQUNMLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNqQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbEMsT0FBTyxFQUFFLFdBQVc7Ozs7WUFBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sS0FBSyxVQUFVLENBQUMsR0FBRyxJQUFJLE1BQU0sS0FBSyxVQUFVLENBQUMsS0FBSyxFQUF4RCxDQUF3RCxFQUFDO1lBQ3hGLE9BQU8sRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxTQUFTOzs7O1lBQUUsVUFBQyxFQUFPLElBQUssT0FBQSxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBM0IsQ0FBMkIsQ0FBQTtZQUNuRCxZQUFZOzs7O1lBQUUsVUFBQyxFQUFPLElBQUssT0FBQSxPQUFPLENBQUMsRUFBRTs7OztZQUFFLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxLQUFLLFVBQVUsQ0FBQyxHQUFHLElBQUksTUFBTSxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQXhELENBQXdELEVBQUMsRUFBL0UsQ0FBK0UsQ0FBQTtZQUMxRyxZQUFZOzs7O1lBQUUsVUFBQyxFQUFPLElBQUssT0FBQSxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQTtTQUMxRCxDQUFDO0lBQ0osQ0FBQzs7Z0JBeENGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OztnQ0FSbEM7Q0FpREMsQUF6Q0QsSUF5Q0M7U0F4Q1kscUJBQXFCOzs7Ozs7SUFDaEMsMkNBQTBDOztJQUMxQyx5Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICdAZGF0b3JhbWEvYWtpdGEnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZCB9IGZyb20gJy4vbmctZW50aXR5LXNlcnZpY2Utbm90aWZpZXInO1xuXG50eXBlIEV2ZW50ID0geyBtZXRob2Q6IEh0dHBNZXRob2Q7IGxvYWRpbmc6IGJvb2xlYW47IHN0b3JlTmFtZTogc3RyaW5nOyBlbnRpdHlJZD86IGFueSB9O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5nRW50aXR5U2VydmljZUxvYWRlciB7XG4gIHByaXZhdGUgZGlzcGF0Y2hlciA9IG5ldyBTdWJqZWN0PEV2ZW50PigpO1xuICBsb2FkaW5nJCA9IHRoaXMuZGlzcGF0Y2hlci5hc09ic2VydmFibGUoKTtcblxuICBkaXNwYXRjaChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChldmVudCk7XG4gIH1cblxuICBsb2FkZXJzRm9yKG5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWx0ZXJTdG9yZSA9IGZpbHRlcigoeyBzdG9yZU5hbWUgfTogRXZlbnQpID0+IChuYW1lID8gc3RvcmVOYW1lID09PSBuYW1lIDogdHJ1ZSkpO1xuICAgIGNvbnN0IGZpbHRlck1ldGhvZCA9IG10aGQgPT5cbiAgICAgIGZpbHRlcigoeyBtZXRob2QgfTogRXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24obXRoZCkgPyBtdGhkKG1ldGhvZCkgOiBtZXRob2QgPT09IG10aGQ7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGFjdGlvbkJhc2VkID0gKGN1cnJlbnQ6ICgobWV0aG9kKSA9PiBib29sZWFuKSB8IEh0dHBNZXRob2QpID0+XG4gICAgICB0aGlzLmxvYWRpbmckLnBpcGUoXG4gICAgICAgIGZpbHRlclN0b3JlLFxuICAgICAgICBmaWx0ZXJNZXRob2QoY3VycmVudCksXG4gICAgICAgIG1hcChhY3Rpb24gPT4gYWN0aW9uLmxvYWRpbmcpXG4gICAgICApO1xuXG4gICAgY29uc3QgaWRCYXNlZCA9IChpZDogYW55LCBtdGhkOiAoKG1ldGhvZCkgPT4gYm9vbGVhbikgfCBIdHRwTWV0aG9kKSA9PlxuICAgICAgdGhpcy5sb2FkaW5nJC5waXBlKFxuICAgICAgICBmaWx0ZXJTdG9yZSxcbiAgICAgICAgZmlsdGVyTWV0aG9kKG10aGQpLFxuICAgICAgICBmaWx0ZXIoYWN0aW9uID0+IGFjdGlvbi5lbnRpdHlJZCA9PT0gaWQpLFxuICAgICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5sb2FkaW5nKVxuICAgICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBnZXQkOiBhY3Rpb25CYXNlZChIdHRwTWV0aG9kLkdFVCksXG4gICAgICBhZGQkOiBhY3Rpb25CYXNlZChIdHRwTWV0aG9kLlBPU1QpLFxuICAgICAgdXBkYXRlJDogYWN0aW9uQmFzZWQobWV0aG9kID0+IG1ldGhvZCA9PT0gSHR0cE1ldGhvZC5QVVQgfHwgbWV0aG9kID09PSBIdHRwTWV0aG9kLlBBVENIKSxcbiAgICAgIGRlbGV0ZSQ6IGFjdGlvbkJhc2VkKEh0dHBNZXRob2QuREVMRVRFKSxcbiAgICAgIGdldEVudGl0eTogKGlkOiBhbnkpID0+IGlkQmFzZWQoaWQsIEh0dHBNZXRob2QuR0VUKSxcbiAgICAgIHVwZGF0ZUVudGl0eTogKGlkOiBhbnkpID0+IGlkQmFzZWQoaWQsIG1ldGhvZCA9PiBtZXRob2QgPT09IEh0dHBNZXRob2QuUFVUIHx8IG1ldGhvZCA9PT0gSHR0cE1ldGhvZC5QQVRDSCksXG4gICAgICBkZWxldGVFbnRpdHk6IChpZDogYW55KSA9PiBpZEJhc2VkKGlkLCBIdHRwTWV0aG9kLkRFTEVURSlcbiAgICB9O1xuICB9XG59XG4iXX0=