mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
* Support Node 24 system error utilities * Wait for writable drain in the stream fixture
30 lines
1.6 KiB
JavaScript
30 lines
1.6 KiB
JavaScript
import * as util from "node:util";
|
|
import { getSystemErrorMap as all } from "util";
|
|
|
|
export function reportSystemErrors() {
|
|
const { getSystemErrorName: name, getSystemErrorMessage: message } = util;
|
|
const map = all();
|
|
console.log("map", map instanceof Map, map.size);
|
|
for (const [code, pair] of map) console.log(code, ...pair, name(code), message(code));
|
|
const fresh = all();
|
|
console.log("identity", map.get(-3001) === map.get(-3001), map.get(-3001) === fresh.get(-3001));
|
|
map.get(-3001)[0] = "changed";
|
|
map.get(-3001).push("extended");
|
|
map.set(-123456, ["CUSTOM", "custom message"]);
|
|
console.log("mutation", JSON.stringify(map.get(-3001)), fresh.get(-3001)[0], name(-3001), fresh.has(-123456));
|
|
map.delete(-3001);
|
|
console.log("delete", map.has(-3001), fresh.has(-3001));
|
|
map.clear();
|
|
console.log("clear", map.size, fresh.size);
|
|
|
|
for (const code of [-123456, -2147483648, -2147483649, -4294967298, -9007199254740991]) console.log("unknown", code, name(code), message(code));
|
|
for (const value of [undefined, null, "-2", true, 2n, Symbol("x"), {}, [], new Number(-2), new Date(0), function sample() {}, 0, -0, 0.5, -0.5, NaN, Infinity, -Infinity, 4294967297, -9007199254740992]) {
|
|
for (const read of [name, message]) {
|
|
try { console.log("unexpected", read(value)); }
|
|
catch (error) { console.log(error.name, error.code, error.message); }
|
|
}
|
|
}
|
|
try { name(); } catch (error) { console.log("omitted", error.name, error.code, error.message); }
|
|
try { message(); } catch (error) { console.log("omitted", error.name, error.code, error.message); }
|
|
}
|