@amaui/utils
Version:
27 lines (24 loc) • 1.01 kB
JavaScript
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;