Home / File/ utils.ts — drizzle-orm Source File

utils.ts — drizzle-orm Source File

Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 0 imports, 1 dependents.

File typescript DrizzleORM DatabaseDrivers 1 dependents 3 functions

Entity Profile

Dependency Diagram

graph LR
  2fd88d3d_d232_1908_a500_f72815cd371a["utils.ts"]
  22ef1bda_02be_c80a_be3e_7a9614a5f2f9["geometry.ts"]
  22ef1bda_02be_c80a_be3e_7a9614a5f2f9 --> 2fd88d3d_d232_1908_a500_f72815cd371a
  style 2fd88d3d_d232_1908_a500_f72815cd371a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

function hexToBytes(hex: string): Uint8Array {
	const bytes: number[] = [];
	for (let c = 0; c < hex.length; c += 2) {
		bytes.push(Number.parseInt(hex.slice(c, c + 2), 16));
	}
	return new Uint8Array(bytes);
}

function bytesToFloat64(bytes: Uint8Array, offset: number): number {
	const buffer = new ArrayBuffer(8);
	const view = new DataView(buffer);
	for (let i = 0; i < 8; i++) {
		view.setUint8(i, bytes[offset + i]!);
	}
	return view.getFloat64(0, true);
}

export function parseEWKB(hex: string): [number, number] {
	const bytes = hexToBytes(hex);

	let offset = 0;

	// Byte order: 1 is little-endian, 0 is big-endian
	const byteOrder = bytes[offset];
	offset += 1;

	const view = new DataView(bytes.buffer);
	const geomType = view.getUint32(offset, byteOrder === 1);
	offset += 4;

	let _srid: number | undefined;
	if (geomType & 0x20000000) { // SRID flag
		_srid = view.getUint32(offset, byteOrder === 1);
		offset += 4;
	}

	if ((geomType & 0xFFFF) === 1) {
		const x = bytesToFloat64(bytes, offset);
		offset += 8;
		const y = bytesToFloat64(bytes, offset);
		offset += 8;

		return [x, y];
	}

	throw new Error('Unsupported geometry type');
}

Domain

Subdomains

Frequently Asked Questions

What does utils.ts do?
utils.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What functions are defined in utils.ts?
utils.ts defines 3 function(s): bytesToFloat64, hexToBytes, parseEWKB.
What files import utils.ts?
utils.ts is imported by 1 file(s): geometry.ts.
Where is utils.ts in the architecture?
utils.ts is located at drizzle-orm/src/pg-core/columns/postgis_extension/utils.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/src/pg-core/columns/postgis_extension).

Analyze Your Own Codebase

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

Try Supermodel Free