1 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
2 |
|
3 | import { parse } from 'url';
|
4 | import { createBrowserHistory as _createBrowserHistory, createMemoryHistory as _createMemoryHistory, createHashHistory as _createHashHistory } from 'history';
|
5 |
|
6 | export const useBasename = createHistory => options => {
|
7 | const { basename = '' } = options || {};
|
8 |
|
9 | const history = createHistory(options);
|
10 |
|
11 | return _extends({}, history, {
|
12 | createHref: location => {
|
13 | const locationObj = parse(location);
|
14 | if (locationObj.host || !locationObj.pathname) return location;
|
15 | return `${basename}${location}`;
|
16 | }
|
17 | });
|
18 | };
|
19 |
|
20 | export const createBrowserHistory = useBasename(_createBrowserHistory);
|
21 | export const createMemoryHistory = useBasename(_createMemoryHistory);
|
22 | export const createHashHistory = useBasename(_createHashHistory);
|
23 |
|
\ | No newline at end of file |