@push.rocks/smartbuffer
Version:
A robust TypeScript library for managing binary data by converting between Base64 strings and Uint8Array, validating buffer-like objects, and ensuring data purity.
39 lines (29 loc) • 1.22 kB
text/typescript
import * as plugins from './smartbuffer.plugins.js';
export const uInt8ArrayExtras = plugins.uInt8ArrayExtras;
export function uInt8ArrayToBase64(uInt8Array: Uint8Array): string {
return plugins.uInt8ArrayExtras.uint8ArrayToBase64(uInt8Array);
}
export function base64ToUint8Array(base64: string): Uint8Array {
return plugins.uInt8ArrayExtras.base64ToUint8Array(base64);
}
export const isUint8Array = (obj: any): obj is Uint8Array => {
return plugins.uInt8ArrayExtras.isUint8Array(obj);
};
export function isBufferLike(obj: any): obj is ArrayBufferLike | Buffer {
// Check for ArrayBufferLike objects in any environment
if (obj && typeof obj.byteLength === 'number') {
return true;
}
// Additional check specific to Node.js environment for Buffer objects
if (typeof Buffer !== 'undefined' && Buffer.isBuffer) {
return Buffer.isBuffer(obj);
}
return false;
}
export function ensurePureUint8Array(bufferArg: Uint8Array | Buffer): Uint8Array {
// Create a new Uint8Array with the same length as the buffer
const uint8Array: Uint8Array = new Uint8Array(bufferArg.length);
// Copy the contents of the Buffer to the new Uint8Array
uint8Array.set(bufferArg);
return uint8Array;
}