Skip to content

isSharedArrayBuffer

Checks if a value is a SharedArrayBuffer instance.

SharedArrayBuffer enables shared memory between the main thread and worker threads. In browsers without COOP/COEP headers, SharedArrayBuffer may be unavailable; this function returns false in that case.

Available since v2.0.3

import { isSharedArrayBuffer } from '@helpers4/node';
// or, from the all-in-one package (same code, one install):
import { isSharedArrayBuffer } from 'helpers4/node';
isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer
ParameterTypeDescription
valueunknownThe value to check

value is SharedArrayBuffer — true if value is a SharedArrayBuffer

Distinguish SharedArrayBuffer from ArrayBuffer

Section titled “Distinguish SharedArrayBuffer from ArrayBuffer”

Returns true only for SharedArrayBuffer instances, not plain ArrayBuffers.

isSharedArrayBuffer(new SharedArrayBuffer(8)) // => true
isSharedArrayBuffer(new ArrayBuffer(8))       // => false
isSharedArrayBuffer(null)                     // => false

Safe shared memory check before worker communication

Section titled “Safe shared memory check before worker communication”

Use as a guard to ensure a buffer can be transferred to a Worker.

function sendToWorker(buffer: unknown): void {
  if (isSharedArrayBuffer(buffer)) {
    // buffer is SharedArrayBuffer — can be shared directly
    // worker.postMessage({ buffer });
  } else {
    // must transfer or copy
  }
}

View source on GitHub