Package Exports
- @niyari/base32-ts
- @niyari/base32-ts/dist/base32.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@niyari/base32-ts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
base32-ts
Base32 encode/decode for TypeScript
Install
npm i @niyari/base32-tsDemo
https://niyari.github.io/base32-ts/demo/
Supported Browsers
ECMAScript 2020 and later. (Using BigInt within Crockford.)
- Chrome 89+
- Firefox 87+
- Safari 14+
- Edge(Chromium) 89+
Usage
RFC4648
const base32 = new Base32();
let base32_encoded = base32.encode('foobar');
// str = "MZXW6YTBOI======"
let base32_decoded = base32.decode('MZXW6YTBOI======');
// str = "foobar"RFC4648_HEX
const base32_hex = new Base32({ variant: 'hex' });
base32_hex.encode('foobar');
// str = "CPNMUOJ1E8======"
base32_hex.decode('CPNMUOJ1E8======');
// str = "foobar"Clockwork Base32
const base32_clockwork = new Base32({ variant: 'clockwork' }); // Clockwork (short name 'maki')
base32_clockwork.encode('foobar');
// str = "CSQPYRK1E8"
base32_clockwork.decode('CSQPYRK1E8');
// str = "foobar"Encoding multibyte character set
base32.encode('Tofu on Fire!📛'); // (📛 = Name Badge:for Japanese preschoolers.)
// str = "KRXWM5JAN5XCARTJOJSSD4E7SONQ===="API(Options)
new Base32([{ [variant] [,padding] [,raw] [,checksum] [,split] }]);Variant
{ variant: '<string>' }- RFC4648
46483548- (empty)
- RFC4648_HEX
hex
- Clockwork Base32
clockworkmaki
- Crockford
crockford
Encode: Set padding ( = )
{ padding: <bool> }| RFC4648 | HEX | Clockwork | Crockford | |
|---|---|---|---|---|
| default | True | True | False | - |
const base32_np = new Base32({ padding: false }); // RFC4648 no padding
base32_np.encode('foobar');
// str = "MZXW6YTBOI"
const b32_cw_pad = new Base32({ variant: 'maki', padding: true }); // Clockwork use padding
b32_cw_pad.encode('foobar');
// str = "CSQPYRK1E8======"Decode: Raw
Return Uint8Array object.
{ raw: <bool> }| RFC4648 | HEX | Clockwork | Crockford | |
|---|---|---|---|---|
| default | False | False | False | False(hexadecimal string) |
const base32 = new Base32();
base32.decode('MZXW6YTBOI======'); // (default)
const base32_raw0 = new Base32({ raw: false });
base32_raw0.decode('MZXW6YTBOI======');
// Return value: String
const base32_raw1 = new Base32({ raw: true });
base32_raw1.decode('MZXW6YTBOI======');
const base32_crockford_raw = new Base32({ variant: 'crockford', raw: true });
base32_crockford_raw.decode(123456);
// Return value: Uint8Array objectCrockford
Encode an integer into a Crockford Symbol string.
Usage
const base32_crockford = new Base32({ variant: 'crockford' });
base32_crockford.encode(1234);
// str = "16J"
base32_crockford.decode('16J');
// str = "0x04d2" = 1234In decoding, the misleading character "IiLl" is treated as 1 and "Oo" is treated as 0.
base32_crockford.decode('IiLl10Oo');
// str = "0x842108000"API(Options)
{ variant: 'crockford' }Checksum
{ variant: 'crockford', checksum: <bool> }| RFC4648 | HEX | Clockwork | Crockford | |
|---|---|---|---|---|
| default | - | - | - | False |
const base32_crockford = new Base32({ variant: 'crockford', checksum: true });
base32_crockford.encode(1234);
// str = "16JD"
base32_crockford.decode('16JD');
// str = "0x04d2" = 1234Encode: Split
{ variant: 'crockford', split: <unsigned integer> }| RFC4648 | HEX | Clockwork | Crockford | |
|---|---|---|---|---|
| default | - | - | - | 0 |
const base32_crockford = new Base32({ variant: 'crockford', split: 2 });
base32_crockford.encode(123456);
// str = "3R-J0"
const base32_crockford_s1 = new Base32({ variant: 'crockford', split: 1 });
base32_crockford_s1.encode(123456);
// str = "3-R-J-0"See Also:
License
MIT