n/no-callback-literal

April 30, 2026 ยท View on GitHub

๐Ÿ“ Enforce Node.js-style error-first callback pattern is followed.

When invoking a callback function which uses the Node.js error-first callback pattern, all of your errors should either use the Error class or a subclass of it. It is also acceptable to use undefined or null if there is no error.

๐Ÿ“– Rule Details

When a function is named cb or callback, then it must be invoked with a first argument that is undefined, null, an Error class, or a subclass of Error.

Examples of ๐Ÿ‘Ž incorrect code for this rule:

/*eslint n/no-callback-literal: "error" */

cb('this is an error string');
cb({ a: 1 });
callback(0);

Examples of ๐Ÿ‘ correct code for this rule:

/*eslint n/no-callback-literal: "error" */

cb(undefined);
cb(null, 5);
callback(new Error('some error'));
callback(someVariable);

๐Ÿ”Ž Implementation