UNPKG

2.21 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.locationPluginFactory = exports.buildUrl = exports.parseUrl = exports.getParams = exports.keyValsToObjectR = void 0;
4var common_1 = require("../common");
5exports.keyValsToObjectR = function (accum, _a) {
6 var key = _a[0], val = _a[1];
7 if (!accum.hasOwnProperty(key)) {
8 accum[key] = val;
9 }
10 else if (common_1.isArray(accum[key])) {
11 accum[key].push(val);
12 }
13 else {
14 accum[key] = [accum[key], val];
15 }
16 return accum;
17};
18exports.getParams = function (queryString) {
19 return queryString.split('&').filter(common_1.identity).map(common_1.splitEqual).reduce(exports.keyValsToObjectR, {});
20};
21function parseUrl(url) {
22 var orEmptyString = function (x) { return x || ''; };
23 var _a = common_1.splitHash(url).map(orEmptyString), beforehash = _a[0], hash = _a[1];
24 var _b = common_1.splitQuery(beforehash).map(orEmptyString), path = _b[0], search = _b[1];
25 return { path: path, search: search, hash: hash, url: url };
26}
27exports.parseUrl = parseUrl;
28exports.buildUrl = function (loc) {
29 var path = loc.path();
30 var searchObject = loc.search();
31 var hash = loc.hash();
32 var search = Object.keys(searchObject)
33 .map(function (key) {
34 var param = searchObject[key];
35 var vals = common_1.isArray(param) ? param : [param];
36 return vals.map(function (val) { return key + '=' + val; });
37 })
38 .reduce(common_1.unnestR, [])
39 .join('&');
40 return path + (search ? '?' + search : '') + (hash ? '#' + hash : '');
41};
42function locationPluginFactory(name, isHtml5, serviceClass, configurationClass) {
43 return function (uiRouter) {
44 var service = (uiRouter.locationService = new serviceClass(uiRouter));
45 var configuration = (uiRouter.locationConfig = new configurationClass(uiRouter, isHtml5));
46 function dispose(router) {
47 router.dispose(service);
48 router.dispose(configuration);
49 }
50 return { name: name, service: service, configuration: configuration, dispose: dispose };
51 };
52}
53exports.locationPluginFactory = locationPluginFactory;
54//# sourceMappingURL=utils.js.map
\No newline at end of file