AbdulElahGwaith's picture
Upload folder using huggingface_hub
b91e262 verified
import type { ParsedUrlQuery } from 'querystring'
import { searchParamsToUrlQuery } from './querystring'
import { parseRelativeUrl } from './parse-relative-url'
export interface ParsedUrl {
auth: string | null
hash: string
hostname: string | null
href: string
origin?: string | null
pathname: string
port: string | null
protocol: string | null
query: ParsedUrlQuery
search: string
slashes: boolean | null
}
export function parseUrl(url: string): ParsedUrl {
if (url.startsWith('/')) {
return parseRelativeUrl(url)
}
const parsedURL = new URL(url)
const username = parsedURL.username
const password = parsedURL.password
const auth = username
? password
? `${username}:${password}`
: username
: null
const pathname = parsedURL.pathname
const search = parsedURL.search
return {
auth,
hash: parsedURL.hash,
hostname: parsedURL.hostname,
href: parsedURL.href,
pathname,
port: parsedURL.port,
protocol: parsedURL.protocol,
query: searchParamsToUrlQuery(parsedURL.searchParams),
search,
origin: parsedURL.origin,
slashes:
parsedURL.href.slice(
parsedURL.protocol.length,
parsedURL.protocol.length + 2
) === '//',
}
}