respond-framework
Version:
create as fast you think
31 lines (30 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = changeBasename;
var _traverse = require("../helpers/traverse.js");
function changeBasename(basename) {
const e = this.eventFrom(window.location.href);
const {
state,
branch
} = this;
const prevBasename = state.basename;
const prevBasenameFull = state.basenameFull;
state.basename = this.basenames[branch] = basename;
state.basenameFull = prevBasenameFull.replace(new RegExp(prevBasename + '$'), basename);
(0, _traverse.traverseModuleChildren)(state, (state, parent) => {
state.basenameFull = parent.basenameFull + state.basename;
});
const next = {};
Object.keys(this.eventsByPattern).forEach(prevPattern => {
const event = this.eventsByPattern[prevPattern];
const pattern = event.module.basenameFull + event.pattern;
next[pattern] = event;
delete this.eventsByPattern[prevPattern];
});
Object.assign(this.eventsByPattern, next);
this.history.changePath(e);
this.queueSaveSession();
}