UNPKG

mock-dns-server

Version:

Create a mock DNS-over-TLS server based on [mock-tls-server](https://github.com/hildjj/mock-tls-server/).

70 lines (69 loc) 1.7 kB
import * as packet from 'dns-packet'; import { MockTLSServer, type ServerOpts } from 'mock-tls-server'; import type { Buffer } from 'node:buffer'; export { connect, plainConnect } from 'mock-tls-server'; export interface ConnectionOptions { zones?: Zones; } export type MockDNSServerOptions = ConnectionOptions & { port?: number; }; export interface Zone1 { A: string; AAAA: string; AFSDB: Buffer; APL: Buffer; AXFR: Buffer; CAA: packet.CaaData; CDNSKEY: Buffer; CDS: Buffer; CERT: Buffer; CNAME: string; DNAME: string; DHCID: Buffer; DLV: Buffer; DNSKEY: packet.DnskeyData; DS: packet.DsData; HINFO: packet.HInfoAnswer; HIP: Buffer; IXFR: Buffer; IPSECKEY: Buffer; KEY: Buffer; KX: Buffer; LOC: Buffer; MX: packet.MxAnswer; NAPTR: packet.NaptrAnswer; NS: string; NSEC: packet.NsecAnswer; NSEC3: packet.Nsec3Answer; NSEC3PARAM: Buffer; NULL: Buffer; OPT: never; PTR: string; RRSIG: packet.RrsigData; RP: packet.RpData; SIG: Buffer; SOA: packet.SoaData; SRV: packet.SrvData; SSHFP: packet.SshfpData; TA: Buffer; TKEY: Buffer; TLSA: packet.TlsaData; TSIG: Buffer; TXT: packet.TxtData; URI: Buffer; } export type Zone = { [rtype in keyof Zone1]?: Zone1[rtype] | Zone1[rtype][] | undefined; }; export interface Zones { [key: string]: Zone; } /** * Create a mock DNS server. * * @param [options] Any options for mock-tls-server. Port defaults * to 853. * @returns The created server, already listening. */ export declare function createServer(options?: MockDNSServerOptions & ServerOpts): MockTLSServer;