mirror of
https://github.com/denoland/deno.git
synced 2025-01-11 08:33:43 -05:00
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.
This commit is contained in:
parent
fb87cb38ec
commit
040a042679
6 changed files with 40 additions and 11 deletions
1
BUILD.gn
1
BUILD.gn
|
@ -287,6 +287,7 @@ run_node("bundle") {
|
|||
"js/os.ts",
|
||||
"js/plugins.d.ts",
|
||||
"js/runtime.ts",
|
||||
"js/text_encoding.ts",
|
||||
"js/timers.ts",
|
||||
"js/types.d.ts",
|
||||
"js/util.ts",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import { Console } from "./console";
|
||||
import { RawSourceMap } from "./types";
|
||||
import * as timers from "./timers";
|
||||
import { TextEncoder, TextDecoder } from "./text_encoding";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
|
@ -16,6 +17,11 @@ declare global {
|
|||
|
||||
const console: Console;
|
||||
const window: Window;
|
||||
|
||||
// tslint:disable:variable-name
|
||||
let TextEncoder: TextEncoder;
|
||||
let TextDecoder: TextDecoder;
|
||||
// tslint:enable:variable-name
|
||||
}
|
||||
|
||||
// If you use the eval function indirectly, by invoking it via a reference
|
||||
|
@ -49,10 +55,8 @@ window.clearTimeout = timers.clearTimer;
|
|||
window.clearInterval = timers.clearTimer;
|
||||
|
||||
window.console = new Console(libdeno.print);
|
||||
window.TextEncoder = TextEncoder;
|
||||
window.TextDecoder = TextDecoder;
|
||||
|
||||
// import { fetch } from "./fetch";
|
||||
// window["fetch"] = fetch;
|
||||
|
||||
// import { TextEncoder, TextDecoder } from "text-encoding";
|
||||
// window["TextEncoder"] = TextEncoder;
|
||||
// window["TextDecoder"] = TextDecoder;
|
||||
|
|
6
js/text-encoding.d.ts
vendored
6
js/text-encoding.d.ts
vendored
|
@ -1,6 +0,0 @@
|
|||
// Remove and depend on @types/text-encoding once this PR is merged
|
||||
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26141
|
||||
declare module "text-encoding" {
|
||||
export const TextEncoder: TextEncoder;
|
||||
export const TextDecoder: TextDecoder;
|
||||
}
|
28
js/text_encoding.ts
Normal file
28
js/text_encoding.ts
Normal file
|
@ -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";
|
|
@ -3,6 +3,7 @@
|
|||
"@types/base64-js": "^1.2.5",
|
||||
"@types/flatbuffers": "^1.9.0",
|
||||
"@types/source-map-support": "^0.4.1",
|
||||
"@types/text-encoding": "0.0.33",
|
||||
"base64-js": "^1.3.0",
|
||||
"flatbuffers": "^1.9.0",
|
||||
"prettier": "^1.14.0",
|
||||
|
@ -16,6 +17,7 @@
|
|||
"rollup-plugin-typescript2": "^0.16.1",
|
||||
"rollup-pluginutils": "^2.3.0",
|
||||
"source-map-support": "^0.5.6",
|
||||
"text-encoding": "0.6.4",
|
||||
"tslint": "^5.10.0",
|
||||
"tslint-eslint-rules": "^5.3.1",
|
||||
"tslint-no-circular-imports": "^0.5.0",
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 785db4ec088750adde4f63211120ecb828fca148
|
||||
Subproject commit 221e8d5662be4d7524e31bb7b647623f46ad53ce
|
Loading…
Reference in a new issue