Skip to content
NewBun 1.4.5 is out. Release notes
AphrodyBun

Linter · Rules

n/handle-callback-err

Require callbacks to use their error parameter

A Node.js callback gets the error as its first argument. If the function never looks at it, a failure goes unnoticed, and the code carries on with a result that's undefined.

The rule reports a function with a first parameter named err that's never used in its body. Any use counts. The rule doesn't check what you do with the error.

Configure

Off by default. To turn it on:

bunfig.toml
[lint.rules]
"n/handle-callback-err" = "error" # or "warn"

Examples

Reported:

fs.readFile("config.json", (err, data) => {
  start(JSON.parse(data));
});

Not reported:

fs.readFile("config.json", (err, data) => {
  if (err) {
    throw err;
  }
  start(JSON.parse(data));
});

Options

The option is the name of the error parameter. The default is "err". If it starts with ^, it's treated as a regular expression.

bunfig.toml
[lint.rules]
"n/handle-callback-err" = ["error", "^(err|error)$"]
server.close(function (error) {
  console.log("closed");
});

socket.end(function (err) {
  console.log("ended");
});

A plain name replaces err, so err is no longer checked:

socket.end(function (err) {
  console.log("ended");
});