diff options
author | 2023-10-10 15:28:08 -0700 | |
---|---|---|
committer | 2023-10-10 15:28:08 -0700 | |
commit | ee2e34866e3bc0d12ba5cb1d5041524776472d71 (patch) | |
tree | 3f71bf8153545396ba38294f8577e77ce0b12439 /src/bun.js/bindings/wtf-bindings.cpp | |
parent | e6d97f2581959d77a5b486faefbfdf094abedf9b (diff) | |
parent | 6301778a589254e2c3c0d95f768fce303f528b03 (diff) | |
download | bun-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.cpp | 22 |
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; +} +} |