@waiting/base64
Version:
Base64 encoding/decoding in pure JS on both modern Browsers and Node.js. Also supports URL-safe base64
35 lines (30 loc) • 957 B
JavaScript
import { ErrMsg } from './config'
import { isArrayBuffer, isUint8Array, parseDecodeInputBase64, parseEncodeInputString, } from './helper'
export function nodeEncode(input) {
const str = parseEncodeInputString(input)
const ret = Buffer.from(str).toString('base64')
return ret
}
export function nodeDecode(base64, outputEncoding) {
const str = parseDecodeInputBase64(base64)
const ret = Buffer.from(str, 'base64').toString(outputEncoding)
return ret
}
/** Encode to base64, source from ArrayBuffer or Uint8Array */
export function fromBuffer(buf) {
let inst
if (!buf) {
throw new TypeError(ErrMsg.fromArrayBufferInvalidParam)
}
else if (isUint8Array(buf)) {
inst = Buffer.from(buf)
}
else if (isArrayBuffer(buf)) {
inst = Buffer.from(buf)
}
else {
throw new TypeError(ErrMsg.fromArrayBufferInvalidParam)
}
const ret = inst.toString('base64')
return ret
}