A simple, lightweight, and efficient JavaScript library to manage encoding/decoding between base64 data, Uint8Arrays, and ArrayBuffers
npm install base64-u8array-arraybufferhtml
`
Then, in your JavaScript code:
`js
// Unpacking needed functions from the global object
const { base64ToArrayBuffer } = base64u8ArrayBuffer
const buffer = base64ToArrayBuffer('base64 string here')
`
$3
You can also install base64-u8array-arraybuffer in your project.
`bash
npm i base64-u8array-arraybuffer
`
And then, you can import the library as ES Module:
`js
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
Available functions
| 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 |
Useful case
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.
`js
const { base64ToUint8Array } = base64u8ArrayBuffer
const applicationServerPublicKey = 'base64url public key'
async function subscribeUserToPush(registration) {
// ...
const subscription = await registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: base64ToUint8Array(applicationServerPublicKey)
})
// ...
}
``