13 lines
484 B
JavaScript
13 lines
484 B
JavaScript
|
import { fromString } from "@smithy/util-buffer-from";
|
||
|
const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;
|
||
|
export const fromBase64 = (input) => {
|
||
|
if ((input.length * 3) % 4 !== 0) {
|
||
|
throw new TypeError(`Incorrect padding on base64 string.`);
|
||
|
}
|
||
|
if (!BASE64_REGEX.exec(input)) {
|
||
|
throw new TypeError(`Invalid base64 string.`);
|
||
|
}
|
||
|
const buffer = fromString(input, "base64");
|
||
|
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
||
|
};
|