@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)
111 lines (110 loc) • 8.62 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { ReduxActionDispatcher, ReduxStateDecorator } from '@harmowatch/redux-decorators';
import { AsyncSubject, Observable } from 'rxjs';
import { Inject, Injectable } from '@angular/core';
import { ReduxStore } from '../tokens/redux-store.token';
/**
* @record
*/
export function IRegisterStatePayload() { }
/** @type {?} */
IRegisterStatePayload.prototype.initialValue;
/** @type {?} */
IRegisterStatePayload.prototype.name;
var ReduxRegistry = /** @class */ (function () {
function ReduxRegistry(store) {
if (store === void 0) { store = null; }
ReduxRegistry.reset();
ReduxRegistry.registerStore(store);
}
/**
* @return {?}
*/
ReduxRegistry.reset = /**
* @return {?}
*/
function () {
ReduxRegistry._store = new AsyncSubject();
};
/**
* @param {?} store
* @return {?}
*/
ReduxRegistry.registerStore = /**
* @param {?} store
* @return {?}
*/
function (store) {
ReduxRegistry.reset();
ReduxRegistry._store.next(store);
ReduxRegistry._store.complete();
ReduxActionDispatcher.dispatchedActions.subscribe(function (action) {
/** @type {?} */
var reduxAction = {
type: action.type,
payload: action.payload,
};
store.dispatch(reduxAction);
if (action.onDispatchSuccess) {
action.onDispatchSuccess();
}
});
};
/**
* @param {?} state
* @return {?}
*/
ReduxRegistry.registerState = /**
* @param {?} state
* @return {?}
*/
function (state) {
ReduxRegistry.getStore().then(function (store) {
/** @type {?} */
var stateConfig = ReduxStateDecorator.get(state.constructor);
/** @type {?} */
var initialState = state.getInitialState();
Promise
.resolve(initialState instanceof Observable ? initialState.toPromise() : initialState)
.then(function (initialValue) {
store.dispatch({
payload: {
initialValue: initialValue,
name: stateConfig.name,
},
type: ReduxRegistry.ACTION_REGISTER_STATE,
});
});
});
};
/**
* @return {?}
*/
ReduxRegistry.getStore = /**
* @return {?}
*/
function () {
return new Promise(ReduxRegistry._store.subscribe.bind(ReduxRegistry._store));
};
ReduxRegistry.ACTION_REGISTER_STATE = "@harmowatch/ngx-redux-core/registerState";
ReduxRegistry._store = new AsyncSubject();
ReduxRegistry.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ReduxRegistry.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [ReduxStore,] }] }
]; };
return ReduxRegistry;
}());
export { ReduxRegistry };
if (false) {
/** @type {?} */
ReduxRegistry.ACTION_REGISTER_STATE;
/** @type {?} */
ReduxRegistry._store;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaGFybW93YXRjaC9uZ3gtcmVkdXgtY29yZS8iLCJzb3VyY2VzIjpbInByb3ZpZGVycy9yZWR1eC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7O0lBZ0J2RCx1QkFBZ0MsS0FBdUI7UUFBM0Msc0JBQUEsRUFBQSxZQUEyQztRQUNyRCxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwQzs7OztJQUVhLG1CQUFLOzs7O1FBQ2pCLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQzs7Ozs7O0lBR3pDLDJCQUFhOzs7O2NBQUMsS0FBZ0I7UUFDMUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQUEsTUFBTTs7WUFFdEQsSUFBTSxXQUFXLEdBQTJCO2dCQUMxQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzthQUN4QixDQUFDO1lBRUYsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU1QixJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDNUIsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDNUI7U0FFRixDQUFDLENBQUM7Ozs7OztJQUdTLDJCQUFhOzs7O2NBQUMsS0FBeUI7UUFDbkQsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUs7O1lBRWxDLElBQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7O1lBQy9ELElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUU3QyxPQUFPO2lCQUNKLE9BQU8sQ0FBQyxZQUFZLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztpQkFDckYsSUFBSSxDQUFDLFVBQUEsWUFBWTtnQkFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBZ0Q7b0JBQzVELE9BQU8sRUFBRTt3QkFDUCxZQUFZLGNBQUE7d0JBQ1osSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO3FCQUN2QjtvQkFDRCxJQUFJLEVBQUUsYUFBYSxDQUFDLHFCQUFxQjtpQkFDMUMsQ0FBQyxDQUFDO2FBQ0osQ0FBQyxDQUFDO1NBRU4sQ0FBQyxDQUFDOzs7OztJQUdTLHNCQUFROzs7O1FBQ3BCLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDOzswQ0F4RGpDLDBDQUEwQzsyQkFFakUsSUFBSSxZQUFZLEVBQWE7O2dCQUx0RCxVQUFVOzs7O2dEQU9JLE1BQU0sU0FBQyxVQUFVOzt3QkF0QmhDOztTQWdCYSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVkdXhBY3Rpb25EaXNwYXRjaGVyLCBSZWR1eFN0YXRlRGVjb3JhdG9yIH0gZnJvbSAnQGhhcm1vd2F0Y2gvcmVkdXgtZGVjb3JhdG9ycyc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHsgQXN5bmNTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVkdXhTdG9yZSB9IGZyb20gJy4uL3Rva2Vucy9yZWR1eC1zdG9yZS50b2tlbic7XG5pbXBvcnQgeyBSZWR1eEFjdGlvbldpdGhQYXlsb2FkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZWR1eC1hY3Rpb24td2l0aC1wYXlsb2FkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWR1eFN0YXRlUHJvdmlkZXIgfSBmcm9tICcuL3JlZHV4LXN0YXRlLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJUmVnaXN0ZXJTdGF0ZVBheWxvYWQge1xuICBpbml0aWFsVmFsdWU6IHt9O1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWR1eFJlZ2lzdHJ5IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9SRUdJU1RFUl9TVEFURSA9IGBAaGFybW93YXRjaC9uZ3gtcmVkdXgtY29yZS9yZWdpc3RlclN0YXRlYDtcblxuICBwcml2YXRlIHN0YXRpYyBfc3RvcmUgPSBuZXcgQXN5bmNTdWJqZWN0PFN0b3JlPHt9Pj4oKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFJlZHV4U3RvcmUpIHN0b3JlOiBTdG9yZTx7fT4gPSBudWxsKSB7XG4gICAgUmVkdXhSZWdpc3RyeS5yZXNldCgpO1xuICAgIFJlZHV4UmVnaXN0cnkucmVnaXN0ZXJTdG9yZShzdG9yZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlc2V0KCkge1xuICAgIFJlZHV4UmVnaXN0cnkuX3N0b3JlID0gbmV3IEFzeW5jU3ViamVjdDxTdG9yZTx7fT4+KCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyU3RvcmUoc3RvcmU6IFN0b3JlPHt9Pikge1xuICAgIFJlZHV4UmVnaXN0cnkucmVzZXQoKTtcbiAgICBSZWR1eFJlZ2lzdHJ5Ll9zdG9yZS5uZXh0KHN0b3JlKTtcbiAgICBSZWR1eFJlZ2lzdHJ5Ll9zdG9yZS5jb21wbGV0ZSgpO1xuXG4gICAgUmVkdXhBY3Rpb25EaXNwYXRjaGVyLmRpc3BhdGNoZWRBY3Rpb25zLnN1YnNjcmliZShhY3Rpb24gPT4ge1xuXG4gICAgICBjb25zdCByZWR1eEFjdGlvbjogUmVkdXhBY3Rpb25XaXRoUGF5bG9hZCA9IHtcbiAgICAgICAgdHlwZTogYWN0aW9uLnR5cGUsXG4gICAgICAgIHBheWxvYWQ6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgfTtcblxuICAgICAgc3RvcmUuZGlzcGF0Y2gocmVkdXhBY3Rpb24pO1xuXG4gICAgICBpZiAoYWN0aW9uLm9uRGlzcGF0Y2hTdWNjZXNzKSB7XG4gICAgICAgIGFjdGlvbi5vbkRpc3BhdGNoU3VjY2VzcygpO1xuICAgICAgfVxuXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyU3RhdGUoc3RhdGU6IFJlZHV4U3RhdGVQcm92aWRlcikge1xuICAgIFJlZHV4UmVnaXN0cnkuZ2V0U3RvcmUoKS50aGVuKChzdG9yZSkgPT4ge1xuXG4gICAgICBjb25zdCBzdGF0ZUNvbmZpZyA9IFJlZHV4U3RhdGVEZWNvcmF0b3IuZ2V0KHN0YXRlLmNvbnN0cnVjdG9yKTtcbiAgICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHN0YXRlLmdldEluaXRpYWxTdGF0ZSgpO1xuXG4gICAgICBQcm9taXNlXG4gICAgICAgIC5yZXNvbHZlKGluaXRpYWxTdGF0ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBpbml0aWFsU3RhdGUudG9Qcm9taXNlKCkgOiBpbml0aWFsU3RhdGUpXG4gICAgICAgIC50aGVuKGluaXRpYWxWYWx1ZSA9PiB7XG4gICAgICAgICAgc3RvcmUuZGlzcGF0Y2g8UmVkdXhBY3Rpb25XaXRoUGF5bG9hZDxJUmVnaXN0ZXJTdGF0ZVBheWxvYWQ+Pih7XG4gICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgICAgbmFtZTogc3RhdGVDb25maWcubmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiBSZWR1eFJlZ2lzdHJ5LkFDVElPTl9SRUdJU1RFUl9TVEFURSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0U3RvcmUoKTogUHJvbWlzZTxTdG9yZTx7fT4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoUmVkdXhSZWdpc3RyeS5fc3RvcmUuc3Vic2NyaWJlLmJpbmQoUmVkdXhSZWdpc3RyeS5fc3RvcmUpKTtcbiAgfVxuXG59XG4iXX0=