UNPKG

bitfront-library

Version:

Angular CLI project with components and classes used by other Angular projects of the BIT foundation.

62 lines 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.metaReducers = exports.logger = exports.CustomSerializer = exports.getRouterStateUrl = exports.getRouterReducerState = exports.reducers = exports.recoverRouterStateFromLocalStorage = exports.saveRouterStateIntoLocalStorage = exports.ROUTER_STATE = void 0; var store_1 = require("@ngrx/store"); var fromRouter = require("@ngrx/router-store"); exports.ROUTER_STATE = "routerState"; function saveRouterStateIntoLocalStorage(routerState) { localStorage.setItem(exports.ROUTER_STATE, JSON.stringify(routerState)); } exports.saveRouterStateIntoLocalStorage = saveRouterStateIntoLocalStorage; function recoverRouterStateFromLocalStorage() { var routerStateStorage = localStorage.getItem(exports.ROUTER_STATE); var routerStateUrl; if (routerStateStorage != null) { routerStateUrl = JSON.parse(routerStateStorage); } return routerStateUrl; } exports.recoverRouterStateFromLocalStorage = recoverRouterStateFromLocalStorage; exports.reducers = { routerReducer: fromRouter.routerReducer }; // selector al estate principal exports.getRouterReducerState = store_1.createFeatureSelector("routerReducer"); // selector para recuperar el estado que nos dará la url, los queryParams y los params exports.getRouterStateUrl = store_1.createSelector(exports.getRouterReducerState, function (state) { return state.state; }); /* custom serializer que nos permite obtener la representación del estado de la URL donde nos encontramos en cada momento Registrando estsa clase conseguiermos que el RouterStore quedará escuchando eventos del Router, por lo que cada vez que naveguemos y accedamos a otra URL, esta clase se ejecutará para obtener esta nueva representación */ var CustomSerializer = /** @class */ (function () { function CustomSerializer() { } //Este método nos transforma el estado del router de Angular a nuestra propia estructura CustomSerializer.prototype.serialize = function (routerSate) { var url = routerSate.url; //same as url = routerSate.url; var queryParams = routerSate.root.queryParams; var state = routerSate.root; //El router es un árbol de estados sobre el que podemos iterar while (state.firstChild) { state = state.firstChild; } var params = state.params; //este objeto se linkará a nuestro árbol de estados return { url: url, queryParams: queryParams, params: params }; }; return CustomSerializer; }()); exports.CustomSerializer = CustomSerializer; /** An example of metareducer function that logs when an action is dispatched */ function logger(reducer) { return function (state, action) { // console.log("state before: ", state); // console.log("action", action); //We're are continue doing the chain, returning the next reducer function that must be called return reducer(state, action); }; } exports.logger = logger; exports.metaReducers = []; //# sourceMappingURL=index.js.map