UNPKG

reduxen

Version:
64 lines (50 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _parseQuery = require("./parseQuery.js"); var _parseQuery2 = _interopRequireDefault(_parseQuery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var parseUrl = function parseUrl(url) { var indexOfQuery = url.indexOf("?"); var indexOfHash = url.indexOf("#"); var pathPart = null; var queryPart = null; var hashPart = null; if (indexOfQuery !== -1) { pathPart = url.slice(0, indexOfQuery); queryPart = url.slice(indexOfQuery + 1); if (indexOfHash !== -1 && indexOfQuery < indexOfHash) { var indexOfHashInQuery = queryPart.indexOf("#"); hashPart = queryPart.slice(indexOfHashInQuery + 1); queryPart = queryPart.slice(0, indexOfHashInQuery); } } else { if (indexOfHash !== -1) { pathPart = url.slice(0, indexOfHash); hashPart = url.slice(indexOfHash + 1); } else { pathPart = url; } } var urlObject = {}; if (pathPart) { if (pathPart === "/") { urlObject.path = "/"; } else { if (pathPart.slice(-1) === "/") { urlObject.path = pathPart.slice(0, -1); } else { urlObject.path = pathPart; } } } if (queryPart !== null) { urlObject.query = (0, _parseQuery2.default)(queryPart); } if (hashPart !== null) { urlObject.hash = hashPart; } return urlObject; }; exports.default = parseUrl;