1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /**
- * [Base64 encoding](link-wiki-base64) using 6-bit words to encode
- * arbitrary bytes into a string using 65 printable symbols, the
- * upper-case and lower-case alphabet, the digits ``0`` through ``9``,
- * ``"+"`` and ``"/"`` with the ``"="`` used for padding.
- *
- * @_subsection: api/utils:Base64 Encoding [about-base64]
- */
- import { getBytes, getBytesCopy } from "./data.js";
- import type { BytesLike } from "./data.js";
- /**
- * Decodes the base-64 encoded %%value%%.
- *
- * @example:
- * // The decoded value is always binary data...
- * result = decodeBase64("SGVsbG8gV29ybGQhIQ==")
- * //_result:
- *
- * // ...use toUtf8String to convert it to a string.
- * toUtf8String(result)
- * //_result:
- *
- * // Decoding binary data
- * decodeBase64("EjQ=")
- * //_result:
- */
- export function decodeBase64(value: string): Uint8Array {
- return getBytesCopy(Buffer.from(value, "base64"));
- };
- /**
- * Encodes %%data%% as a base-64 encoded string.
- *
- * @example:
- * // Encoding binary data as a hexstring
- * encodeBase64("0x1234")
- * //_result:
- *
- * // Encoding binary data as a Uint8Array
- * encodeBase64(new Uint8Array([ 0x12, 0x34 ]))
- * //_result:
- *
- * // The input MUST be data...
- * encodeBase64("Hello World!!")
- * //_error:
- *
- * // ...use toUtf8Bytes for this.
- * encodeBase64(toUtf8Bytes("Hello World!!"))
- * //_result:
- */
- export function encodeBase64(data: BytesLike): string {
- return Buffer.from(getBytes(data)).toString("base64");
- }
|