weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
39 lines (34 loc) • 1.13 kB
JavaScript
import qs from 'qs';
import Uri from './uri';
export default {
urlParse(url) {
if (typeof url !== 'string') return;
// add qap:// & qap:/// support
const reg = /(qap:\/{2,3})/g;
url = url.replace(reg, 'qap:///');
const obj = {};
const uri = new Uri(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(search, paramName) {
const res = qs.parse(search, {
ignoreQueryPrefix: true,
plainObjects: true,
});
return res[paramName];
},
setSearchParameter(search, params, options = {}) {
const defaultOptions = { addQueryPrefix: true, ...options };
const origin = options.keepOrigin ? qs.parse(search, { ignoreQueryPrefix: true, plainObjects: true }) : {};
return qs.stringify({ ...origin, ...params }, defaultOptions);
},
};
;