Skip to content

toviszsolt/base64-transcode

Repository files navigation

Base64 transcode

Base64 encoding and decoding for both browser and node, with binary file support.

GitHub License npm Run tests codecov GitHub Repo stars Sponsor

base64-transode cover image

Edit base64-transcode

Table of Contents

Why this package?

If you've ever done base64 coding on the frontend side, I think you've noticed that atob and btoa methods are a problem with utf-8 strings. This package solves the problem, plus, on the backend side, you can use the same package and syntax with binary files as well.

Compatibility

This package supports CommonJS, ES Modules, and IIFE (Immediately Invoked Function Expression) formats. You can safely use both require and import statements in any environment. TypeScript also supported.

Installation

To get started with base64-transcode, you can install it using yarn or npm or load script in the browser:

yarn add base64-transcode
npm i base64-transcode
<script src="https://unpkg.com/base64-transcode/dist/browser.js"></script>

Usage

CommonJS

const Base64 = require('base64-transcode');

// Decoding
const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
console.log(decodedData); // "Hello World!"

// Encoding
const encodedData = Base64.encode('Hello World!');
console.log(encodedData); // "SGVsbG8gV29ybGQh"

ES Modules

import Base64 from 'base64-transcode';

// Decoding
const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
console.log(decodedData); // "Hello World!"

// Encoding
const encodedData = Base64.encode('Hello World!');
console.log(encodedData); // "SGVsbG8gV29ybGQh"

IIFE (Immediately Invoked Function Expression)

<script src="https://unpkg.com/base64-transcode/dist/browser.js"></script>
<script>
  // Decoding
  const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
  console.log(decodedData); // "Hello World!"

  // Encoding
  const encodedData = Base64.encode('Hello World!');
  console.log(encodedData); // "SGVsbG8gV29ybGQh"
</script>

API documentation

  • decode(base64: string, toBuffer?: boolean): string | Uint8Array | Buffer

    Decodes the base64 code. If the toBuffer option is true, it returns a Uint8Array in browser and Buffer in node.js, otherwise a string.

  • encode(input: string | Uint8Array | Buffer): string

    Encodes the given string into base64 code.

Guidelines

To learn about the guidelines, please read the Code of Conduct, Contributing and Security Policy documents.

License

MIT License @ 2023 Zsolt Tövis

If you found this project interesting, please consider supporting my open source work by sponsoring me on GitHub / sponsoring me on PayPal / give the repo a star.