javascript-binary-converter
Version:
A utility package to quickly handle and convert various Javascript binary objects
39 lines • 2.06 kB
JavaScript
import BlobConverter from "./converters/BlobConverter";
import TypedArrayConverter from "./converters/TypedArrayConverter";
import FileConverter from "./converters/FileConverter";
import ArrayBufferConverter from "./converters/ArrayBufferConverter";
import { isNode } from "./utils/crossPlatform";
import ImageConverter from "./converters/ImageConverter";
import BytesConverter from "./converters/BytesConverter";
import DecimalBytesConverter from "./converters/DecimalBytesConverter";
import NumberConverter from "./converters/NumberConverter";
import StringConverter from "./converters/StringConverter";
function converter(original) {
if (isNode && original.constructor.name === 'Blob') {
throw new Error('In order to convert a Blob in Node, import BlobConverter directly');
}
if (original instanceof Int8Array || original instanceof Uint8Array || original instanceof Uint16Array || original instanceof Int16Array || original instanceof Int32Array || original instanceof Uint32Array)
return new TypedArrayConverter(original);
if (!isNode) {
if (original instanceof File)
return new FileConverter(original);
if (original instanceof HTMLImageElement)
return new ImageConverter(original);
if (original instanceof Blob)
return new BlobConverter(original);
}
if (typeof original === 'string') {
return new StringConverter(original);
}
if (original instanceof ArrayBuffer)
return new ArrayBufferConverter(original);
if (typeof original === 'number' || typeof original === 'bigint')
return new NumberConverter(original);
if (Array.isArray(original) && typeof original[0] === 'number')
return new DecimalBytesConverter(original);
if (Array.isArray(original) && typeof original[0] === 'string')
return new BytesConverter(original);
throw new Error('The argument supplied is not a convertible');
}
export default converter;
//# sourceMappingURL=converter.js.map