dnserrors

Maps dns errors to DnsError objects subclassing httperrors.

Usage no npm install needed!

<script type="module">
  import dnserrors from 'https://cdn.skypack.dev/dnserrors';
</script>

README

node-dnserrors

NPM version Build Status Coverage Status Dependency Status

Exposes a function mapping DNS errors to DnsError objects.

The defined DnsError objects are created via createerror.

Installation

Make sure you have node.js and npm installed, then run:

npm install dnserrors

Usage

The primary use case is wrapping errors originating from dns operations:

var dns = require('dns');
var dnsErrors = require('dnserrors');

dns.lookup('qovwiejiqvwiejvoqwevqwev.com', function (err) {
    var dnsError = dnsErrors(err);

    console.warn(dnsError.toString()); // ENOTFOUND: getaddrinfo ENOTFOUND
});

Other errors will be marked as not being dns errors:

var dnsErrors = require('dnserrors');

var err = new Error();
var dnsError = dnsErrors(err);

if (dnsError.NotDnsError) {
    // what am I?
}

Mappings

The following is a list of dns errors mapped by this module:

  • ENODATA (mapped to 404)
  • EFORMERR (mapped to 400)
  • ESERVFAIL (mapped to 502)
  • ENOTFOUND (mapped to 404)
  • ENOENT (mapped to 404)
  • ENOTIMP (mapped to 501)
  • EREFUSED (mapped to 403)
  • EBADQUERY (mapped to 400)
  • EBADNAME (mapped to 400)
  • EBADFAMILY (mapped to 400)
  • EBADRESP (mapped to 502)
  • ECONNREFUSED (mapped to 502)
  • ETIMEOUT (mapped to 504)
  • EEOF (mapped to 500)
  • EFILE (mapped to 500)
  • ENOMEM (mapped to 500)
  • EDESTRUCTION (mapped to 500)
  • EBADSTR (mapped to 400)
  • EBADFLAGS (mapped to 400)
  • ENONAME (mapped to 400)
  • EBADHINTS (mapped to 400)
  • ENOTINITIALIZED (mapped to 500)
  • ELOADIPHLPAPI (mapped to 500)
  • EADDRGETNETWORKPARAMS (mapped to 500)
  • ECANCELLED (mapped to 500)

License

3-clause BSD license -- see the LICENSE file for details.