UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

39 lines (34 loc) 1.13 kB
'use strict'; 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); }, };