Home / Class/ SvelteURLSearchParams Class — svelte Architecture

SvelteURLSearchParams Class — svelte Architecture

Architecture documentation for the SvelteURLSearchParams class in url-search-params.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  0a948943_ab4c_5a17_8110_53e6ebf727dd["SvelteURLSearchParams"]
  bb708ca7_388e_3591_68c1_42bce13ff37d["url-search-params.js"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|defined in| bb708ca7_388e_3591_68c1_42bce13ff37d
  15863a7c_9a79_4a83_d218_a8785ca50b98["search()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| 15863a7c_9a79_4a83_d218_a8785ca50b98
  b48043f5_5a93_dc20_5376_9a775073fc34["REPLACE()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| b48043f5_5a93_dc20_5376_9a775073fc34
  a534d001_d784_dabd_d365_9f306868f2c3["append()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| a534d001_d784_dabd_d365_9f306868f2c3
  046a7862_8867_9133_5529_3da5f6a5e9f7["delete()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| 046a7862_8867_9133_5529_3da5f6a5e9f7
  10d89b2a_8a1a_452d_8391_3cb787e2956c["get()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| 10d89b2a_8a1a_452d_8391_3cb787e2956c
  ee222a20_f131_7e1b_1371_80f7b44101cc["getAll()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| ee222a20_f131_7e1b_1371_80f7b44101cc
  3fc0449b_ae1a_e690_f302_91a274d3f5e4["has()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| 3fc0449b_ae1a_e690_f302_91a274d3f5e4
  b85d32bb_280f_9f13_e65a_9a77e8f6661e["keys()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| b85d32bb_280f_9f13_e65a_9a77e8f6661e
  b7080258_44b6_7cd0_5642_01689cb0430b["set()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| b7080258_44b6_7cd0_5642_01689cb0430b
  db09ae94_0066_f4b7_ec28_b386d661b454["sort()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| db09ae94_0066_f4b7_ec28_b386d661b454
  e8afc27f_e051_b8d7_0028_1b72243315ce["toString()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| e8afc27f_e051_b8d7_0028_1b72243315ce
  a05eb9cf_0f98_fe48_819d_d8f338214a2d["values()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| a05eb9cf_0f98_fe48_819d_d8f338214a2d
  190fe8b1_7601_5d47_1da9_556cc6480595["entries()"]
  0a948943_ab4c_5a17_8110_53e6ebf727dd -->|method| 190fe8b1_7601_5d47_1da9_556cc6480595

Relationship Graph

Source Code

packages/svelte/src/reactivity/url-search-params.js lines 35–174

export class SvelteURLSearchParams extends URLSearchParams {
	#version = DEV ? tag(state(0), 'SvelteURLSearchParams version') : state(0);
	#url = get_current_url();

	#updating = false;

	#update_url() {
		if (!this.#url || this.#updating) return;
		this.#updating = true;

		const search = this.toString();
		this.#url.search = search && `?${search}`;

		this.#updating = false;
	}

	/**
	 * @param {URLSearchParams} params
	 * @internal
	 */
	[REPLACE](params) {
		if (this.#updating) return;
		this.#updating = true;

		for (const key of [...super.keys()]) {
			super.delete(key);
		}

		for (const [key, value] of params) {
			super.append(key, value);
		}

		increment(this.#version);
		this.#updating = false;
	}

	/**
	 * @param {string} name
	 * @param {string} value
	 * @returns {void}
	 */
	append(name, value) {
		super.append(name, value);
		this.#update_url();
		increment(this.#version);
	}

	/**
	 * @param {string} name
	 * @param {string=} value
	 * @returns {void}
	 */
	delete(name, value) {
		var has_value = super.has(name, value);
		super.delete(name, value);
		if (has_value) {
			this.#update_url();
			increment(this.#version);
		}
	}

	/**
	 * @param {string} name
	 * @returns {string|null}
	 */
	get(name) {
		get(this.#version);
		return super.get(name);
	}

	/**
	 * @param {string} name
	 * @returns {string[]}
	 */
	getAll(name) {
		get(this.#version);
		return super.getAll(name);
	}

	/**
	 * @param {string} name

Frequently Asked Questions

What is the SvelteURLSearchParams class?
SvelteURLSearchParams is a class in the svelte codebase, defined in packages/svelte/src/reactivity/url-search-params.js.
Where is SvelteURLSearchParams defined?
SvelteURLSearchParams is defined in packages/svelte/src/reactivity/url-search-params.js at line 35.

Analyze Your Own Codebase

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

Try Supermodel Free