weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
54 lines (43 loc) • 1.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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; };
var _qs = require('qs');
var _qs2 = _interopRequireDefault(_qs);
var _uri = require('./uri.js');
var _uri2 = _interopRequireDefault(_uri);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
urlParse: function urlParse(url) {
if (typeof url !== 'string') return;
// add qap:// & qap:/// support
var reg = /(qap:\/{2,3})/g;
url = url.replace(reg, 'qap:///');
var obj = {};
var uri = new _uri2.default(url);
obj.protocol = uri.protocol() + ':';
obj.hostname = uri.host();
obj.port = uri.port();
obj.host = obj.hostname + (obj.port ? ':' + obj.port : '');
obj.origin = obj.protocol + '//' + obj.host;
obj.pathname = uri.path();
obj.search = uri.query();
obj.hash = uri.anchor() ? '#' + uri.anchor() : '';
return obj;
},
getSearchParameter: function getSearchParameter(search, paramName) {
var res = _qs2.default.parse(search, {
ignoreQueryPrefix: true,
plainObjects: true
});
return res[paramName];
},
setSearchParameter: function setSearchParameter(search, params) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var defaultOptions = _extends({ addQueryPrefix: true }, options);
var origin = options.keepOrigin ? _qs2.default.parse(search, { ignoreQueryPrefix: true, plainObjects: true }) : {};
return _qs2.default.stringify(_extends({}, origin, params), defaultOptions);
}
};
module.exports = exports['default'];
;