diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index d073c8f..7097884 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartbuffer', - version: '3.0.0', + version: '3.0.1', description: 'A library for managing ArrayBufferLike structures including conversion between Base64 and Uint8Array, and buffer validation.' } diff --git a/ts/index.ts b/ts/index.ts index 764bdf8..6cd46a7 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -12,4 +12,18 @@ export function base64ToUint8Array(base64: string): Uint8Array { 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; } \ No newline at end of file