Skip to content

jacobwgillespie/b64u

Repository files navigation

⚡ b64u

Build Status npm npm license Powered by TypeScript

A tiny, lightweight module for encoding and decoding Base64 URLs (RFC 4648). Supports TypeScript, but also works without it.

NOTE: if you were previously using the unmaintained base64url package, this library is API-identical.

Requirements

  • NodeJS 8+

Installation

Install via yarn:

yarn add b64u

Or via NPM:

npm install --save b64u

Example

import b64u from 'b64u'

b64u('A tiny, lightweight module')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.encode('A tiny, lightweight module')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.decode('Zm9yIGVuY29kaW5nIGFuZCBkZWNvZGluZyBCYXNlNjQgVVJMcw')
// 'for encoding and decoding Base64 URLs'

b64u.toBase64('QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU='

b64u.fromBase64('QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU=')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.toBuffer(b64u('tiny'))
// <Buffer 74 69 6e 79>

Usage

Either require or import the library:

const b64u = require('b64u')
import b64u from 'b64u'

API

b64u(input: string | Buffer, encoding = 'utf8'): string

b64u.encode(input: string | Buffer, encoding = 'utf8'): string

Encodes an input string or buffer into a Base64 URL. Optionally specify an encoding.

Example

b64u('A tiny, lightweight module')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.encode('A tiny, lightweight module')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.decode(input: string | Buffer, encoding = 'utf8'): string

Decodes an input Base64 URL into a raw string. Optionally specify an encoding.

Example

b64u.decode('Zm9yIGVuY29kaW5nIGFuZCBkZWNvZGluZyBCYXNlNjQgVVJMcw')
// 'for encoding and decoding Base64 URLs'

b64u.toBase64(input: string): string

Converts an input Base64 URL into a plain Base64 string.

Example

b64u.toBase64('QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU='

b64u.fromBase64(input: string): string

Converts an input plain Base64 string into a Base64 URL.

Example

b64u.fromBase64('QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU=')
// 'QSB0aW55LCBsaWdodHdlaWdodCBtb2R1bGU'

b64u.toBuffer(input: string): Buffer

Converts an input Base64 URL into a Buffer with the raw bytes.

Example

b64u.toBuffer(b64u('tiny'))
// <Buffer 74 69 6e 79>

Background

This library began as an API-identical fork of the base64url package, as that package has not been updated since 2016 and currently suffers from a critical issue that prevents its use with TypeScript and any version of NodeJS other than Node 6.0.0.

Why the name, b64u? It's a tiny, lightweight name for a tiny, lightweight module!

License

The MIT license. See LICENSE.

Copyright (c) 2018 Jacob Gillespie

Copyright (c) 2013–2016 Brian J. Brennan

About

⚡Tiny, lightweight module for encoding and decoding Base64 URLs

Resources

License

Stars

Watchers

Forks

Packages

No packages published