init
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* [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");
|
||||
}
|
||||
Reference in New Issue
Block a user