JSPM

@borewit/text-codec

0.2.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2848496
  • Score
    100M100P100Q226431F
  • License MIT

Text Decoder

Package Exports

  • @borewit/text-codec

Readme

CI npm version npm downloads bundlejs License: MIT

@borewit/text-codec

A lightweight alternative implementation of TextEncoder / TextDecoder supporting common encodings missing in some JavaScript engines and Node.js builds.
Works in environments like Hermes (React Native) or Small-ICU Node.js where only UTF-8 and UTF-16LE are available.

Encoding Hermes — Encode Hermes — Decode Small-ICU Node.js — Encode Small-ICU Node.js — Decode
utf-8 / utf8 Native Native Native
utf-16le Native Native
ascii
latin1 / iso-8859-1 Native (sometimes)
windows-1252

Legend: - Native — Supported natively by the JavaScript engine. - — Support added by this module. - Native (sometimes) — Available in some builds (e.g., certain Small-ICU Node.js builds).

When your project needs to handle encodings like latin1 / iso-8859-1 or windows-1252 in these environments, native TextDecoder / TextEncoder may throw an error or return incorrect results.

✨ Features

  • Decoding and encoding
  • Lightweight
  • Typed

Supported encodings:

  • utf-8 / utf8
  • utf-16le
  • ascii
  • latin1 / iso-8859-1
  • windows-1252

📦 Installation

npm install @borewit/text-codec

📚 API Documentation

textDecode(bytes, encoding): string

Decodes binary data into a JavaScript string using the specified encoding.

Parameters

  • bytes (Uint8Array) — The binary data to decode.
  • encoding (SupportedEncoding, optional) — Encoding type. Defaults to "utf-8".

Returns

  • string — The decoded text.

Example

import { textDecode } from "@borewit/text-encode";

const bytes = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f]);
const text = textDecode(bytes, "ascii");
console.log(text); // "Hello"

Encodes a JavaScript string into binary form using the specified encoding.

textEncode(input, encoding): Uint8Array

Parameters

  • input (string) — The string to encode.
  • encoding (SupportedEncoding, optional) — Encoding type. Defaults to "utf-8".

Returns

Uint8Array — The encoded binary data.

Example:

import { textEncode } from "@borewit/text-encode";

const bytes = textEncode("Hello", "utf-16le");
console.log(bytes); // Uint8Array([...])

📜 Licence

This project is licensed under the MIT License. Feel free to use, modify, and distribute as needed.