Skip to content

hugoalh/base64-es

Base64 (ES)

⚖️ MIT

GitHub: hugoalh/base64-es JSR: @hugoalh/base64 NPM: @hugoalh/base64

An ECMAScript module for Base64 encode and decode.

🌟 Features

🎯 Targets

Runtime \ Source GitHub Raw JSR NPM
Bun >= v1.1.0 ✔️ ✔️
Deno >= v2.1.0 ✔️ ✔️ ✔️
NodeJS >= v20.9.0 ✔️ ✔️

🛡️ Runtime Permissions

This does not request any runtime permission.

#️⃣ Sources

  • GitHub Raw
    https://raw.githubusercontent.com/hugoalh/base64-es/{Tag}/mod.ts
    
  • JSR
    jsr:@hugoalh/base64[@{Tag}]
    
  • NPM
    npm:@hugoalh/base64[@{Tag}]
    

Note

  • It is recommended to include tag for immutability.
  • These are not part of the public APIs hence should not be used:
    • Benchmark/Test file (e.g.: example.bench.ts, example.test.ts).
    • Entrypoint name or path include any underscore prefix (e.g.: _example.ts, foo/_example.ts).
    • Identifier/Namespace/Symbol include any underscore prefix (e.g.: _example, Foo._example).

⤵️ Entrypoints

Name Path Description
. ./mod.ts Default.

🧩 APIs

  • class Base64Decoder {
      constructor(options?: Base64DecodeOptions);
      get variant(): Base64Variant;
      decodeToBytes(item: string | Uint8Array): Uint8Array;
      decodeToText(item: string | Uint8Array): string;
    }
  • class Base64Encoder {
      constructor(options?: Base64EncodeOptions);
      get padding(): boolean;
      get variant(): Base64Variant;
      encodeToBytes(item: string | Uint8Array): Uint8Array;
      encodeToText(item: string | Uint8Array): string;
    }
  • class Base64DecoderStream extends TransformStream<Uint8Array, Uint8Array> {
      constructor(options?: Base64DecodeOptions);
    }
  • class Base64EncoderStream extends TransformStream<Uint8Array, Uint8Array> {
      constructor(options?: Base64EncodeOptions);
    }
  • type Base64Variant =
      | "rfc1421"
      | "rfc2045"
      | "rfc2152"
      | "rfc3501"
      | "rfc4648-4"
      | "rfc4648-5"
      | "rfc9580"
      | "standard"
      | "url";
  • interface Base64BasicOptions {
      variant?: Base64Variant;
    }
  • interface Base64DecodeOptions extends Base64BasicOptions {
    }
  • interface Base64EncodeOptions extends Base64BasicOptions {
      padding?: boolean | null;
    }

Note

✍️ Examples

  • new Base64Encoder().encodeToText("Many hands make light work.");
    //=> "TWFueSBoYW5kcyBtYWtlIGxpZ2h0IHdvcmsu"