@cc-heart/utils
Version:
🔧 javascript common tools collection
36 lines (33 loc) • 1.04 kB
JavaScript
;
/**
* convert query string to object
*
* @param url http url
* @returns
*/
function convertQueryString(url) {
const query = url.split('?')[1];
const result = {};
if (query) {
query.split('&').forEach((item) => {
const [key, value] = item.split('=');
Reflect.set(result, key, decodeURIComponent(value));
});
}
return result;
}
/**
* convert params routes to regular expressions
*
* @param path a params paths
* @returns null or An array contains the RegExp that matches the params and the path for each params parameter
*/
function convertParamsRouterToRegExp(path) {
const matcher = path.match(/:(.*?)(?:\/|$)/g);
if (matcher === null)
return null;
const reg = new RegExp(path.replace(/:(.*?)(\/|$)/g, '.*?$2'));
return [reg, matcher.map((val) => val.replace(/:(.*?)(\/|$)/g, '$1'))];
}
exports.convertParamsRouterToRegExp = convertParamsRouterToRegExp;
exports.convertQueryString = convertQueryString;