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)
    //...
}

๐Ÿ”Ž Implementation