summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal_binding/pipe_wrap.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/internal_binding/pipe_wrap.ts')
-rw-r--r--ext/node/polyfills/internal_binding/pipe_wrap.ts22
1 files changed, 4 insertions, 18 deletions
diff --git a/ext/node/polyfills/internal_binding/pipe_wrap.ts b/ext/node/polyfills/internal_binding/pipe_wrap.ts
index f5c3c5439..3e366b3c7 100644
--- a/ext/node/polyfills/internal_binding/pipe_wrap.ts
+++ b/ext/node/polyfills/internal_binding/pipe_wrap.ts
@@ -160,16 +160,8 @@ export class Pipe extends ConnectionWrap {
}
},
(e) => {
- // TODO(cmorten): correct mapping of connection error to status code.
- let code: number;
-
- if (e instanceof Deno.errors.NotFound) {
- code = codeMap.get("ENOENT")!;
- } else if (e instanceof Deno.errors.PermissionDenied) {
- code = codeMap.get("EACCES")!;
- } else {
- code = codeMap.get("ECONNREFUSED")!;
- }
+ const code = codeMap.get(e.code ?? "UNKNOWN") ??
+ codeMap.get("UNKNOWN")!;
try {
this.afterConnect(req, code);
@@ -207,16 +199,10 @@ export class Pipe extends ConnectionWrap {
try {
listener = Deno.listen(listenOptions);
} catch (e) {
- if (e instanceof Deno.errors.AddrInUse) {
- return codeMap.get("EADDRINUSE")!;
- } else if (e instanceof Deno.errors.AddrNotAvailable) {
- return codeMap.get("EADDRNOTAVAIL")!;
- } else if (e instanceof Deno.errors.PermissionDenied) {
+ if (e instanceof Deno.errors.NotCapable) {
throw e;
}
-
- // TODO(cmorten): map errors to appropriate error codes.
- return codeMap.get("UNKNOWN")!;
+ return codeMap.get(e.code ?? "UNKNOWN") ?? codeMap.get("UNKNOWN")!;
}
const address = listener.addr as Deno.UnixAddr;