n/prefer-promises/dns
April 30, 2026 ยท View on GitHub
๐ Enforce require("dns").promises.
Since Node.js v11.14.0, require("dns").promises API has been stable.
Promise API and async/await syntax will make code more readable than callback API.
๐ Rule Details
This rule disallows callback API in favor of promise API.
Examples of ๐ incorrect code for this rule:
/*eslint n/prefer-promises/dns: [error]*/
const dns = require("dns")
function lookup(hostname) {
dns.lookup(hostname, (error, address, family) => {
//...
})
}
/*eslint n/prefer-promises/dns: [error]*/
import dns from "dns"
function lookup(hostname) {
dns.lookup(hostname, (error, address, family) => {
//...
})
}
Examples of ๐ correct code for this rule:
/*eslint n/prefer-promises/dns: [error]*/
const { promises: dns } = require("dns")
async function lookup(hostname) {
const { address, family } = await dns.lookup(hostname)
//...
}
/*eslint n/prefer-promises/dns: [error]*/
import { promises as dns } from "dns"
async function lookup(hostname) {
const { address, family } = await dns.lookup(hostname)
//...
}