targo-frontend/src/utils/crc-encoder.ts
Nic D 119a145549 feat(timesheet): add functionality to upload expense attachment to garage test instance
requires further development. Key used to store file needs to be saved to expense to be later used for retrieval
2026-01-30 13:44:43 -05:00

18 lines
464 B
TypeScript

import { crc32 } from 'crc';
export async function computeCRC32Base64(file: File): Promise<string> {
const arrayBuffer = await file.arrayBuffer();
// Pass arrayBuffer directly to crc32
let crc = crc32(arrayBuffer);
crc >>>= 0;
// Convert to 4-byte big-endian
const buffer = new ArrayBuffer(4);
const view = new DataView(buffer);
view.setUint32(0, crc, false);
// Base64 encode
return btoa(String.fromCharCode(...new Uint8Array(buffer)));
}