javascript-binary-converter
Version:
A utility package to quickly handle and convert various Javascript binary objects
107 lines • 5.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_buffer_1 = require("node:buffer");
const expect_1 = require("expect");
const converter_1 = __importDefault(require("../../converter"));
const BlobConverter_1 = __importDefault(require("../../converters/BlobConverter"));
const crossPlatform_1 = require("../../utils/crossPlatform");
describe('Node general tests', () => {
it('Should return an Int8Array, from Uint8Array', async function () {
this.timeout(0);
const uint8 = new Uint8Array([206, 134]);
const int8 = (0, converter_1.default)(uint8).toInt8Array();
(0, expect_1.expect)(int8 instanceof Int8Array).toBe(true);
(0, expect_1.expect)(new TextDecoder().decode(int8)).toBe('Ά'); //
});
it('Should return a Uint8Array, from Int8Array', async function () {
const int8 = new Int8Array([-50, -122]);
const uint8 = (0, converter_1.default)(int8).toUint8Array();
(0, expect_1.expect)(uint8 instanceof Uint8Array).toBe(true);
(0, expect_1.expect)(new TextDecoder().decode(uint8)).toBe('Ά');
});
it('Should return an Int16Array, from Int8Array', async function () {
const int8 = new Int8Array([-50, -122]);
const int16 = (0, converter_1.default)(int8).toInt16Array();
(0, expect_1.expect)(int16 instanceof Int16Array).toBe(true);
(0, expect_1.expect)(int16[0]).toBe(-31026);
});
it('Should return a Float32Array, from Uint8Array', async function () {
const uint8 = new Uint8Array([50, 122, 1, 0]);
//00110010 01111010 00000001 00000000
//00000000000000010111101000110010
const float32 = (0, converter_1.default)(uint8).toFloat32();
(0, expect_1.expect)(float32 instanceof Float32Array).toBe(true);
(0, expect_1.expect)(float32[0].toString().includes('1.356709147')).toBe(true);
});
it('Should return an "Ά" character, from Int8Array', async function () {
const int8 = new Int8Array([-50, -122]);
const text = (0, converter_1.default)(int8).toText();
(0, expect_1.expect)(text).toBe('Ά');
});
it('Should return an "Ά" character, from Uint8Array', async function () {
const int8 = new Uint8Array([206, 134]);
const text = (0, converter_1.default)(int8).toText();
(0, expect_1.expect)(text).toBe('Ά');
});
it('Should return a Blob, that is converted to "Ά", from Uint8Array', async function () {
const uint8 = new Uint8Array([206, 134]);
const blob = await (0, converter_1.default)(uint8).toBlob();
const text = await blob.text();
(0, expect_1.expect)(text).toBe('Ά');
});
it('Should return a Blob, that is converted to "Ά", from Int8Array', async function () {
const int8 = new Int8Array([-50, -122]);
const blob = await (0, converter_1.default)(int8).toBlob();
const text = await blob.text();
(0, expect_1.expect)(text).toBe('Ά');
});
it('Should return a dataUrl string from Blob', async function () {
//@ts-ignore
const blob = new node_buffer_1.Blob([206, 134]);
//@ts-ignore
const blobConverter = new BlobConverter_1.default(blob);
const url = await blobConverter.toBase64();
(0, expect_1.expect)(typeof url).toBe('string');
});
it('Should return bytes from Blob', async function () {
//@ts-ignore
const blob = new node_buffer_1.Blob([206]);
//@ts-ignore
const blobConverter = new BlobConverter_1.default(blob);
const bytes = await blobConverter.toBytes();
(0, expect_1.expect)(bytes.length).toBe(3);
});
// it('Should return decimal bytes from Blob', async function () {
// const blob = new Blob([1])
// const blobConverter = new BlobConverter(blob)
// const decimalBytes = await blobConverter.toDecimalBytes()
// expect(decimalBytes).toStrictEqual([206])
// });
it('Should return a Uint8Array, from an ArrayBuffer', async function () {
const buffer = new ArrayBuffer(5);
const uint8 = (0, converter_1.default)(buffer).toUint8Array();
(0, expect_1.expect)(uint8.constructor.name).toBe('Uint8Array');
(0, expect_1.expect)(uint8.buffer === buffer).toBe(true);
});
it('Should return decimalBytes, from an ArrayBuffer', async function () {
const int16 = new Int16Array([1, 2, 3]);
let decimals = (0, converter_1.default)(int16.buffer).toDecimalBytes();
(0, expect_1.expect)(decimals).toStrictEqual([1, 0, 2, 0, 3, 0]);
let int8 = new Int8Array([-1, -2]);
decimals = (0, converter_1.default)(int8.buffer).toDecimalBytes();
(0, expect_1.expect)(decimals).toStrictEqual([255, 254]);
const uint8 = new Uint8Array([255, 254]);
decimals = (0, converter_1.default)(uint8.buffer).toDecimalBytes({ isSigned: true });
(0, expect_1.expect)(decimals).toStrictEqual([-1, -2]);
});
it("Should return the system's endianness", async function () {
const endianness = (0, crossPlatform_1.getSystemEndianness)();
(0, expect_1.expect)(endianness === 'LITTLE' || endianness === 'BIG').toBe(true);
});
});
const uint16 = new Uint16Array([422]);
const uint8 = (0, converter_1.default)(uint16).toUint8Array();
//# sourceMappingURL=node-general.spec.js.map