UNPKG

single-byte

Version:

Transforms for single-byte encodings

142 lines (95 loc) 11.2 kB
# single-byte Transforms for [single-byte encodings](https://encoding.spec.whatwg.org/#legacy-single-byte-encodings). Implementation has no dependencies and is based on precomputed indexes for various encodings based on specification provided by the [Web Hypertext Application Technology Working Group (WHATWG)](https://en.wikipedia.org/wiki/WHATWG). ## Installation `npm install --save single-byte` ## Usage example ### Any environment ```javascript const { encode, decode } = require('single-byte'); const buffer = encode('iso-8859-2', 'zażółć gęślą jaźń'); console.log(decode('iso-8859-2', buffer)); ``` ### Environment supporting Node.js stream API ```javascript const fs = require('fs'); const { Encoder } = require('single-byte/stream'); fs.createReadStream('file-utf8.txt') .pipe(new Encoder('iso-8859-2')) .pipe(fs.createWriteStream('file-iso-8859-2.txt')); ``` # API <!-- Generated by documentation.js. Update this documentation by updating the source code. --> ### Table of Contents - [UTILITIES](#utilities) - [encode](#encode) - [decode](#decode) - [STREAMS](#streams) - [Encoder](#encoder) - [setSingleByteEncoding](#setsinglebyteencoding) - [Decoder](#decoder) - [setSingleByteEncoding](#setsinglebyteencoding-1) - [SUPPORTED ENCODINGS](#supported-encodings) ## UTILITIES Basic functions. ## encode **Parameters** - `label` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** - `text` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returns **[Buffer](https://nodejs.org/api/buffer.html)** ## decode **Parameters** - `label` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** - `buffer` **[Buffer](https://nodejs.org/api/buffer.html)** Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** ## STREAMS Note: `stream` must be present in the global namespace. ## Encoder **Extends stream.Transform** **Parameters** - `encoding` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** - `options` **any** ### setSingleByteEncoding **Parameters** - `encoding` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** ## Decoder **Extends stream.Transform** **Parameters** - `encoding` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** - `options` **any** ### setSingleByteEncoding **Parameters** - `encoding` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** ## SUPPORTED ENCODINGS | Encoding | Labels | | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [IBM866](https://encoding.spec.whatwg.org/index-ibm866.txt) | 866, cp866, csibm866, ibm866 | | [ISO-8859-2](https://encoding.spec.whatwg.org/index-iso-8859-2.txt) | csisolatin2, iso-8859-2, iso-ir-101, iso8859-2,<br>iso88592, iso_8859-2, iso_8859-2:1987, l2,<br>latin2 | | [ISO-8859-3](https://encoding.spec.whatwg.org/index-iso-8859-3.txt) | csisolatin3, iso-8859-3, iso-ir-109, iso8859-3,<br>iso88593, iso_8859-3, iso_8859-3:1988, l3,<br>latin3 | | [ISO-8859-4](https://encoding.spec.whatwg.org/index-iso-8859-4.txt) | csisolatin4, iso-8859-4, iso-ir-110, iso8859-4,<br>iso88594, iso_8859-4, iso_8859-4:1988, l4,<br>latin4 | | [ISO-8859-5](https://encoding.spec.whatwg.org/index-iso-8859-5.txt) | csisolatincyrillic, cyrillic, iso-8859-5, iso-ir-144,<br>iso8859-5, iso88595, iso_8859-5, iso_8859-5:1988 | | [ISO-8859-6](https://encoding.spec.whatwg.org/index-iso-8859-6.txt) | arabic, asmo-708, csiso88596e, csiso88596i,<br>csisolatinarabic, ecma-114, iso-8859-6, iso-8859-6-e,<br>iso-8859-6-i, iso-ir-127, iso8859-6, iso88596,<br>iso_8859-6, iso_8859-6:1987 | | [ISO-8859-7](https://encoding.spec.whatwg.org/index-iso-8859-7.txt) | csisolatingreek, ecma-118, elot_928, greek,<br>greek8, iso-8859-7, iso-ir-126, iso8859-7,<br>iso88597, iso_8859-7, iso_8859-7:1987, sun_eu_greek | | [ISO-8859-8](https://encoding.spec.whatwg.org/index-iso-8859-8.txt) | csiso88598e, csisolatinhebrew, hebrew, iso-8859-8,<br>iso-8859-8-e, iso-ir-138, iso8859-8, iso88598,<br>iso_8859-8, iso_8859-8:1988, visual | | [ISO-8859-8-I](https://encoding.spec.whatwg.org/index-iso-8859-8-i.txt) | csiso88598i, iso-8859-8-i, logical | | [ISO-8859-10](https://encoding.spec.whatwg.org/index-iso-8859-10.txt) | csisolatin6, iso-8859-10, iso-ir-157, iso8859-10,<br>iso885910, l6, latin6 | | [ISO-8859-13](https://encoding.spec.whatwg.org/index-iso-8859-13.txt) | iso-8859-13, iso8859-13, iso885913 | | [ISO-8859-14](https://encoding.spec.whatwg.org/index-iso-8859-14.txt) | iso-8859-14, iso8859-14, iso885914 | | [ISO-8859-15](https://encoding.spec.whatwg.org/index-iso-8859-15.txt) | csisolatin9, iso-8859-15, iso8859-15, iso885915,<br>iso_8859-15, l9 | | [ISO-8859-16](https://encoding.spec.whatwg.org/index-iso-8859-16.txt) | iso-8859-16 | | [KOI8-R](https://encoding.spec.whatwg.org/index-koi8-r.txt) | cskoi8r, koi, koi8, koi8-r,<br>koi8_r | | [KOI8-U](https://encoding.spec.whatwg.org/index-koi8-u.txt) | koi8-ru, koi8-u | | [macintosh](https://encoding.spec.whatwg.org/index-macintosh.txt) | csmacintosh, mac, macintosh, x-mac-roman | | [windows-874](https://encoding.spec.whatwg.org/index-windows-874.txt) | dos-874, iso-8859-11, iso8859-11, iso885911,<br>tis-620, windows-874 | | [windows-1250](https://encoding.spec.whatwg.org/index-windows-1250.txt) | cp1250, windows-1250, x-cp1250 | | [windows-1251](https://encoding.spec.whatwg.org/index-windows-1251.txt) | cp1251, windows-1251, x-cp1251 | | [windows-1252](https://encoding.spec.whatwg.org/index-windows-1252.txt) | ansi_x3.4-1968, ascii, cp1252, cp819,<br>csisolatin1, ibm819, iso-8859-1, iso-ir-100,<br>iso8859-1, iso88591, iso_8859-1, iso_8859-1:1987,<br>l1, latin1, us-ascii, windows-1252,<br>x-cp1252 | | [windows-1253](https://encoding.spec.whatwg.org/index-windows-1253.txt) | cp1253, windows-1253, x-cp1253 | | [windows-1254](https://encoding.spec.whatwg.org/index-windows-1254.txt) | cp1254, csisolatin5, iso-8859-9, iso-ir-148,<br>iso8859-9, iso88599, iso_8859-9, iso_8859-9:1989,<br>l5, latin5, windows-1254, x-cp1254 | | [windows-1255](https://encoding.spec.whatwg.org/index-windows-1255.txt) | cp1255, windows-1255, x-cp1255 | | [windows-1256](https://encoding.spec.whatwg.org/index-windows-1256.txt) | cp1256, windows-1256, x-cp1256 | | [windows-1257](https://encoding.spec.whatwg.org/index-windows-1257.txt) | cp1257, windows-1257, x-cp1257 | | [windows-1258](https://encoding.spec.whatwg.org/index-windows-1258.txt) | cp1258, windows-1258, x-cp1258 | | [x-mac-cyrillic](https://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt) | x-mac-cyrillic, x-mac-ukrainian | | `mazovia` | cp790, mazovia |