Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/gleam/bit_array.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand All @@ -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
Expand Down
10 changes: 5 additions & 5 deletions src/gleam_stdlib.erl
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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.

Expand All @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions src/gleam_stdlib.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion test/gleam/bit_array_test.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down