Home / Class/ DevUrlResolver Class — astro Architecture

DevUrlResolver Class — astro Architecture

Architecture documentation for the DevUrlResolver class in dev-url-resolver.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  4df4711d_e5fd_c55f_138c_4977d523f9f9["DevUrlResolver"]
  1a8d00c2_d60e_a3ed_34dc_da2290c22401["dev-url-resolver.ts"]
  4df4711d_e5fd_c55f_138c_4977d523f9f9 -->|defined in| 1a8d00c2_d60e_a3ed_34dc_da2290c22401
  276af4f5_a76b_9c2e_1c3b_45eef2af07d7["constructor()"]
  4df4711d_e5fd_c55f_138c_4977d523f9f9 -->|method| 276af4f5_a76b_9c2e_1c3b_45eef2af07d7
  5c0a3caf_a753_ad29_ff5a_3f4fe25e3e5a["resolve()"]
  4df4711d_e5fd_c55f_138c_4977d523f9f9 -->|method| 5c0a3caf_a753_ad29_ff5a_3f4fe25e3e5a
  5650cf04_e1f2_0a3e_1fc0_c7a843afe682["cspResources()"]
  4df4711d_e5fd_c55f_138c_4977d523f9f9 -->|method| 5650cf04_e1f2_0a3e_1fc0_c7a843afe682

Relationship Graph

Source Code

packages/astro/src/assets/fonts/infra/dev-url-resolver.ts lines 5–37

export class DevUrlResolver implements UrlResolver {
	#resolved = false;
	readonly #base: string;
	readonly #searchParams: URLSearchParams;

	constructor({
		base,
		searchParams,
	}: {
		base: string;
		searchParams: URLSearchParams;
	}) {
		this.#base = base;
		this.#searchParams = searchParams;
	}

	resolve(id: string): string {
		this.#resolved ||= true;
		const urlPath = prependForwardSlash(joinPaths(this.#base, id));
		const url = createPlaceholderURL(urlPath);

		// Append searchParams if available (for adapter-level tracking like skew protection)
		this.#searchParams.forEach((value, key) => {
			url.searchParams.set(key, value);
		});

		return stringifyPlaceholderURL(url);
	}

	get cspResources(): Array<string> {
		return this.#resolved ? ["'self'"] : [];
	}
}

Domain

Frequently Asked Questions

What is the DevUrlResolver class?
DevUrlResolver is a class in the astro codebase, defined in packages/astro/src/assets/fonts/infra/dev-url-resolver.ts.
Where is DevUrlResolver defined?
DevUrlResolver is defined in packages/astro/src/assets/fonts/infra/dev-url-resolver.ts at line 5.

Analyze Your Own Codebase

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

Try Supermodel Free