UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

82 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RelativeURL = void 0; /** * Similar to URL, except without the requirement of having a valid origin/baseUrl */ class RelativeURL extends URL { static #fakeOrigin = 'http://fakeorigin.com'; constructor(url) { super(url, RelativeURL.#fakeOrigin); } /** * @deprecated Not supported in relative URL */ get host() { throw new Error('host is not supported in a relative URL'); } /** * @deprecated Not supported in relative URL */ get hostname() { throw new Error('hostname is not supported in a relative URL'); } get href() { return this.pathname + this.search + this.hash; } /** * @deprecated Not supported in relative URL */ get origin() { throw new Error('origin is not supported in a relative URL'); } /** * @deprecated Not supported in relative URL */ get password() { throw new Error('password is not supported in a relative URL'); } /** * @deprecated Not supported in relative URL */ get protocol() { throw new Error('protocol is not supported in a relative URL'); } /** * @deprecated Not supported in relative URL */ get port() { throw new Error('port is not supported in a relative URL'); } /** * @deprecated Not supported in relative URL */ get username() { throw new Error('username is not supported in a relative URL'); } get path() { return this.pathname; } get pathOnly() { return this.pathname; } get fullPath() { return this.href; } toJSON() { return this.href; } toString() { return this.href; } static canParse(url) { return URL.canParse(url, RelativeURL.#fakeOrigin); } static parse(url) { if (!RelativeURL.canParse(url)) return null; return new RelativeURL(url.toString()); } } exports.RelativeURL = RelativeURL; //# sourceMappingURL=url.js.map