UNPKG

fetch-dns

Version:

A drop-in replacement of Node's 'dns' module using 'fetch' and DNS-over-HTTPS

65 lines 1.99 kB
export declare type Hostname = string; export declare type Address = string; export declare type Family = 4 | 6 | 0; export declare type Service = string; export declare namespace Record { interface WithTtl { address: Address; ttl: number; } type Simple = string; type MaybeTtl = Simple | WithTtl; interface Mx { priority: number; exchange: string; } interface Naptr { order: number; preference: number; flags: string; service: string; regexp: string; replacement: string; } type Txt = string[]; interface Soa { nsname: Hostname; hostmaster: Hostname; serial: number; refresh: number; retry: number; expire: number; minttl: number; } interface Srv { priority: number; weight: number; port: number; name: Hostname; } type Any = Txt | Srv | Soa | Naptr | Mx | Simple | WithTtl | MaybeTtl; namespace recordtype { type A = "A"; type AAAA = "AAAA"; type ANY = "ANY"; type CNAME = "CNAME"; type MX = "MX"; type NAPTR = "NAPTR"; type SOA = "SOA"; type SRV = "SRV"; type TXT = "TXT"; type PTR = "PTR"; type NS = "NS"; type ALike = A | AAAA; type Any = A | AAAA | ANY | CNAME | MX | NAPTR | SOA | SRV | TXT | PTR; type Simple = ALike | CNAME | PTR | NS; } type Typed<T extends recordtype.Any> = T extends recordtype.ALike ? MaybeTtl : T extends recordtype.Simple ? Simple : T extends recordtype.MX ? Mx : T extends recordtype.NAPTR ? Naptr : T extends recordtype.SOA ? Soa : T extends recordtype.SRV ? Srv : T extends recordtype.TXT ? Txt : T extends recordtype.ANY ? Any : never; } export interface ResolveAnswer<T extends Record.recordtype.Any> { name: string; rrtype: T; ttl: number; data: string; } //# sourceMappingURL=Record.d.ts.map