Files
threeonecheck_web/unpackage/dist/dev/mp-weixin/request/luch-request/helpers/buildURL.js
2025-12-29 14:59:44 +08:00

47 lines
1.5 KiB
JavaScript

"use strict";
const request_luchRequest_utils = require("../utils.js");
function encode(val) {
return encodeURIComponent(val).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
}
function buildURL(url, params, paramsSerializer) {
if (!params) {
return url;
}
var serializedParams;
if (paramsSerializer) {
serializedParams = paramsSerializer(params);
} else if (request_luchRequest_utils.isURLSearchParams(params)) {
serializedParams = params.toString();
} else {
var parts = [];
request_luchRequest_utils.forEach(params, function serialize(val, key) {
if (val === null || typeof val === "undefined") {
return;
}
if (request_luchRequest_utils.isArray(val)) {
key = key + "[]";
} else {
val = [val];
}
request_luchRequest_utils.forEach(val, function parseValue(v) {
if (request_luchRequest_utils.isDate(v)) {
v = v.toISOString();
} else if (request_luchRequest_utils.isObject(v)) {
v = JSON.stringify(v);
}
parts.push(encode(key) + "=" + encode(v));
});
});
serializedParams = parts.join("&");
}
if (serializedParams) {
var hashmarkIndex = url.indexOf("#");
if (hashmarkIndex !== -1) {
url = url.slice(0, hashmarkIndex);
}
url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams;
}
return url;
}
exports.buildURL = buildURL;