@hertzg/bx

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->

Usage no npm install needed!

<script type="module">
  import hertzgBx from 'https://cdn.skypack.dev/@hertzg/bx';
</script>

README

bx

All Contributors

Small tool to help create Buffers in NodeJS

Install

yarn add @hertzg/bx
npm i --save @hertzg/bx

Warning: This package is native ESM and no longer provides a CommonJS export. If your project uses CommonJS, you'll have to convert to ESM or use the dynamic import() function.

Behavior

Package provides bx and bxx method thar accepts a string containing hex encoded buffer. The string will be stripped of any non-hexadecimal symbols (eg: [^0-9-a-f]) and if the resulting string has even length then it's used as a value for Buffer.from(value, 'hex') with bxx and as new Uint8Array(value).buffer with bx or otherwise throws a TypeError.

Example

Typescript

import { bx } from '@hertzg/bx';

const HEADER = bx('00 ff 00 ff'); // ArrayBuffer { [Uint8Contents]: <00 ff 00 ff>, byteLength: 4 }
const SYNC1 = bx('00ff00ff_b4_01020304'); // ArrayBuffer { [Uint8Contents]: <00 ff 00 ff b4 01 02 03 04>, byteLength: 9 }
const ZEROLENGTH = bx(''); // ArrayBuffer { [Uint8Contents]: <>, byteLength: 0 }

const WRONGHEX = bx('z ff 00 00'); // throws
const MISSZERO = bx('f2-00_0_00'); // throws
const SPACES = bx('          '); // throws

If you want to get Buffer instead of ArrayBuffer just replace bx calls with bxx

import { bxx } from '@hertzg/bx';

const HEADER = bxx('00 ff 00 ff'); // <Buffer 00 ff 00 ff>
const SYNC1 = bxx('00ff00ff_b4_01020304'); // <Buffer 00 ff 00 ff b4 01 02 03 04>
const ZEROLENGTH = bxx(''); // <Buffer >

const WRONGHEX = bxx('z ff 00 00'); // throws
const MISSZERO = bxx('f2-00_0_00'); // throws
const SPACES = bxx('          '); // throws

More examples can be seen in tests

Contributors ✨

Thanks goes to these wonderful people (emoji key):


George Hertz

🚧 🚇 ⚠️ 💻

This project follows the all-contributors specification. Contributions of any kind welcome!