Pinafore-Web-Client-Frontend/src/routes/_utils/base64.js

21 lines
539 B
JavaScript
Raw Normal View History

const decodeBase64 = base64 => {
const rawData = window.atob(base64)
const outputArray = new Uint8Array(rawData.length)
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i)
}
return outputArray
}
// Taken from https://www.npmjs.com/package/web-push
export const urlBase64ToUint8Array = (base64String) => {
const padding = '='.repeat((4 - base64String.length % 4) % 4)
const base64 = (base64String + padding)
.replace(/-/g, '+')
.replace(/_/g, '/')
return decodeBase64(base64)
}