Skip to content

Commit

Permalink
fix(ext/node): use ERR_NOT_IMPLEMENTED for notImplemented (#26853)
Browse files Browse the repository at this point in the history
  • Loading branch information
littledivy authored Nov 13, 2024
1 parent 9331e2c commit 7d9ba09
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
4 changes: 2 additions & 2 deletions ext/node/polyfills/_utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const {
import { TextDecoder, TextEncoder } from "ext:deno_web/08_text_encoding.js";
import { errorMap } from "ext:deno_node/internal_binding/uv.ts";
import { codes } from "ext:deno_node/internal/error_codes.ts";
import { ERR_NOT_IMPLEMENTED } from "ext:deno_node/internal/errors.ts";

export type BinaryEncodings = "binary";

Expand All @@ -34,8 +35,7 @@ export type TextEncodings =
export type Encodings = BinaryEncodings | TextEncodings;

export function notImplemented(msg: string): never {
const message = msg ? `Not implemented: ${msg}` : "Not implemented";
throw new Error(message);
throw new ERR_NOT_IMPLEMENTED(msg);
}

export function warnNotImplemented(msg?: string) {
Expand Down
10 changes: 10 additions & 0 deletions ext/node/polyfills/internal/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2390,6 +2390,15 @@ export class ERR_INVALID_RETURN_VALUE extends NodeTypeError {
}
}

export class ERR_NOT_IMPLEMENTED extends NodeError {
constructor(message?: string) {
super(
"ERR_NOT_IMPLEMENTED",
message ? `Not implemented: ${message}` : "Not implemented",
);
}
}

export class ERR_INVALID_URL extends NodeTypeError {
input: string;
constructor(input: string) {
Expand Down Expand Up @@ -2862,6 +2871,7 @@ export default {
ERR_INVALID_SYNC_FORK_INPUT,
ERR_INVALID_THIS,
ERR_INVALID_TUPLE,
ERR_NOT_IMPLEMENTED,
ERR_INVALID_URI,
ERR_INVALID_URL,
ERR_INVALID_URL_SCHEME,
Expand Down
15 changes: 14 additions & 1 deletion tests/unit_node/perf_hooks_test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import * as perfHooks from "node:perf_hooks";
import { performance, PerformanceObserver } from "node:perf_hooks";
import {
monitorEventLoopDelay,
performance,
PerformanceObserver,
} from "node:perf_hooks";
import { assertEquals, assertThrows } from "@std/assert";

Deno.test({
Expand Down Expand Up @@ -68,3 +72,12 @@ Deno.test("[perf_hooks]: eventLoopUtilization", () => {
assertEquals(typeof obj.active, "number");
assertEquals(typeof obj.utilization, "number");
});

Deno.test("[perf_hooks]: monitorEventLoopDelay", () => {
const e = assertThrows(() => {
monitorEventLoopDelay({ resolution: 1 });
});

// deno-lint-ignore no-explicit-any
assertEquals((e as any).code, "ERR_NOT_IMPLEMENTED");
});

0 comments on commit 7d9ba09

Please sign in to comment.