import type { BytesLike } from './BytesLike.js'; export function convertBytesLikeToUint8Array(data: BytesLike, encodeUTF8 = true): Uint8Array { if (data instanceof Uint8Array) { if (data.buffer instanceof ArrayBuffer && data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) { return data; } return new Uint8Array(data) as Uint8Array; } if (data instanceof ArrayBuffer) { return new Uint8Array(data); } if (data instanceof DataView) { return new Uint8Array(data.buffer, data.byteOffset, data.byteLength); } if (typeof data === 'string') { if (encodeUTF8) { return new TextEncoder().encode(data); } return new Uint8Array(data.split('').map((s) => s.codePointAt(0) as number)); } throw new Error('Unsupported BytesLike'); }