Socket
Socket
Sign inDemoInstall

browserify-unibabel

Package Overview
Dependencies
0
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    browserify-unibabel

Base64, TypedArrays, and UTF-8 / Unicode conversions in Browser (and Node) JavaScript


Version published
Weekly downloads
1K
decreased by-18.28%
Maintainers
1
Install size
36.1 kB
Created
Weekly downloads
 

Readme

Source

Unibabel JS: The Browserify-Ready Unibabel

A simple browserify style version of Unibabel, exported as a module instead of as a global object.

Currently does not support the add-in support for hex or base32, because I didn't need them when I made this, and its extendable format is a little unusual. So, PRs welcome.

Usage

var Unibabel = require('unibabel-js')

// Now you can use Unibabel like the original docs below.

Original Unibabel Docs

Minimalistic Base64, TypedArrays, and UTF-8 / Unicode conversions in Browser (and Node) JavaScript. Optional add-on support for hex and base32.

See https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/

See also

Quick Note to Node.js Users

You SHOULD NOT use this module. You already have Buffer and thirty-two:

var buf = new Buffer('I ½ ♥ 💩', 'utf8');
buf.toString('hex');
buf.toString('base64');
buf.toString('ascii');
buf.toString('utf8');
buf.toString('binary'); // deprecated, do not use

API

// TypedArray <--> UTF8
var uint8Array = Unibabel.strToUtf8Arr(str);
var str = Unibabel.utf8ArrToStr(uint8Array);

// TypedArray <--> Base64
var base64 = Unibabel.arrToBase64(uint8Array)
var uint8Array = Unibabel.base64ToArr(base64)

Normal APIs

index.js

  • utf8ToBuffer(utf8str) => array
  • bufferToUtf8(array) => string
  • utf8ToBase64(utf8str) => base64
  • base64ToUtf8(base64) => string
  • bufferToBase64(array) => base64
  • base64ToBuffer(base64) => array

Hex APIs

unibabel.hex.js

  • hexToBuffer(hexstr) => array
  • bufferToHex(array) => hexstr

Base32 APIs

unibabel.base32.js

  • base32ToBuffer(b32str) => array
  • bufferToBase32(array) => b32str

Helper APIs

  • utf8ToBinaryString(utf8str) => binstr
  • binaryStringToUtf8(binstr) => utf8str
  • bufferToBinaryString(buffer) => binstr
  • binaryStringToBuffer(binstr) => array

Examples

// Base64

var myArray = Unibabel.base64ToArr("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw=="); // "Base 64 \u2014 Mozilla Developer Network"
var myBuffer = Unibabel.base64ToArr("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw==").buffer; // "Base 64 \u2014 Mozilla Developer Network"

console.log(myBuffer.byteLength);

// Crazy Unicode

var sMyInput = "I'm a ☢ ☃ that plays 𝄢 guitar and spea̧͈͖ks Ar̽̾̈́͒͑ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜!";
var aMyUTF8Input = Unibabel.strToUtf8Arr(sMyInput);
var sMyBase64 = Unibabel.arrToBase64(aMyUTF8Input);

alert(sMyBase64);

var aMyUTF8Output = Unibabel.base64ToArr(sMyBase64);
var sMyOutput = Unibabel.utf8ArrToStr(aMyUTF8Output);

alert(sMyOutput);

License

  • index.js and unibabel.hex.js are dual-licensed as Apache 2.0 and MIT.
  • unibabel.base32.js is a modified version of thirty-two and is therefore licensed MIT.

Some parts of the code were taken from MDN, which Mozilla has licensed in the Public Domain, which means that I am at liberty to re-license my copy under the Apache 2 and MIT licenses.

See https://developer.mozilla.org/en-US/docs/MDN/About#Copyrights_and_licenses

ChangeLog

v2.1.0

Added unibabel.base32.js

v2.0.0

The new implementation is binary compatible with node.js, TextEncoder, and other more-common UTF-8 encodings.

It is also based on DOM APIs which result in much less code and are still backwards compatible all the way back to IE6 (not on purpose, just that it happens to work).

See https://coolaj86.com/articles/base64-unicode-utf-8-javascript-and-you/

v1.0.0

This version was based on the work by good folks at the MDN, however, the UTF-8 conversion was not byte-compatible with other UTF-8 conversions (such as node.js and TextEncoder), so don't use it. See https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Keywords

FAQs

Last updated on 20 Dec 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc