From edde4887d38fefe377d2119616110f690dffd723 Mon Sep 17 00:00:00 2001 From: Francisco Budaszewski Zanatta Date: Mon, 15 Sep 2025 20:35:23 -0300 Subject: [PATCH] chore: rename base64 FFI functions --- src/gleam/bit_array.gleam | 8 ++++---- src/gleam_stdlib.erl | 10 +++++----- src/gleam_stdlib.mjs | 4 ++-- test/gleam/bit_array_test.gleam | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/gleam/bit_array.gleam b/src/gleam/bit_array.gleam index 1aae367b..be970ad5 100644 --- a/src/gleam/bit_array.gleam +++ b/src/gleam/bit_array.gleam @@ -113,8 +113,8 @@ pub fn concat(bit_arrays: List(BitArray)) -> BitArray /// If the bit array does not contain a whole number of bytes then it is padded /// with zero bits prior to being encoded. /// -@external(erlang, "gleam_stdlib", "bit_array_base64_encode") -@external(javascript, "../gleam_stdlib.mjs", "encode64") +@external(erlang, "gleam_stdlib", "base64_encode") +@external(javascript, "../gleam_stdlib.mjs", "base64_encode") pub fn base64_encode(input: BitArray, padding: Bool) -> String /// Decodes a base 64 encoded string into a `BitArray`. @@ -127,8 +127,8 @@ pub fn base64_decode(encoded: String) -> Result(BitArray, Nil) { decode64(padded) } -@external(erlang, "gleam_stdlib", "base_decode64") -@external(javascript, "../gleam_stdlib.mjs", "decode64") +@external(erlang, "gleam_stdlib", "base64_decode") +@external(javascript, "../gleam_stdlib.mjs", "base64_decode") fn decode64(a: String) -> Result(BitArray, Nil) /// Encodes a `BitArray` into a base 64 encoded string with URL and filename diff --git a/src/gleam_stdlib.erl b/src/gleam_stdlib.erl index 77ea7dfc..50136ab1 100644 --- a/src/gleam_stdlib.erl +++ b/src/gleam_stdlib.erl @@ -5,8 +5,8 @@ less_than/2, string_pop_grapheme/1, string_pop_codeunit/1, string_starts_with/2, wrap_list/1, string_ends_with/2, string_pad/4, uri_parse/1, bit_array_slice/3, percent_encode/1, percent_decode/1, - base_decode64/1, parse_query/1, bit_array_concat/1, - bit_array_base64_encode/2, tuple_get/2, classify_dynamic/1, print/1, + base64_decode/1, parse_query/1, bit_array_concat/1, + base64_encode/2, tuple_get/2, classify_dynamic/1, print/1, println/1, print_error/1, println_error/1, inspect/1, float_to_string/1, int_from_base_string/2, utf_codepoint_list_to_string/1, contains_string/2, crop_string/2, base16_encode/1, base16_decode/1, string_replace/3, slice/3, @@ -141,11 +141,11 @@ bit_array_concat(BitArrays) -> list_to_bitstring(BitArrays). -if(?OTP_RELEASE >= 26). -bit_array_base64_encode(Bin, Padding) -> +base64_encode(Bin, Padding) -> PaddedBin = bit_array_pad_to_bytes(Bin), base64:encode(PaddedBin, #{padding => Padding}). -else. -bit_array_base64_encode(_Bin, _Padding) -> +base64_encode(_Bin, _Padding) -> erlang:error(<<"Erlang OTP/26 or higher is required to use base64:encode">>). -endif. @@ -154,7 +154,7 @@ bit_array_slice(Bin, Pos, Len) -> catch error:badarg -> {error, nil} end. -base_decode64(S) -> +base64_decode(S) -> try {ok, base64:decode(S)} catch error:_ -> {error, nil} end. diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 2edf3ade..d044e24a 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -542,7 +542,7 @@ const b64EncodeLookup = [ let b64TextDecoder; // Implementation based on https://github.com/mitschabaude/fast-base64/blob/main/js.js -export function encode64(bit_array, padding) { +export function base64_encode(bit_array, padding) { b64TextDecoder ??= new TextDecoder(); bit_array = bit_array_pad_to_bytes(bit_array); @@ -579,7 +579,7 @@ export function encode64(bit_array, padding) { } // From https://developer.mozilla.org/en-US/docs/Glossary/Base64 -export function decode64(sBase64) { +export function base64_decode(sBase64) { try { const binString = atob(sBase64); const length = binString.length; diff --git a/test/gleam/bit_array_test.gleam b/test/gleam/bit_array_test.gleam index 173239e3..3dd43e98 100644 --- a/test/gleam/bit_array_test.gleam +++ b/test/gleam/bit_array_test.gleam @@ -207,7 +207,7 @@ pub fn base64_url_decode_test() { assert bit_array.base64_url_decode(")!") == Error(Nil) } -pub fn decode64_crash_regression_1_test() { +pub fn base64_decode_crash_regression_1_test() { assert bit_array.base64_decode("aGktdGhlcmU.uWUWvrAleKQ2jsWcU97H-RPJ5qRRcE_s") == Error(Nil) }