itk-wasm
Version:
High-performance spatial analysis in a web browser, Node.js, and reproducible execution across programming languages and hardware architectures.
26 lines (20 loc) • 691 B
text/typescript
function pthreadSupportAvailable (): boolean {
const haveSharedArrayBuffer =
typeof globalThis.SharedArrayBuffer === 'function'
// Emscripten ENVIRONMENT_IS_NODE
const isNode =
typeof process === 'object' &&
typeof process.versions === 'object' &&
typeof process.versions.node === 'string' &&
// @ts-expect-error: ts(2339)
process.type !== 'renderer'
const isCrossOriginIsolated =
typeof crossOriginIsolated !== 'undefined'
? crossOriginIsolated
: globalThis.crossOriginIsolated || false
if (isNode) {
return haveSharedArrayBuffer
}
return haveSharedArrayBuffer && isCrossOriginIsolated
}
export default pthreadSupportAvailable