diggy
Version:
Multi-backend DNS resolver for Node.js/Browser — supports dig, DNS over HTTPS, and native Node.js DNS.
50 lines (49 loc) • 1.91 kB
TypeScript
import { type BuildInDNSResolver } from "./get-resolver";
import type { DNSResolver } from "./resolvers/DNSResolver";
import type { AnyDNSRecord } from "./types";
/**
* Fetches DNS records for a given `host` and type. When no `type` is specified,
* it retrieves all available DNS records for the host.
*
* @example Fetch all DNS records for a host
* ```ts
* import { getDnsRecords } from "diggy";
* const records = await getDnsRecords("example.com");
* console.log(records);
* ```
*
* @example Get A records for a host
* ```ts
* import { getDnsRecords } from "diggy";
* const aRecords = await getDnsRecords("example.com", "A");
* console.log(aRecords);
* ```
*
* @example Change the DNS resolver (built-in resolvers)
* ```ts
* import { getDnsRecords } from "diggy";
* const records = await getDnsRecords("example.com", "A", "google");
* console.log(records);
* ```
*
* @example Use Node.js DNS resolver
* ```ts
* import { getDnsRecords } from "diggy";
* const records = await getDnsRecords("example.com", "A", "nodejs");
* console.log(records);
* ```
*
* @example Use a custom DNS resolver
* ```ts
* import { getDnsRecords } from "diggy";
* import { customResolver } from "./my-custom-resolver";
* const records = await getDnsRecords("example.com", "A", customResolver);
* console.log(records);
* ```
*
* @param host - The domain or host for which to fetch DNS records e.g. "example.com".
* @param type - The type of DNS record to fetch (e.g., "A", "AAAA", "MX"). If not specified, all records will be fetched.
* @param resolver - The DNS resolver to use. It can be a built-in resolver name (like "google" or "cloudflare"), a custom resolver function, or a string URL for a DoH resolver.
* @group Main Functions
*/
export declare function getDnsRecords(host: string, type?: string, resolver?: string | BuildInDNSResolver | DNSResolver): Promise<AnyDNSRecord[]>;