MCPcopy
hub / github.com/freshframework/fresh / b64encode

Function b64encode

packages/fresh/src/jsonify/stringify.ts:217–242  ·  view source on GitHub ↗
(buffer: ArrayBufferLike)

Source from the content-addressed store, hash-verified

215 * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation
216 */
217export function b64encode(buffer: ArrayBufferLike): string {
218 const uint8 = new Uint8Array(buffer);
219 let result = "",
220 i;
221 const l = uint8.length;
222 for (i = 2; i < l; i += 3) {
223 result += base64abc[uint8[i - 2] >> 2];
224 result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
225 result += base64abc[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)];
226 result += base64abc[uint8[i] & 0x3f];
227 }
228 if (i === l + 1) {
229 // 1 octet yet to write
230 result += base64abc[uint8[i - 2] >> 2];
231 result += base64abc[(uint8[i - 2] & 0x03) << 4];
232 result += "==";
233 }
234 if (i === l) {
235 // 2 octets yet to write
236 result += base64abc[uint8[i - 2] >> 2];
237 result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
238 result += base64abc[(uint8[i - 1] & 0x0f) << 2];
239 result += "=";
240 }
241 return result;
242}

Callers 1

serializeInnerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected