bitfront-library
Version:
Angular CLI project with components and classes used by other Angular projects of the BIT foundation.
62 lines • 3.07 kB
JavaScript
;
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