📦 A simple, lightweight, and efficient JavaScript library to manage encoding and decoding between base64 data, Uint8Arrays, and ArrayBuffers. This library perfectly works with Node.js and the browser.
- < 900 bytes gzipped!
- No dependency
- Accepts base64url and replace non-url compatible chars with base64 standard chars
- Adds missing padding to base64 string
- Works even on large data
- Uses modern functions and shorter solutions
- Supports ES modules, AMD, CommonJS and IIFE
The easiest way to use base64-u8array-arraybuffer is to include the library from a CDN:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/base64-u8array-arraybuffer.min.js"></script>
Then, in your JavaScript code:
// Unpacking needed functions from the global object
const { base64ToArrayBuffer } = base64u8ArrayBuffer
const buffer = base64ToArrayBuffer('base64 string here')
You can also install base64-u8array-arraybuffer in your project.
npm i base64-u8array-arraybuffer
And then, you can import the library as ES Module:
import { base64ToArrayBuffer } from 'base64-u8array-arraybuffer'
const buffer = base64ToArrayBuffer('base64 string here')
You can also use commonJS syntax with require()
Note ES Module syntax also works in modern browsers. You just need to add type="module"
to your <script>
tag.
<script type="module" src="..."></script>
Function name | Description |
---|---|
base64ToUint8Array(base64String) |
base64 to Uint8Array |
uint8ArrayToBase64(uint8Array) |
Uint8Array to Base64 (Works with any TypedArray. You can use typedArrayToBase64() alias.) |
uint8ArrayToArrayBuffer(uint8Array) |
Uint8Array to ArrayBuffer (Works with any TypedArray. You can use typedArrayToArrayBuffer() alias.) |
arrayBufferToUint8Array(arrayBuffer) |
ArrayBuffer to Uint8Array |
base64ToArrayBuffer(base64String) |
base64 to ArrayBuffer |
arrayBufferToBase64(arrayBuffer) |
ArrayBuffer to base64 |
An example for this library would be to convert a base64url VAPID application server key into an Uint8Array to subscribe to Web Push Notifications. You can achieve this by using base64ToUint8Array(base64String)
function.
const { base64ToUint8Array } = base64u8ArrayBuffer
const applicationServerPublicKey = 'base64url public key'
async function subscribeUserToPush(registration) {
// ...
const subscription = await registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: base64ToUint8Array(applicationServerPublicKey)
})
// ...
}
There are no tests for the moment.
MIT License.