UNPKG

@harmowatch/ngx-redux-core

Version:

[![Join the chat at https://gitter.im/harmowatch/ngx-redux-core](https://badges.gitter.im/harmowatch/ngx-redux-core.svg)](https://gitter.im/harmowatch/ngx-redux-core?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

71 lines (70 loc) 5.04 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { BehaviorSubject } from 'rxjs'; import { takeWhile } from 'rxjs/operators'; import { Injectable } from '@angular/core'; import { ReduxStateDecorator } from '@harmowatch/redux-decorators'; export class ReduxTestingStore { constructor() { this.state = new BehaviorSubject(null); } /** * @return {?} */ static factory() { return new ReduxTestingStore(); } /** * @template S * @param {?} state * @param {?} value * @return {?} */ setState(state, value) { const { name } = ReduxStateDecorator.get(state); /** @type {?} */ const nextState = Object.assign({}, this.state.getValue(), { [name]: value, }); this.state.next(nextState); return this.state .pipe(takeWhile(currentState => currentState !== nextState)) .toPromise().then(() => this.state.getValue()); } /** * @return {?} */ getState() { return this.state.getValue(); } /** * @param {?} listener * @return {?} */ subscribe(listener) { return this.state.subscribe.call(this.state, listener); } /** * @return {?} */ replaceReducer() { } /** * @template T * @param {?} action * @return {?} */ dispatch(action) { return action; } } ReduxTestingStore.decorators = [ { type: Injectable } ]; if (false) { /** @type {?} */ ReduxTestingStore.prototype.state; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaGFybW93YXRjaC9uZ3gtcmVkdXgtY29yZS8iLCJzb3VyY2VzIjpbInRlc3Rpbmcvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJbkUsTUFBTTs7cUJBRVksSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDOzs7OztJQUVsQyxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQzs7Ozs7Ozs7SUFHMUIsUUFBUSxDQUFJLEtBQStCLEVBQUUsS0FBUTtRQUMxRCxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztRQUU5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3pELENBQUUsSUFBSSxDQUFFLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUzQixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsQ0FBQzthQUMzRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDOzs7OztJQUc1QyxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDOzs7Ozs7SUFHeEIsU0FBUyxDQUFDLFFBQW9CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Ozs7O0lBR2xELGNBQWM7Ozs7Ozs7SUFHZCxRQUFRLENBQW1CLE1BQVM7UUFDekMsT0FBTyxNQUFNLENBQUM7Ozs7WUFuQ2pCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIFN0b3JlLCBVbnN1YnNjcmliZSB9IGZyb20gJ3JlZHV4JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVkdXhSb290U3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlZHV4LXJvb3Qtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlZHV4U3RhdGVEZWNvcmF0b3IgfSBmcm9tICdAaGFybW93YXRjaC9yZWR1eC1kZWNvcmF0b3JzJztcbmltcG9ydCB7IFJlZHV4U3RhdGVQcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy9yZWR1eC1zdGF0ZS5wcm92aWRlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWR1eFRlc3RpbmdTdG9yZSBpbXBsZW1lbnRzIFN0b3JlPHt9PiB7XG5cbiAgcHJpdmF0ZSBzdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgcHVibGljIHN0YXRpYyBmYWN0b3J5KCk6IFJlZHV4VGVzdGluZ1N0b3JlIHtcbiAgICByZXR1cm4gbmV3IFJlZHV4VGVzdGluZ1N0b3JlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RhdGU8Uz4oc3RhdGU6IFR5cGU8UmVkdXhTdGF0ZVByb3ZpZGVyPiwgdmFsdWU6IFMpOiBQcm9taXNlPFJlZHV4Um9vdFN0YXRlPiB7XG4gICAgY29uc3Qge25hbWV9ID0gUmVkdXhTdGF0ZURlY29yYXRvci5nZXQoc3RhdGUpO1xuXG4gICAgY29uc3QgbmV4dFN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZS5nZXRWYWx1ZSgpLCB7XG4gICAgICBbIG5hbWUgXTogdmFsdWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlLm5leHQobmV4dFN0YXRlKTtcblxuICAgIHJldHVybiB0aGlzLnN0YXRlXG4gICAgICAucGlwZSh0YWtlV2hpbGUoY3VycmVudFN0YXRlID0+IGN1cnJlbnRTdGF0ZSAhPT0gbmV4dFN0YXRlKSlcbiAgICAgIC50b1Byb21pc2UoKS50aGVuKCgpID0+IHRoaXMuc3RhdGUuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoKToge30ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogVW5zdWJzY3JpYmUge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnN1YnNjcmliZS5jYWxsKHRoaXMuc3RhdGUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlUmVkdWNlcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwYXRjaDxUIGV4dGVuZHMgQWN0aW9uPihhY3Rpb246IFQpOiBUIHtcbiAgICByZXR1cm4gYWN0aW9uO1xuICB9XG5cbn1cbiJdfQ==