Viewing File: /home/ubuntu/route-and-root-frontend-base/node_modules/multibase/src/base64.js
'use strict'
const { Buffer } = require('buffer')
module.exports = function base64 (alphabet) {
// The alphabet is only used to know:
// 1. If padding is enabled (must contain '=')
// 2. If the output must be url-safe (must contain '-' and '_')
// 3. If the input of the output function is valid
// The alphabets from RFC 4648 are always used.
const padding = alphabet.indexOf('=') > -1
const url = alphabet.indexOf('-') > -1 && alphabet.indexOf('_') > -1
return {
encode (input) {
let output = ''
if (typeof input === 'string') {
output = Buffer.from(input).toString('base64')
} else {
output = input.toString('base64')
}
if (url) {
output = output.replace(/\+/g, '-').replace(/\//g, '_')
}
const pad = output.indexOf('=')
if (pad > 0 && !padding) {
output = output.substring(0, pad)
}
return output
},
decode (input) {
for (const char of input) {
if (alphabet.indexOf(char) < 0) {
throw new Error('invalid base64 character')
}
}
return Buffer.from(input, 'base64')
}
}
}
Back to Directory
File Manager