@harmowatch/ngx-redux-core
Version:
[](https://gitter.im/harmowatch/ngx-redux-core?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
99 lines (98 loc) • 5.81 kB
JavaScript
/**
* @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';
var ReduxTestingStore = /** @class */ (function () {
function ReduxTestingStore() {
this.state = new BehaviorSubject(null);
}
/**
* @return {?}
*/
ReduxTestingStore.factory = /**
* @return {?}
*/
function () {
return new ReduxTestingStore();
};
/**
* @template S
* @param {?} state
* @param {?} value
* @return {?}
*/
ReduxTestingStore.prototype.setState = /**
* @template S
* @param {?} state
* @param {?} value
* @return {?}
*/
function (state, value) {
var _this = this;
var _a;
var name = ReduxStateDecorator.get(state).name;
/** @type {?} */
var nextState = Object.assign({}, this.state.getValue(), (_a = {},
_a[name] = value,
_a));
this.state.next(nextState);
return this.state
.pipe(takeWhile(function (currentState) { return currentState !== nextState; }))
.toPromise().then(function () { return _this.state.getValue(); });
};
/**
* @return {?}
*/
ReduxTestingStore.prototype.getState = /**
* @return {?}
*/
function () {
return this.state.getValue();
};
/**
* @param {?} listener
* @return {?}
*/
ReduxTestingStore.prototype.subscribe = /**
* @param {?} listener
* @return {?}
*/
function (listener) {
return this.state.subscribe.call(this.state, listener);
};
/**
* @return {?}
*/
ReduxTestingStore.prototype.replaceReducer = /**
* @return {?}
*/
function () {
};
/**
* @template T
* @param {?} action
* @return {?}
*/
ReduxTestingStore.prototype.dispatch = /**
* @template T
* @param {?} action
* @return {?}
*/
function (action) {
return action;
};
ReduxTestingStore.decorators = [
{ type: Injectable }
];
return ReduxTestingStore;
}());
export { ReduxTestingStore };
if (false) {
/** @type {?} */
ReduxTestingStore.prototype.state;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaGFybW93YXRjaC9uZ3gtcmVkdXgtY29yZS8iLCJzb3VyY2VzIjpbInRlc3Rpbmcvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztxQkFNakQsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDOzs7OztJQUUzQix5QkFBTzs7OztRQUNuQixPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQzs7Ozs7Ozs7SUFHMUIsb0NBQVE7Ozs7OztjQUFJLEtBQStCLEVBQUUsS0FBUTs7O1FBQ25ELElBQUEsMENBQUksQ0FBbUM7O1FBRTlDLElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3ZELEdBQUUsSUFBSSxJQUFJLEtBQUs7Z0JBQ2YsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUEsWUFBWSxJQUFJLE9BQUEsWUFBWSxLQUFLLFNBQVMsRUFBMUIsQ0FBMEIsQ0FBQyxDQUFDO2FBQzNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBckIsQ0FBcUIsQ0FBQyxDQUFDOzs7OztJQUc1QyxvQ0FBUTs7OztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzs7Ozs7O0lBR3hCLHFDQUFTOzs7O2NBQUMsUUFBb0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7SUFHbEQsMENBQWM7Ozs7Ozs7Ozs7SUFHZCxvQ0FBUTs7Ozs7Y0FBbUIsTUFBUztRQUN6QyxPQUFPLE1BQU0sQ0FBQzs7O2dCQW5DakIsVUFBVTs7NEJBUlg7O1NBU2EsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSwgVW5zdWJzY3JpYmUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlZHV4Um9vdFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZWR1eC1yb290LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWR1eFN0YXRlRGVjb3JhdG9yIH0gZnJvbSAnQGhhcm1vd2F0Y2gvcmVkdXgtZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBSZWR1eFN0YXRlUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvcmVkdXgtc3RhdGUucHJvdmlkZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVkdXhUZXN0aW5nU3RvcmUgaW1wbGVtZW50cyBTdG9yZTx7fT4ge1xuXG4gIHByaXZhdGUgc3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIHB1YmxpYyBzdGF0aWMgZmFjdG9yeSgpOiBSZWR1eFRlc3RpbmdTdG9yZSB7XG4gICAgcmV0dXJuIG5ldyBSZWR1eFRlc3RpbmdTdG9yZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFN0YXRlPFM+KHN0YXRlOiBUeXBlPFJlZHV4U3RhdGVQcm92aWRlcj4sIHZhbHVlOiBTKTogUHJvbWlzZTxSZWR1eFJvb3RTdGF0ZT4ge1xuICAgIGNvbnN0IHtuYW1lfSA9IFJlZHV4U3RhdGVEZWNvcmF0b3IuZ2V0KHN0YXRlKTtcblxuICAgIGNvbnN0IG5leHRTdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUuZ2V0VmFsdWUoKSwge1xuICAgICAgWyBuYW1lIF06IHZhbHVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZS5uZXh0KG5leHRTdGF0ZSk7XG5cbiAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUodGFrZVdoaWxlKGN1cnJlbnRTdGF0ZSA9PiBjdXJyZW50U3RhdGUgIT09IG5leHRTdGF0ZSkpXG4gICAgICAudG9Qcm9taXNlKCkudGhlbigoKSA9PiB0aGlzLnN0YXRlLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGdldFN0YXRlKCk6IHt9IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IFVuc3Vic2NyaWJlIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zdWJzY3JpYmUuY2FsbCh0aGlzLnN0YXRlLCBsaXN0ZW5lcik7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZVJlZHVjZXIoKSB7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2g8VCBleHRlbmRzIEFjdGlvbj4oYWN0aW9uOiBUKTogVCB7XG4gICAgcmV0dXJuIGFjdGlvbjtcbiAgfVxuXG59XG4iXX0=