summaryrefslogtreecommitdiff
path: root/cli/tsc/01_errors.js
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-07-22 12:03:46 -0400
committerGitHub <noreply@github.com>2020-07-22 12:03:46 -0400
commitbf9930066d3a5d26baad22fb1766de26be49c2ae (patch)
treee6176c72fdf2d89bb3e45855aba03d8a535b599c /cli/tsc/01_errors.js
parent9d13b539b5dfc96e2b5a0e89fc8e0312d6500fff (diff)
Reduce size of TypeScript Compiler snapshot (#6809)
This PR is intentionally ugly. It duplicates all of the code in cli/js2/ into cli/tsc/ ... because it's very important that we all understand that this code is unnecessarily duplicated in our binary. I hope this ugliness provides the motivation to clean it up. The typescript git submodule is removed, because it's a very large repo and contains all sorts of stuff we don't need. Instead the necessary files are copied directly into the deno repo. Hence +200k lines. COMPILER_SNAPSHOT.bin size ``` master 3448139 this branch 3320972 ``` Fixes #6812
Diffstat (limited to 'cli/tsc/01_errors.js')
-rw-r--r--cli/tsc/01_errors.js250
1 files changed, 250 insertions, 0 deletions
diff --git a/cli/tsc/01_errors.js b/cli/tsc/01_errors.js
new file mode 100644
index 000000000..8390dd803
--- /dev/null
+++ b/cli/tsc/01_errors.js
@@ -0,0 +1,250 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+((window) => {
+ // Warning! The values in this enum are duplicated in cli/op_error.rs
+ // Update carefully!
+ const ErrorKind = {
+ 1: "NotFound",
+ 2: "PermissionDenied",
+ 3: "ConnectionRefused",
+ 4: "ConnectionReset",
+ 5: "ConnectionAborted",
+ 6: "NotConnected",
+ 7: "AddrInUse",
+ 8: "AddrNotAvailable",
+ 9: "BrokenPipe",
+ 10: "AlreadyExists",
+ 13: "InvalidData",
+ 14: "TimedOut",
+ 15: "Interrupted",
+ 16: "WriteZero",
+ 17: "UnexpectedEof",
+ 18: "BadResource",
+ 19: "Http",
+ 20: "URIError",
+ 21: "TypeError",
+ 22: "Other",
+ 23: "Busy",
+
+ NotFound: 1,
+ PermissionDenied: 2,
+ ConnectionRefused: 3,
+ ConnectionReset: 4,
+ ConnectionAborted: 5,
+ NotConnected: 6,
+ AddrInUse: 7,
+ AddrNotAvailable: 8,
+ BrokenPipe: 9,
+ AlreadyExists: 10,
+ InvalidData: 13,
+ TimedOut: 14,
+ Interrupted: 15,
+ WriteZero: 16,
+ UnexpectedEof: 17,
+ BadResource: 18,
+ Http: 19,
+ URIError: 20,
+ TypeError: 21,
+ Other: 22,
+ Busy: 23,
+ };
+
+ function getErrorClass(kind) {
+ switch (kind) {
+ case ErrorKind.TypeError:
+ return TypeError;
+ case ErrorKind.Other:
+ return Error;
+ case ErrorKind.URIError:
+ return URIError;
+ case ErrorKind.NotFound:
+ return NotFound;
+ case ErrorKind.PermissionDenied:
+ return PermissionDenied;
+ case ErrorKind.ConnectionRefused:
+ return ConnectionRefused;
+ case ErrorKind.ConnectionReset:
+ return ConnectionReset;
+ case ErrorKind.ConnectionAborted:
+ return ConnectionAborted;
+ case ErrorKind.NotConnected:
+ return NotConnected;
+ case ErrorKind.AddrInUse:
+ return AddrInUse;
+ case ErrorKind.AddrNotAvailable:
+ return AddrNotAvailable;
+ case ErrorKind.BrokenPipe:
+ return BrokenPipe;
+ case ErrorKind.AlreadyExists:
+ return AlreadyExists;
+ case ErrorKind.InvalidData:
+ return InvalidData;
+ case ErrorKind.TimedOut:
+ return TimedOut;
+ case ErrorKind.Interrupted:
+ return Interrupted;
+ case ErrorKind.WriteZero:
+ return WriteZero;
+ case ErrorKind.UnexpectedEof:
+ return UnexpectedEof;
+ case ErrorKind.BadResource:
+ return BadResource;
+ case ErrorKind.Http:
+ return Http;
+ case ErrorKind.Busy:
+ return Busy;
+ }
+ }
+
+ class NotFound extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "NotFound";
+ }
+ }
+
+ class PermissionDenied extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "PermissionDenied";
+ }
+ }
+
+ class ConnectionRefused extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "ConnectionRefused";
+ }
+ }
+
+ class ConnectionReset extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "ConnectionReset";
+ }
+ }
+
+ class ConnectionAborted extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "ConnectionAborted";
+ }
+ }
+
+ class NotConnected extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "NotConnected";
+ }
+ }
+
+ class AddrInUse extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "AddrInUse";
+ }
+ }
+
+ class AddrNotAvailable extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "AddrNotAvailable";
+ }
+ }
+
+ class BrokenPipe extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "BrokenPipe";
+ }
+ }
+
+ class AlreadyExists extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "AlreadyExists";
+ }
+ }
+
+ class InvalidData extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "InvalidData";
+ }
+ }
+
+ class TimedOut extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "TimedOut";
+ }
+ }
+
+ class Interrupted extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "Interrupted";
+ }
+ }
+
+ class WriteZero extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "WriteZero";
+ }
+ }
+
+ class UnexpectedEof extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "UnexpectedEof";
+ }
+ }
+
+ class BadResource extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "BadResource";
+ }
+ }
+
+ class Http extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "Http";
+ }
+ }
+
+ class Busy extends Error {
+ constructor(msg) {
+ super(msg);
+ this.name = "Busy";
+ }
+ }
+
+ const errors = {
+ NotFound,
+ PermissionDenied,
+ ConnectionRefused,
+ ConnectionReset,
+ ConnectionAborted,
+ NotConnected,
+ AddrInUse,
+ AddrNotAvailable,
+ BrokenPipe,
+ AlreadyExists,
+ InvalidData,
+ TimedOut,
+ Interrupted,
+ WriteZero,
+ UnexpectedEof,
+ BadResource,
+ Http,
+ Busy,
+ };
+
+ window.__bootstrap.errors = {
+ errors,
+ getErrorClass,
+ };
+})(this);