UNPKG

netkitty

Version:
28 lines (27 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Float32ToBERHex = exports.UInt64ToBERHex = exports.UInt32ToBERHex = exports.UInt16ToBERHex = exports.UInt8ToBERHex = exports.Int64ToBERHex = exports.Int32ToBERHex = exports.Int16ToBERHex = exports.Int8ToBERHex = void 0; const NumberToHex_1 = require("./NumberToHex"); function toBERHex(rawHex) { const hex = rawHex.padStart(rawHex.length + rawHex.length % 2, '0'); return Buffer.from(hex, 'hex')[0].toString(2).padStart(8, '0').startsWith('1') ? `00${hex}` : hex; } const Int8ToBERHex = (value) => toBERHex(new Uint8Array(Int8Array.from([value]).buffer)[0].toString(16)); exports.Int8ToBERHex = Int8ToBERHex; const Int16ToBERHex = (value) => toBERHex(new Uint16Array(Int16Array.from([value]).buffer)[0].toString(16)); exports.Int16ToBERHex = Int16ToBERHex; const Int32ToBERHex = (value) => toBERHex(new Uint32Array(Int32Array.from([value]).buffer)[0].toString(16)); exports.Int32ToBERHex = Int32ToBERHex; const Int64ToBERHex = (value) => toBERHex(BigInt(value).toString(16)); exports.Int64ToBERHex = Int64ToBERHex; const UInt8ToBERHex = (value) => toBERHex(value.toString(16)); exports.UInt8ToBERHex = UInt8ToBERHex; const UInt16ToBERHex = (value) => toBERHex(value.toString(16)); exports.UInt16ToBERHex = UInt16ToBERHex; const UInt32ToBERHex = (value) => toBERHex(value.toString(16)); exports.UInt32ToBERHex = UInt32ToBERHex; const UInt64ToBERHex = (value) => toBERHex(BigInt(value).toString(16)); exports.UInt64ToBERHex = UInt64ToBERHex; //Float32 precision is always 8, therefore add '08' prefix for Float32ToHex result const Float32ToBERHex = (value) => `08${(0, NumberToHex_1.Float32ToHex)(value)}`; exports.Float32ToBERHex = Float32ToBERHex;