UNPKG

@uirouter/core

Version:

UI-Router Core: Framework agnostic, State-based routing for JavaScript Single Page Apps

57 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.locationPluginFactory = exports.buildUrl = exports.parseUrl = exports.getParams = exports.keyValsToObjectR = void 0; var common_1 = require("../common"); var keyValsToObjectR = function (accum, _a) { var key = _a[0], val = _a[1]; if (!accum.hasOwnProperty(key)) { accum[key] = val; } else if ((0, common_1.isArray)(accum[key])) { accum[key].push(val); } else { accum[key] = [accum[key], val]; } return accum; }; exports.keyValsToObjectR = keyValsToObjectR; var getParams = function (queryString) { return queryString.split('&').filter(common_1.identity).map(common_1.splitEqual).reduce(exports.keyValsToObjectR, {}); }; exports.getParams = getParams; function parseUrl(url) { var orEmptyString = function (x) { return x || ''; }; var _a = (0, common_1.splitHash)(url).map(orEmptyString), beforehash = _a[0], hash = _a[1]; var _b = (0, common_1.splitQuery)(beforehash).map(orEmptyString), path = _b[0], search = _b[1]; return { path: path, search: search, hash: hash, url: url }; } exports.parseUrl = parseUrl; var buildUrl = function (loc) { var path = loc.path(); var searchObject = loc.search(); var hash = loc.hash(); var search = Object.keys(searchObject) .map(function (key) { var param = searchObject[key]; var vals = (0, common_1.isArray)(param) ? param : [param]; return vals.map(function (val) { return key + '=' + val; }); }) .reduce(common_1.unnestR, []) .join('&'); return path + (search ? '?' + search : '') + (hash ? '#' + hash : ''); }; exports.buildUrl = buildUrl; function locationPluginFactory(name, isHtml5, serviceClass, configurationClass) { return function (uiRouter) { var service = (uiRouter.locationService = new serviceClass(uiRouter)); var configuration = (uiRouter.locationConfig = new configurationClass(uiRouter, isHtml5)); function dispose(router) { router.dispose(service); router.dispose(configuration); } return { name: name, service: service, configuration: configuration, dispose: dispose }; }; } exports.locationPluginFactory = locationPluginFactory; //# sourceMappingURL=utils.js.map