Home / Class/ SvelteURL Class — svelte Architecture

SvelteURL Class — svelte Architecture

Architecture documentation for the SvelteURL class in url.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  25654e33_e6d5_1b08_6baf_586a26ac3d8f["SvelteURL"]
  19ab2c95_d135_7687_9e01_bd8cfc8a8f42["url.js"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|defined in| 19ab2c95_d135_7687_9e01_bd8cfc8a8f42
  c71ab870_d61a_b6ae_5f3b_186fe2bf4681["constructor()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| c71ab870_d61a_b6ae_5f3b_186fe2bf4681
  d1bf22a0_212d_b9b5_98e7_012773b35d20["hash()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| d1bf22a0_212d_b9b5_98e7_012773b35d20
  ffc67c53_f6fe_20f0_940f_14ade3e11f47["host()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| ffc67c53_f6fe_20f0_940f_14ade3e11f47
  91e1b7c6_2d86_a96f_efd5_602de3b3e23e["hostname()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| 91e1b7c6_2d86_a96f_efd5_602de3b3e23e
  d881a99a_bfc6_f273_4883_0c9682725df4["href()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| d881a99a_bfc6_f273_4883_0c9682725df4
  b06bbbcf_2362_35e2_61c3_4367a0691c7a["password()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| b06bbbcf_2362_35e2_61c3_4367a0691c7a
  bc216a28_325e_fe07_5d38_e3b9f86ae4fe["pathname()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| bc216a28_325e_fe07_5d38_e3b9f86ae4fe
  cf70e9c7_e139_e359_2c2f_27175b215de4["port()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| cf70e9c7_e139_e359_2c2f_27175b215de4
  694184ce_7f11_c9f4_c0a1_bce148219cde["protocol()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| 694184ce_7f11_c9f4_c0a1_bce148219cde
  266b8de5_63aa_c450_1755_ef2ee87d7098["search()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| 266b8de5_63aa_c450_1755_ef2ee87d7098
  e8b6ef2a_4c92_3c9b_0f39_de30460c172c["username()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| e8b6ef2a_4c92_3c9b_0f39_de30460c172c
  b09b6d2f_c71b_5a20_2f0b_f4d24298e934["origin()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| b09b6d2f_c71b_5a20_2f0b_f4d24298e934
  13222152_7aed_cb22_82f5_15dd1435cc0a["searchParams()"]
  25654e33_e6d5_1b08_6baf_586a26ac3d8f -->|method| 13222152_7aed_cb22_82f5_15dd1435cc0a

Relationship Graph

Source Code

packages/svelte/src/reactivity/url.js lines 42–205

export class SvelteURL extends URL {
	#protocol = state(super.protocol);
	#username = state(super.username);
	#password = state(super.password);
	#hostname = state(super.hostname);
	#port = state(super.port);
	#pathname = state(super.pathname);
	#hash = state(super.hash);
	#search = state(super.search);
	#searchParams;

	/**
	 * @param {string | URL} url
	 * @param {string | URL} [base]
	 */
	constructor(url, base) {
		url = new URL(url, base);
		super(url);

		if (DEV) {
			tag(this.#protocol, 'SvelteURL.protocol');
			tag(this.#username, 'SvelteURL.username');
			tag(this.#password, 'SvelteURL.password');
			tag(this.#hostname, 'SvelteURL.hostname');
			tag(this.#port, 'SvelteURL.port');
			tag(this.#pathname, 'SvelteURL.pathname');
			tag(this.#hash, 'SvelteURL.hash');
			tag(this.#search, 'SvelteURL.search');
		}

		current_url = this;
		this.#searchParams = new SvelteURLSearchParams(url.searchParams);
		current_url = null;
	}

	get hash() {
		return get(this.#hash);
	}

	set hash(value) {
		super.hash = value;
		set(this.#hash, super.hash);
	}

	get host() {
		get(this.#hostname);
		get(this.#port);
		return super.host;
	}

	set host(value) {
		super.host = value;
		set(this.#hostname, super.hostname);
		set(this.#port, super.port);
	}

	get hostname() {
		return get(this.#hostname);
	}

	set hostname(value) {
		super.hostname = value;
		set(this.#hostname, super.hostname);
	}

	get href() {
		get(this.#protocol);
		get(this.#username);
		get(this.#password);
		get(this.#hostname);
		get(this.#port);
		get(this.#pathname);
		get(this.#hash);
		get(this.#search);
		return super.href;
	}

	set href(value) {
		super.href = value;
		set(this.#protocol, super.protocol);
		set(this.#username, super.username);

Frequently Asked Questions

What is the SvelteURL class?
SvelteURL is a class in the svelte codebase, defined in packages/svelte/src/reactivity/url.js.
Where is SvelteURL defined?
SvelteURL is defined in packages/svelte/src/reactivity/url.js at line 42.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free