Name Last Update
..
.npmignore Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
package.json Loading commit data...
polyfill.js Loading commit data...
test.html Loading commit data...
text.js Loading commit data...
text.min.js Loading commit data...

This is a fast polyfill for TextEncoder and TextDecoder, which let you encode and decode JavaScript strings into UTF-8 bytes.

It is fast partially as it does not support any encodings aside UTF-8 (and note that natively, only TextDecoder supports alternative encodings anyway).

Usage

Include the minified inside a script tag or as an ES6 Module for its side-effects. It will create TextEncoder and TextDecoder if the symbols are missing on window.

<script src="node_modules/fast-text-encoding/text.min.js"></script>
<script type="module">
  import './node_modules/fast-text-encoding/text.min.js';
  // confidently do something with TextEncoder \o/
</script>

Note: Always include text.min.js, as it's compiled to ES5 for older environments.

Node

Install via NPM or Yarn (name "fast-text-encoding"), and then import purely for side effects:

// don't need to save this anywhere, just require before use
require('fast-text-encoding');

const buffer = new TextEncoder().encode('Turn me into UTF-8!');
// buffer is now a Uint8Array of [84, 117, 114, 110, ...]

Supports

Built for IE11, Edge and Node environments. Not required for Chrome, Firefox etc, which have native implementations.

Release

Compile code with Closure Compiler.

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name text.min.js
// ==/ClosureCompiler==

// code here