INNER CODE UNIT · TypeScript

validateBlurhash

margelo/react-native-blurhash · src/utils.ts:41

function validateBlurhash(blurhash: string): void {
	if (!blurhash || blurhash.length < 6) throw new Error('The blurhash string must be at least 6 characters');

	const sizeFlag = decode83(blurhash[0]);
	const numY = Math.floor(sizeFlag / 9) + 1;
	const numX = (sizeFlag % 9) + 1;

	if (blurhash.length !== 4 + 2 * numX * numY)
		throw new Error(`blurhash length mismatch: length is ${blurhash.length} but it should be ${4 + 2 * numX * numY}`);
}

export function isBlurhashValid(blurhash: string): { isValid: true } | { isValid: false; errorReason: string } {
	try {
		validateBlurhash(blurhash);
	} catch (error) {
		const message = error instanceof Error ? error.message : JSON.stringify(error);
		return { isValid: false, errorReason: message };
	}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…