diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-08-09 13:24:03 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-08-09 14:27:46 -0700 |
commit | 040a0426796f0249bf0ca61ebbb2aae0b4993e94 (patch) | |
tree | 689c78775ebb83f9b251348399793c0adb524cb8 /js/text_encoding.ts | |
parent | fb87cb38eca7a2d490c3e70738407dc6538e80d3 (diff) |
Add TextEncoder/TextDecoder support.
Fixes #470
This commit increases size:
out/release/gen/bundle/main.js 7.3M -> 7.9M
out/release/gen/bundle/main.js.map 11M -> 12M
out/release/gen/snapshot_deno.bin 34M -> 37M
out/release/deno 49M -> 53M
Note the amount in the JS code added is quite small:
4.0K node_modules/text-encoding/index.js
4.0K node_modules/@types/text-encoding/index.d.ts
4.0K js/text_encoding.ts
Unclear to me what is causing the jump in snapshot size.
Diffstat (limited to 'js/text_encoding.ts')
-rw-r--r-- | js/text_encoding.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/js/text_encoding.ts b/js/text_encoding.ts new file mode 100644 index 000000000..c8e262f5e --- /dev/null +++ b/js/text_encoding.ts @@ -0,0 +1,28 @@ +// Copyright 2018 the Deno authors. All rights reserved. MIT license. + +// @types/text-encoding relies on lib.dom.d.ts for some interfaces. We do not +// want to include lib.dom.d.ts (due to size) into deno's global type scope. +// Therefore this hack: add a few of the missing interfaces in +// @types/text-encoding to the global scope before importing. + +declare global { + type BufferSource = ArrayBufferView | ArrayBuffer; + + interface TextDecodeOptions { + stream?: boolean; + } + + interface TextDecoderOptions { + fatal?: boolean; + ignoreBOM?: boolean; + } + + interface TextDecoder { + readonly encoding: string; + readonly fatal: boolean; + readonly ignoreBOM: boolean; + decode(input?: BufferSource, options?: TextDecodeOptions): string; + } +} + +export { TextEncoder, TextDecoder } from "text-encoding"; |