UNPKG

@mrhiden/cstruct

Version:

For packing and unpacking bytes (C like structures) in/from Buffer based on Object/Array type for parsing.

38 lines (37 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hexToBufferEx = exports.removeNonHex = exports.printBuffer = exports.bufferToHex = exports.hexToBuffer = void 0; function hexToBuffer(hex) { hex = hex.replace(/0x/g, ""); hex = hex.replace(/[\n _]/g, ""); return Buffer.from(hex, "hex"); } exports.hexToBuffer = hexToBuffer; function bufferToHex(buffer) { return buffer.toString("hex"); } exports.bufferToHex = bufferToHex; function printBuffer(buffer) { const hex = buffer.toString("hex"); console.log(hex); return hex; } exports.printBuffer = printBuffer; function removeNonHex(dirtyHex) { return dirtyHex // Replace kind of formatting, label:HEX -> HEX // "(Ab.length:03) (Ab:[])[{a:01,b:02},{a:03,b:04},{a:05,b:06}]" -> "(03) ([])[{01,02},{03,04},{05,06}]" // "(Ab:[03])[{a:01,b:02},{a:03,b:04},{a:05,b:06}]" -> "([03])[{01,02},{03,04},{05,06}]" .replace(/[\w.]+?:/g, '') // Replace all non-HEX characters // "(03) ([])[{01,02},{03,04},{05,06}]" -> "03010203040506" // "([03])[{01,02},{03,04},{05,06}]" -> "03010203040506" // "12 34 5678 90ab cdef ghijk klmn oprs tquw xyzw !@#$ %^&* ()[]{}<>" -> "1234567890abcdef" .replace(/[^0-9a-fA-F]/g, ''); } exports.removeNonHex = removeNonHex; function hexToBufferEx(dirtyHex) { const hex = removeNonHex(dirtyHex); return Buffer.from(hex, "hex"); } exports.hexToBufferEx = hexToBufferEx;