From bf2d9f25d445b8136136285445e40cd4ca2ca874 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Wed, 17 Mar 2021 11:00:57 -0700 Subject: [PATCH] buffer: implement btoa and atob Signed-off-by: James M Snell PR-URL: https://github.com/nodejs/node/pull/37529 Fixes: https://github.com/nodejs/node/issues/3462 Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina --- doc/api/buffer.md | 38 ++++++++++++++++++++++++++++++++++++++ lib/buffer.js | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 154f05ae3a39ef..564c116665eb5d 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -3112,6 +3112,44 @@ While, the `Buffer` object is available as a global, there are additional `Buffer`-related APIs that are available only via the `buffer` module accessed using `require('buffer')`. +### `buffer.atob(data)` + + +* `data` {any} The Base64-encoded input string. + +Decodes a string of Base64-encoded data into bytes, and encodes those bytes +into a string using Latin-1 (ISO-8859-1). + +The `data` may be any JavaScript-value that can be coerced into a string. + +**This function is only provided for compatibility with legacy web platform APIs +and should never be used in new code, because they use strings to represent +binary data and predate the introduction of typed arrays in JavaScript. +For code running using Node.js APIs, converting between base64-encoded strings +and binary data should be performed using `Buffer.from(str, 'base64')` and +`buf.toString('base64')`.** + +### `buffer.btoa(data)` + + +* `data` {any} An ASCII (Latin1) string. + +Decodes a string into bytes using Latin-1 (ISO-8859), and encodes those bytes +into a string using Base64. + +The `data` may be any JavaScript-value that can be coerced into a string. + +**This function is only provided for compatibility with legacy web platform APIs +and should never be used in new code, because they use strings to represent +binary data and predate the introduction of typed arrays in JavaScript. +For code running using Node.js APIs, converting between base64-encoded strings +and binary data should be performed using `Buffer.from(str, 'base64')` and +`buf.toString('base64')`.** + ### `buffer.INSPECT_MAX_BYTES`