bx
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!