UNPKG

@amaui/utils

Version:
27 lines (24 loc) 1.01 kB
import is from './is'; import isEnvironment from './isEnvironment'; import castParam from './castParam'; const optionsDefault = { castParam: true }; const getQueryParams = function () { let value_ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : isEnvironment('browser') && window.location.search; let paramName = arguments.length > 1 ? arguments[1] : undefined; let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; const options = { ...optionsDefault, ...options_ }; if (is('string', value_)) { const result = {}; const paramPairs = value_.replace(/^\?/, '').split('&').filter(Boolean); paramPairs.forEach(param => { const [key, value] = param.split('=').filter(Boolean).map(item => options.castParam ? castParam(decodeURIComponent(item)) : decodeURIComponent(item)); if (!!key) result[key] = value; }); return paramName !== undefined ? result[paramName] : result; } }; export default getQueryParams;