UNPKG

@aislamov/onnxruntime-web64

Version:

A Javascript library for running ONNX models on browsers

155 lines 5.16 kB
"use strict"; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.streamResponseToBuffer = exports.logLevelStringToEnum = exports.tensorTypeToTypedArrayConstructor = exports.getTensorElementSize = exports.tensorDataTypeEnumToString = exports.tensorDataTypeStringToEnum = void 0; /** * Map string tensor data to enum value */ const tensorDataTypeStringToEnum = (type) => { switch (type) { case 'int8': return 3 /* DataType.int8 */; case 'uint8': return 2 /* DataType.uint8 */; case 'bool': return 9 /* DataType.bool */; case 'int16': return 5 /* DataType.int16 */; case 'uint16': return 4 /* DataType.uint16 */; case 'int32': return 6 /* DataType.int32 */; case 'uint32': return 12 /* DataType.uint32 */; case 'float16': return 10 /* DataType.float16 */; case 'float32': return 1 /* DataType.float */; case 'float64': return 11 /* DataType.double */; case 'string': return 8 /* DataType.string */; case 'int64': return 7 /* DataType.int64 */; case 'uint64': return 13 /* DataType.uint64 */; default: throw new Error(`unsupported data type: ${type}`); } }; exports.tensorDataTypeStringToEnum = tensorDataTypeStringToEnum; /** * Map enum value to string tensor data */ const tensorDataTypeEnumToString = (typeProto) => { switch (typeProto) { case 3 /* DataType.int8 */: return 'int8'; case 2 /* DataType.uint8 */: return 'uint8'; case 9 /* DataType.bool */: return 'bool'; case 5 /* DataType.int16 */: return 'int16'; case 4 /* DataType.uint16 */: return 'uint16'; case 6 /* DataType.int32 */: return 'int32'; case 12 /* DataType.uint32 */: return 'uint32'; case 10 /* DataType.float16 */: return 'float16'; case 1 /* DataType.float */: return 'float32'; case 11 /* DataType.double */: return 'float64'; case 8 /* DataType.string */: return 'string'; case 7 /* DataType.int64 */: return 'int64'; case 13 /* DataType.uint64 */: return 'uint64'; default: throw new Error(`unsupported data type: ${typeProto}`); } }; exports.tensorDataTypeEnumToString = tensorDataTypeEnumToString; /** * get tensor element size in bytes by the given data type * @returns size in integer or undefined if the data type is not supported */ const getTensorElementSize = (dateType) => [undefined, 4, 1, 1, 2, 2, 4, 8, undefined, 1, 2, 8, 4, 8, undefined, undefined, undefined][dateType]; exports.getTensorElementSize = getTensorElementSize; /** * get typed array constructor by the given tensor type */ const tensorTypeToTypedArrayConstructor = (type) => { switch (type) { case 'float16': return Uint16Array; case 'float32': return Float32Array; case 'uint8': return Uint8Array; case 'int8': return Int8Array; case 'uint16': return Uint16Array; case 'int16': return Int16Array; case 'int32': return Int32Array; case 'bool': return Uint8Array; case 'float64': return Float64Array; case 'uint32': return Uint32Array; case 'int64': return BigInt64Array; case 'uint64': return BigUint64Array; default: throw new Error(`unsupported type: ${type}`); } }; exports.tensorTypeToTypedArrayConstructor = tensorTypeToTypedArrayConstructor; /** * Map string log level to integer value */ const logLevelStringToEnum = (logLevel) => { switch (logLevel) { case 'verbose': return 0; case 'info': return 1; case 'warning': return 2; case 'error': return 3; case 'fatal': return 4; default: throw new Error(`unsupported logging level: ${logLevel}`); } }; exports.logLevelStringToEnum = logLevelStringToEnum; const streamResponseToBuffer = async (response, output, outputOffset = 0) => { let offset = outputOffset; if (typeof response.body?.getReader !== 'undefined') { const reader = response.body.getReader(); // eslint-disable-next-line no-constant-condition while (true) { const { done, value } = await reader.read(); if (done) { break; } const chunk = new Uint8Array(output, offset, value.byteLength); chunk.set(new Uint8Array(value)); offset += value.byteLength; } } }; exports.streamResponseToBuffer = streamResponseToBuffer; //# sourceMappingURL=wasm-common.js.map