37 lines
957 B
JavaScript
37 lines
957 B
JavaScript
/**
|
||
* @typedef URL
|
||
* @property {string} hash
|
||
* @property {string} host
|
||
* @property {string} hostname
|
||
* @property {string} href
|
||
* @property {string} origin
|
||
* @property {string} password
|
||
* @property {string} pathname
|
||
* @property {string} port
|
||
* @property {string} protocol
|
||
* @property {string} search
|
||
* @property {any} searchParams
|
||
* @property {string} username
|
||
* @property {() => string} toString
|
||
* @property {() => string} toJSON
|
||
*/
|
||
|
||
/**
|
||
* Check if `fileUrlOrPath` looks like a URL.
|
||
*
|
||
* @param {unknown} fileUrlOrPath
|
||
* File path or URL.
|
||
* @returns {fileUrlOrPath is URL}
|
||
* Whether it’s a URL.
|
||
*/
|
||
// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
|
||
export function isUrl(fileUrlOrPath) {
|
||
return (
|
||
fileUrlOrPath !== null &&
|
||
typeof fileUrlOrPath === 'object' &&
|
||
// @ts-expect-error: indexable.
|
||
fileUrlOrPath.href &&
|
||
// @ts-expect-error: indexable.
|
||
fileUrlOrPath.origin
|
||
)
|
||
}
|