aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/wtf-bindings.cpp
diff options
context:
space:
mode:
authorGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-10-10 15:28:08 -0700
committerGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-10-10 15:28:08 -0700
commitee2e34866e3bc0d12ba5cb1d5041524776472d71 (patch)
tree3f71bf8153545396ba38294f8577e77ce0b12439 /src/bun.js/bindings/wtf-bindings.cpp
parente6d97f2581959d77a5b486faefbfdf094abedf9b (diff)
parent6301778a589254e2c3c0d95f768fce303f528b03 (diff)
downloadbun-ee2e34866e3bc0d12ba5cb1d5041524776472d71.tar.gz
bun-ee2e34866e3bc0d12ba5cb1d5041524776472d71.tar.zst
bun-ee2e34866e3bc0d12ba5cb1d5041524776472d71.zip
Merge branch 'main' into dylan/github-api-option
Diffstat (limited to 'src/bun.js/bindings/wtf-bindings.cpp')
-rw-r--r--src/bun.js/bindings/wtf-bindings.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/bun.js/bindings/wtf-bindings.cpp b/src/bun.js/bindings/wtf-bindings.cpp
index d05fb255b..2ec3d7ee8 100644
--- a/src/bun.js/bindings/wtf-bindings.cpp
+++ b/src/bun.js/bindings/wtf-bindings.cpp
@@ -237,4 +237,24 @@ extern "C" size_t WTF__base64URLEncode(const unsigned char* __restrict inputData
destinationDataBuffer[didx++] = '=';
return destinationDataBufferSize;
-} \ No newline at end of file
+}
+
+namespace Bun {
+String base64URLEncodeToString(Vector<uint8_t> data)
+{
+ auto size = data.size();
+ size_t encodedLength = ((size * 4) + 2) / 3;
+ if (!encodedLength)
+ return String();
+
+ LChar* ptr;
+ auto result = String::createUninitialized(encodedLength, ptr);
+ if (UNLIKELY(!ptr)) {
+ RELEASE_ASSERT_NOT_REACHED();
+ return String();
+ }
+ encodedLength = WTF__base64URLEncode(data.data(), data.size(), ptr, encodedLength);
+ RELEASE_ASSERT(result.length() == encodedLength);
+ return result;
+}
+}