url-search-params.js — svelte Source File
Architecture documentation for url-search-params.js, a javascript file in the svelte codebase. 10 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR bb708ca7_388e_3591_68c1_42bce13ff37d["url-search-params.js"] e5c35d51_28d8_9054_923d_b7f82a3c8dc2["sources.js"] bb708ca7_388e_3591_68c1_42bce13ff37d --> e5c35d51_28d8_9054_923d_b7f82a3c8dc2 39208392_58c1_7201_b748_aa74d97cadb9["state"] bb708ca7_388e_3591_68c1_42bce13ff37d --> 39208392_58c1_7201_b748_aa74d97cadb9 7602fc38_fab9_8955_83f0_8643d7c6c7a4["increment"] bb708ca7_388e_3591_68c1_42bce13ff37d --> 7602fc38_fab9_8955_83f0_8643d7c6c7a4 2696eb67_452f_4c32_3e13_ee172192b366["tracing.js"] bb708ca7_388e_3591_68c1_42bce13ff37d --> 2696eb67_452f_4c32_3e13_ee172192b366 4dfcf957_8573_ff55_bd31_4181227109e3["tag"] bb708ca7_388e_3591_68c1_42bce13ff37d --> 4dfcf957_8573_ff55_bd31_4181227109e3 bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"] bb708ca7_388e_3591_68c1_42bce13ff37d --> bde4209f_8ffc_1594_4024_b1835a44bcf6 a08b6cc5_af73_1be4_d02f_3113cf8a8305["get"] bb708ca7_388e_3591_68c1_42bce13ff37d --> a08b6cc5_af73_1be4_d02f_3113cf8a8305 19ab2c95_d135_7687_9e01_bd8cfc8a8f42["url.js"] bb708ca7_388e_3591_68c1_42bce13ff37d --> 19ab2c95_d135_7687_9e01_bd8cfc8a8f42 de12be9e_d5e5_abca_67f3_9801d2f108a2["get_current_url"] bb708ca7_388e_3591_68c1_42bce13ff37d --> de12be9e_d5e5_abca_67f3_9801d2f108a2 c9866d91_a204_fa55_a9e3_6bcc6aaaec1e["esm-env"] bb708ca7_388e_3591_68c1_42bce13ff37d --> c9866d91_a204_fa55_a9e3_6bcc6aaaec1e b13a3c81_1fb3_08ab_9e18_61efe88dbaac["url-search-params.test.ts"] b13a3c81_1fb3_08ab_9e18_61efe88dbaac --> bb708ca7_388e_3591_68c1_42bce13ff37d 19ab2c95_d135_7687_9e01_bd8cfc8a8f42["url.js"] 19ab2c95_d135_7687_9e01_bd8cfc8a8f42 --> bb708ca7_388e_3591_68c1_42bce13ff37d style bb708ca7_388e_3591_68c1_42bce13ff37d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { DEV } from 'esm-env';
import { state, increment } from '../internal/client/reactivity/sources.js';
import { tag } from '../internal/client/dev/tracing.js';
import { get } from '../internal/client/runtime.js';
import { get_current_url } from './url.js';
export const REPLACE = Symbol();
/**
* A reactive version of the built-in [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object.
* Reading its contents (by iterating, or by calling `params.get(...)` or `params.getAll(...)` as in the [example](https://svelte.dev/playground/b3926c86c5384bab9f2cf993bc08c1c8) below) in an [effect](https://svelte.dev/docs/svelte/$effect) or [derived](https://svelte.dev/docs/svelte/$derived)
* will cause it to be re-evaluated as necessary when the params are updated.
*
* ```svelte
* <script>
* import { SvelteURLSearchParams } from 'svelte/reactivity';
*
* const params = new SvelteURLSearchParams('message=hello');
*
* let key = $state('key');
* let value = $state('value');
* </script>
*
* <input bind:value={key} />
* <input bind:value={value} />
* <button onclick={() => params.append(key, value)}>append</button>
*
* <p>?{params.toString()}</p>
*
* {#each params as [key, value]}
* <p>{key}: {value}</p>
* {/each}
* ```
*/
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);
// ... (115 more lines)
Domain
Subdomains
Classes
Dependencies
Imported By
Source
Frequently Asked Questions
What does url-search-params.js do?
url-search-params.js is a source file in the svelte codebase, written in javascript. It belongs to the SharedInternal domain, BitFlags subdomain.
What does url-search-params.js depend on?
url-search-params.js imports 10 module(s): esm-env, get, get_current_url, increment, runtime.js, sources.js, state, tag, and 2 more.
What files import url-search-params.js?
url-search-params.js is imported by 2 file(s): url-search-params.test.ts, url.js.
Where is url-search-params.js in the architecture?
url-search-params.js is located at packages/svelte/src/reactivity/url-search-params.js (domain: SharedInternal, subdomain: BitFlags, directory: packages/svelte/src/reactivity).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free