You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
/** |
|
* [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"; |
|
/** |
|
* 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) { |
|
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) { |
|
return Buffer.from(getBytes(data)).toString("base64"); |
|
} |
|
//# sourceMappingURL=base64.js.map
|