deno.land / x / hono@v4.2.5 / utils / buffer.ts
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import { sha256 } from './crypto.ts'
export const equal = (a: ArrayBuffer, b: ArrayBuffer) => { if (a === b) { return true } if (a.byteLength !== b.byteLength) { return false }
const va = new DataView(a) const vb = new DataView(b)
let i = va.byteLength while (i--) { if (va.getUint8(i) !== vb.getUint8(i)) { return false } }
return true}
export const timingSafeEqual = async ( a: string | object | boolean, b: string | object | boolean, hashFunction?: Function) => { if (!hashFunction) { hashFunction = sha256 }
const sa = await hashFunction(a) const sb = await hashFunction(b)
if (!sa || !sb) { return false }
return sa === sb && a === b}
export const bufferToString = (buffer: ArrayBuffer): string => { if (buffer instanceof ArrayBuffer) { const enc = new TextDecoder('utf-8') return enc.decode(buffer) } return buffer}
export const bufferToFormData = (arrayBuffer: ArrayBuffer, contentType: string) => { const response = new Response(arrayBuffer, { headers: { 'Content-Type': contentType, }, }) return response.formData()}
Version Info