Skip to content

Commit

Permalink
Add text-encoding library
Browse files Browse the repository at this point in the history
  • Loading branch information
pine committed Aug 1, 2014
1 parent da53af6 commit 8e33cf7
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 0 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,7 @@ All definitions files include a header with the author and editors, so at some p
* [Tags Manager](http://welldonethings.com/tags/manager) (by [Vincent Bortone](https://github.com/vbortone))
* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com))
* [text-buffer](https://github.com/atom/text-buffer) (by [vvakame](https://github.com/vvakame))
* [text-encoding](https://github.com/inexorabletash/text-encoding) (by [MIZUNE Pine](https://github.com/pine613))
* [three.js](http://mrdoob.github.com/three.js/) (by [Kon](http://phyzkit.net/))
* [TimelineJS](https://github.com/NUKnightLab/TimelineJS) (by [Roland Zwaga](https://github.com/rolandzwaga))
* [timezonecomplete](https://github.com/SpiritIT/timezonecomplete) (by [Rogier Schouten](https://github.com/rogierschouten))
Expand Down
60 changes: 60 additions & 0 deletions text-encoding/text-encoding-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/// <reference path="text-encoding.d.ts" />

function test_encoder() {
var text = "plain text";
var uint8array: Uint8Array;

// constructor
uint8array = new TextEncoder().encode(text);
uint8array = new TextEncoder('utf-8').encode(text);
uint8array = new TextEncoder('windows-1252', { NONSTANDARD_allowLegacyEncoding: true }).encode(text);

uint8array = TextEncoder().encode(text);
uint8array = TextEncoder('utf-8').encode(text);
uint8array = TextEncoder('windows-1252', { NONSTANDARD_allowLegacyEncoding: true }).encode(text);

// attributes
var encoder = new TextEncoder();
encoder.encoding = 'utf-8';
var encoding: string = encoder.encoding;

// methods
encoder.encode();
encoder.encode(text);
encoder.encode(text, { stream: true });
}

function test_decoder() {
var text = "plain text";
var uint8array: Uint8Array = TextEncoder().encode(text);

// constructor
text = new TextDecoder().decode(uint8array);
text = new TextDecoder('utf-8').decode(uint8array);
text = new TextDecoder('windows-1252', {}).decode(uint8array);
text = new TextDecoder('windows-1252', { fatal: true }).decode(uint8array);
text = new TextDecoder('windows-1252', { ignoreBOM: true }).decode(uint8array);

text = TextDecoder().decode(uint8array);
text = TextDecoder('utf-8').decode(uint8array);
text = TextDecoder('windows-1252', {}).decode(uint8array);
text = TextDecoder('windows-1252', { fatal: true }).decode(uint8array);
text = TextDecoder('windows-1252', { ignoreBOM: true }).decode(uint8array);

// attributes
var decoder = new TextDecoder();

decoder.encoding = 'utf-8';
var encoding: string = decoder.encoding;

decoder.fatal = true;
var fatal: boolean = decoder.fatal;

decoder.ignoreBOM = true;
var ignoreBOM: boolean = decoder.ignoreBOM;

// methods
decoder.decode();
decoder.decode(uint8array);
decoder.decode(uint8array, { stream: true });
}
45 changes: 45 additions & 0 deletions text-encoding/text-encoding.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Type definitions for text-encoding
// Project: https://github.com/inexorabletash/text-encoding
// Definitions by: MIZUNE Pine <https://github.com/pine613/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

declare module TextEncodingStatic {
interface TextDecoderOptions {
fatal?: boolean;
ignoreBOM?: boolean;
}

interface TextDecodeOptions {
stream?: boolean;
}

interface TextEncoderOptions {
NONSTANDARD_allowLegacyEncoding?: boolean;
}

interface TextDecoder {
encoding: string;
fatal: boolean;
ignoreBOM: boolean;
decode(input?: ArrayBufferView, options?: TextDecodeOptions): string;
}

interface TextEncoder {
encoding: string;
encode(input?: string, options?: TextEncodeOptions): Uint8Array;
}

interface TextEncodeOptions {
stream?: boolean;
}
}

declare var TextDecoder: {
(label?: string, options?: TextEncodingStatic.TextDecoderOptions): TextEncodingStatic.TextDecoder;
new (label?: string, options?: TextEncodingStatic.TextDecoderOptions): TextEncodingStatic.TextDecoder;
};

declare var TextEncoder: {
(utfLabel?: string, options?: TextEncodingStatic.TextEncoderOptions): TextEncodingStatic.TextEncoder;
new (utfLabel?: string, options?: TextEncodingStatic.TextEncoderOptions): TextEncodingStatic.TextEncoder;
};

0 comments on commit 8e33cf7

Please sign in to comment.