byte-base64
v1.1.0
Published
base64 utilities for TypeScript and JavaScript
Downloads
87,835
Readme
byte-base64
base64 utilities for TypeScript and JavaScript.
This library allows you to encode all the following data structures to a base64-encoded string and back:
- Uint8Array of bytes
- JS array of bytes - encoded as numbers from 0 to 255
- JS string - using any encoding supported by TextEncoder and TextDecoder
All other known solutions and approaches provide only a limited support for these features. In particular, atob and btoa only support ASCII strings.
byte-base64 is available as npm package.
npm i byte-base64
Consumption:
import * as base64 from "byte-base64";
Functions:
bytesToBase64(bytes: number[] | Uint8Array): string
- Encodes a Uint8Array or JS array of bytes to a base64-encoded string.base64ToBytes(str: string): Uint8Array
- Decodes a base64-encoded string to a Uint8Array of bytes. Ifstr
is not a valid base64-encoded string, throwsnew Error("Unable to parse base64 string.")
.base64encode(str: string, encoder: { encode: (str: string) => Uint8Array | number[] } = new TextEncoder())
- Encodes a JS string to a base64-encoded string using the specified character encoding. The encoding defaults tonew TextEncoder()
which represents UTF-8 encoding.base64decode(str: string, decoder: { decode: (bytes: Uint8Array) => string } = new TextDecoder())
- Decodes a base64-encoded string to a JS string using the specified character encoding. The encoding defaults tonew TextDecoder()
which represents UTF-8 encoding. Ifstr
is not a valid base64-encoded string, throwsnew Error("Unable to parse base64 string.")
.
TextEncoder supports only UTF-8 encoding in the majority of browsers. For more encodings, consider using a polyfill.
Project license is MIT.