isArrayBuffer
Determines whether a value is an ArrayBuffer with enhanced type safety. Provides reliable ArrayBuffer detection using instanceof check for identifying binary data buffer objects used in low-level operations and WebAPI interactions.
Signature
const isArrayBuffer: (value: unknown) => value is ArrayBuffer
Parameters
| Name | Type | Description |
|---|---|---|
value | - | Value to test for ArrayBuffer type |
Returns
Type-safe boolean indicating whether the value is an ArrayBuffer
Examples
Basic ArrayBuffer detection
import { isArrayBuffer } from '@winglet/common-utils';
const buffer = new ArrayBuffer(16);
const uint8Array = new Uint8Array(16);
const regularArray = [1, 2, 3];
console.log(isArrayBuffer(buffer)); // true
console.log(isArrayBuffer(uint8Array.buffer)); // true
console.log(isArrayBuffer(uint8Array)); // false (typed array, not ArrayBuffer)
console.log(isArrayBuffer(regularArray)); // false
console.log(isArrayBuffer('binary data')); // false
console.log(isArrayBuffer(null)); // false
File processing with ArrayBuffer
function processFileData(data: unknown) {
if (isArrayBuffer(data)) {
// TypeScript knows data is ArrayBuffer
console.log(`Processing ${data.byteLength} bytes`);
// Safe to create typed array views
const uint8View = new Uint8Array(data);
const dataView = new DataView(data);
return { uint8View, dataView };
}
throw new Error('Expected ArrayBuffer for binary data processing');
}
WebAPI integration
async function handleFileUpload(file: File) {
const buffer = await file.arrayBuffer();
if (isArrayBuffer(buffer)) {
// Process binary file data
const bytes = new Uint8Array(buffer);
return processImageData(bytes);
}
}
Playground
import { isArrayBuffer } from '@winglet/common-utils'; const buffer = new ArrayBuffer(16); const uint8Array = new Uint8Array(16); const regularArray = [1, 2, 3]; console.log(isArrayBuffer(buffer)); // true console.log(isArrayBuffer(uint8Array.buffer)); // true console.log(isArrayBuffer(uint8Array)); // false (typed array, not ArrayBuffer) console.log(isArrayBuffer(regularArray)); // false console.log(isArrayBuffer('binary data')); // false console.log(isArrayBuffer(null)); // false
Notes
Use Cases:
- Binary data validation before processing
- WebAPI response validation (fetch, FileReader)
- Low-level data manipulation guards
- Memory buffer validation
Related Types:
- Use
isTypedArray()for Uint8Array, Int32Array etc. - Use
isDataView()for DataView objects - Use
isBuffer()for Node.js Buffer objects
Performance: Direct instanceof check provides optimal performance.