fetch-dns
Version:
A drop-in replacement of Node's 'dns' module using 'fetch' and DNS-over-HTTPS
65 lines • 1.99 kB
TypeScript
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