django-vue3-admin-web/node_modules/@aws-sdk/util-format-url/dist-cjs/index.js
2025-10-20 21:21:14 +08:00

35 lines
1023 B
JavaScript

'use strict';
var querystringBuilder = require('@smithy/querystring-builder');
function formatUrl(request) {
const { port, query } = request;
let { protocol, path, hostname } = request;
if (protocol && protocol.slice(-1) !== ":") {
protocol += ":";
}
if (port) {
hostname += `:${port}`;
}
if (path && path.charAt(0) !== "/") {
path = `/${path}`;
}
let queryString = query ? querystringBuilder.buildQueryString(query) : "";
if (queryString && queryString[0] !== "?") {
queryString = `?${queryString}`;
}
let auth = "";
if (request.username != null || request.password != null) {
const username = request.username ?? "";
const password = request.password ?? "";
auth = `${username}:${password}@`;
}
let fragment = "";
if (request.fragment) {
fragment = `#${request.fragment}`;
}
return `${protocol}//${auth}${hostname}${path}${queryString}${fragment}`;
}
exports.formatUrl = formatUrl;