Home / Function/ fnv1a52() — astro Function Reference

fnv1a52() — astro Function Reference

Architecture documentation for the fnv1a52() function in etag.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  7608586e_9180_1c40_9b32_2199e81d1a5f["fnv1a52()"]
  87c049e9_e773_50de_3848_d2cf6021305c["etag.ts"]
  7608586e_9180_1c40_9b32_2199e81d1a5f -->|defined in| 87c049e9_e773_50de_3848_d2cf6021305c
  526feb13_75a2_2d3a_82e3_b4e89a331084["etag()"]
  526feb13_75a2_2d3a_82e3_b4e89a331084 -->|calls| 7608586e_9180_1c40_9b32_2199e81d1a5f
  style 7608586e_9180_1c40_9b32_2199e81d1a5f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/assets/utils/etag.ts lines 11–40

const fnv1a52 = (str: string) => {
	const len = str.length;
	let i = 0,
		t0 = 0,
		v0 = 0x2325,
		t1 = 0,
		v1 = 0x8422,
		t2 = 0,
		v2 = 0x9ce4,
		t3 = 0,
		v3 = 0xcbf2;

	while (i < len) {
		v0 ^= str.charCodeAt(i++);
		t0 = v0 * 435;
		t1 = v1 * 435;
		t2 = v2 * 435;
		t3 = v3 * 435;
		t2 += v0 << 8;
		t3 += v1 << 8;
		t1 += t0 >>> 16;
		v0 = t0 & 65535;
		t2 += t1 >>> 16;
		v1 = t1 & 65535;
		v3 = (t3 + (t2 >>> 16)) & 65535;
		v2 = t2 & 65535;
	}

	return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ (v3 >> 4));
};

Domain

Subdomains

Called By

Frequently Asked Questions

What does fnv1a52() do?
fnv1a52() is a function in the astro codebase, defined in packages/astro/src/assets/utils/etag.ts.
Where is fnv1a52() defined?
fnv1a52() is defined in packages/astro/src/assets/utils/etag.ts at line 11.
What calls fnv1a52()?
fnv1a52() is called by 1 function(s): etag.

Analyze Your Own Codebase

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

Try Supermodel Free