From e1faf34660ef08e717573bd5e3558b61bf4b611b Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Thu, 29 Feb 2024 22:43:37 +0100 Subject: [PATCH] fix(core): update --- test/{test.ts => test.both.ts} | 4 ++-- ts/00_commitinfo_data.ts | 2 +- ts/index.ts | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) rename test/{test.ts => test.both.ts} (85%) diff --git a/test/test.ts b/test/test.both.ts similarity index 85% rename from test/test.ts rename to test/test.both.ts index cbba239..49619ee 100644 --- a/test/test.ts +++ b/test/test.both.ts @@ -6,14 +6,14 @@ tap.test('first test', async () => { }); tap.test('should recognize different buffer like objects', async () => { - const testBuffer = Buffer.from('test'); + // const testBuffer = Buffer.from('test'); const testArrayBuffer = new ArrayBuffer(4); const testUint8Array = new Uint8Array(testArrayBuffer); testUint8Array[0] = 116; testUint8Array[1] = 101; testUint8Array[2] = 115; testUint8Array[3] = 116; - expect(smartbuffer.isBufferLike(testBuffer)).toBeTrue(); + // expect(smartbuffer.isBufferLike(testBuffer)).toBeTrue(); expect(smartbuffer.isBufferLike(testArrayBuffer)).toBeTrue(); expect(smartbuffer.isBufferLike(testUint8Array)).toBeTrue(); }); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 42d106a..54b1a3b 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: '1.0.6', + version: '1.0.7', description: 'handle ArrayBufferLike structures' } diff --git a/ts/index.ts b/ts/index.ts index 7eea4a2..4e82e24 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -62,6 +62,16 @@ export function base64ToArrayBuffer(base64: string): Uint8Array { return arrayBuffer; } -export function isBufferLike(obj: any): obj is ArrayBufferLike { - return obj && typeof obj.byteLength === 'number'; -} +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