UNPKG

@angular-redux/store

Version:
48 lines 5.21 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { NgRedux } from '../components/ng-redux'; import { getBaseStore } from './helpers'; /** * Auto-dispatches the return value of the decorated function. * * Decorate a function creator method with \@dispatch and its return * value will automatically be passed to ngRedux.dispatch() for you. * @return {?} */ export function dispatch() { return function decorate(target, key, descriptor) { /** @type {?} */ let originalMethod; /** @type {?} */ const wrapped = function (...args) { /** @type {?} */ const result = originalMethod.apply(this, args); if (result !== undefined) { /** @type {?} */ const store = getBaseStore(this) || NgRedux.instance; if (store) { store.dispatch(result); } } return result; }; descriptor = descriptor || Object.getOwnPropertyDescriptor(target, key); if (descriptor === undefined) { /** @type {?} */ const dispatchDescriptor = { get: () => wrapped, set: setMethod => (originalMethod = setMethod), }; Object.defineProperty(target, key, dispatchDescriptor); return dispatchDescriptor; } else { originalMethod = descriptor.value; descriptor.value = wrapped; return descriptor; } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1yZWR1eC9zdG9yZS8iLCJzb3VyY2VzIjpbImRlY29yYXRvcnMvZGlzcGF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQVF6QyxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLFNBQVMsUUFBUSxDQUN0QixNQUFjLEVBQ2QsR0FBNkIsRUFDN0IsVUFBK0I7O1lBRTNCLGNBQTRCOztjQUUxQixPQUFPLEdBQUcsVUFBd0IsR0FBRyxJQUFTOztrQkFDNUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUMvQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7O3NCQUNsQixLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRO2dCQUNwRCxJQUFJLEtBQUssRUFBRTtvQkFDVCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN4QjthQUNGO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELFVBQVUsR0FBRyxVQUFVLElBQUksTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4RSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7O2tCQUN0QixrQkFBa0IsR0FBdUI7Z0JBQzdDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPO2dCQUNsQixHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7YUFDL0M7WUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN2RCxPQUFPLGtCQUFrQixDQUFDO1NBQzNCO2FBQU07WUFDTCxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNsQyxVQUFVLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUMzQixPQUFPLFVBQVUsQ0FBQztTQUNuQjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdyZWR1eCc7XG5cbmltcG9ydCB7IE5nUmVkdXggfSBmcm9tICcuLi9jb21wb25lbnRzL25nLXJlZHV4JztcbmltcG9ydCB7IGdldEJhc2VTdG9yZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQXV0by1kaXNwYXRjaGVzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlY29yYXRlZCBmdW5jdGlvbi5cbiAqXG4gKiBEZWNvcmF0ZSBhIGZ1bmN0aW9uIGNyZWF0b3IgbWV0aG9kIHdpdGggQGRpc3BhdGNoIGFuZCBpdHMgcmV0dXJuXG4gKiB2YWx1ZSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcGFzc2VkIHRvIG5nUmVkdXguZGlzcGF0Y2goKSBmb3IgeW91LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzcGF0Y2goKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24gZGVjb3JhdGUoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAga2V5OiBzdHJpbmcgfCBzeW1ib2wgfCBudW1iZXIsXG4gICAgZGVzY3JpcHRvcj86IFByb3BlcnR5RGVzY3JpcHRvcixcbiAgKTogUHJvcGVydHlEZXNjcmlwdG9yIHtcbiAgICBsZXQgb3JpZ2luYWxNZXRob2Q6ICgpID0+IEFjdGlvbjtcblxuICAgIGNvbnN0IHdyYXBwZWQgPSBmdW5jdGlvbih0aGlzOiB1bmtub3duLCAuLi5hcmdzOiBhbnkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gZ2V0QmFzZVN0b3JlKHRoaXMpIHx8IE5nUmVkdXguaW5zdGFuY2U7XG4gICAgICAgIGlmIChzdG9yZSkge1xuICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9yIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xuXG4gICAgaWYgKGRlc2NyaXB0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZGlzcGF0Y2hEZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IgPSB7XG4gICAgICAgIGdldDogKCkgPT4gd3JhcHBlZCxcbiAgICAgICAgc2V0OiBzZXRNZXRob2QgPT4gKG9yaWdpbmFsTWV0aG9kID0gc2V0TWV0aG9kKSxcbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGRpc3BhdGNoRGVzY3JpcHRvcik7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hEZXNjcmlwdG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICBkZXNjcmlwdG9yLnZhbHVlID0gd3JhcHBlZDtcbiAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbiAgfTtcbn1cbi8vIGdldCBkZXNjcmlwdG9yXG4vLyBpZiBubyBkZXNjcmlwdG9yLCBjcmVhdGUgb25lIHdpdGggZ2V0dGVyIHNldHRlclxuLy8gaWYgZGVzY3JpcHRvciwgc2V0IG9yaWdpbmFsIG1ldGhvZCB0byBkZXNjcmlwdG9yLCBhbmQgdGhlbiBiaW5kIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIGluc3RlYWRcbiJdfQ==