got
Version:
Human-friendly and powerful HTTP request library for Node.js
26 lines (22 loc) • 652 B
JavaScript
// eslint-disable-next-line @typescript-eslint/naming-convention
export default function isUnixSocketURL(url) {
return url.protocol === 'unix:' || url.hostname === 'unix';
}
/**
Extract the socket path from a UNIX socket URL.
@example
```
getUnixSocketPath(new URL('http://unix/foo:/path'));
//=> '/foo'
getUnixSocketPath(new URL('unix:/foo:/path'));
//=> '/foo'
getUnixSocketPath(new URL('http://example.com'));
//=> undefined
```
*/
export function getUnixSocketPath(url) {
if (!isUnixSocketURL(url)) {
return undefined;
}
return /(?<socketPath>.+?):(?<path>.+)/.exec(`${url.pathname}${url.search}`)?.groups?.socketPath;
}