@msgpack/msgpack
Version:
MessagePack for ECMA-262/JavaScript/TypeScript
21 lines (19 loc) • 708 B
text/typescript
function isArrayBufferLike(buffer: unknown): buffer is ArrayBufferLike {
return (
buffer instanceof ArrayBuffer || (typeof SharedArrayBuffer !== "undefined" && buffer instanceof SharedArrayBuffer)
);
}
export function ensureUint8Array(
buffer: ArrayLike<number> | Uint8Array<ArrayBufferLike> | ArrayBufferView | ArrayBufferLike,
): Uint8Array<ArrayBufferLike> {
if (buffer instanceof Uint8Array) {
return buffer;
} else if (ArrayBuffer.isView(buffer)) {
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
} else if (isArrayBufferLike(buffer)) {
return new Uint8Array(buffer);
} else {
// ArrayLike<number>
return Uint8Array.from(buffer);
}
}