javascript-binary-converter
Version:
A utility package to quickly handle and convert various Javascript binary objects
57 lines • 1.83 kB
JavaScript
import { bytesToIntegers, typedArrayToBytes } from '../utils/binary';
import { getBlobClass } from '../utils/crossPlatform';
import { binaryToImage } from '../utils/image';
export default class TypedArrayConverter {
constructor(original) {
this.original = original;
}
toUint8Array() {
return new Uint8Array(this.original.buffer);
}
toInt8Array() {
return new Int8Array(this.original.buffer);
}
toInt16Array() {
const int16 = new Int16Array(this.original.buffer);
return int16;
}
toUint16Array() {
const uint16 = new Uint16Array(this.original.buffer);
return uint16;
}
toInt32Array() {
return new Int32Array(this.original.buffer);
}
toUint32Array() {
return new Uint32Array(this.original.buffer);
}
toBigUint64Array() {
return new BigUint64Array(this.original.buffer);
}
toBigInt64Array() {
return new BigInt64Array(this.original.buffer);
}
toFloat32() {
return new Float32Array(this.original.buffer);
}
toText() {
const decoder = new TextDecoder();
return decoder.decode(this.original);
}
async toBlob(config) {
const BlobClass = await getBlobClass();
return new BlobClass([this.original], config);
}
async toImage(config) {
return binaryToImage(await this.toBlob(), config && config);
}
toBytes() {
const bytes = this.original instanceof Uint8Array ? typedArrayToBytes(this.original) : typedArrayToBytes(new Uint8Array(this.original));
return bytes;
}
toDecimalBytes() {
const bytes = this.toBytes();
return bytesToIntegers(bytes);
}
}
//# sourceMappingURL=TypedArrayConverter.js.map