API reference

yatta/doh

DNS over HTTPS: wire and JSON shapes, plus a client.

11 exported symbols and 10 members, read from src/func/doh.ts.

Construct

createDoHHandler

function
createDoHHandler(resolver?: DnsResolver, options?: { path?: string; }): (req: Request) => Promise<Response>

decodeQuery

function
decodeQuery(data: Uint8Array): DnsQuery

decodeResponse

function
decodeResponse(data: Uint8Array): DecodedResponse

encodeQuery

function
encodeQuery(id: number, name: string, type: number): Uint8Array

encodeResponse

function
encodeResponse(query: DnsQuery, rcode: number, answers: DnsAnswer[]): Uint8Array

resolveDoH

async function
resolveDoH(endpoint: string, name: string, type?: DnsRecordType): Promise<DnsAnswer[]>

Types

DecodedResponse

interface
interface DecodedResponse

3 members

  • idproperty
    id: number
  • rcodeproperty
    rcode: number
  • answersproperty
    answers: DnsAnswer[]

DnsAnswer

interface
interface DnsAnswer

4 members

  • nameproperty
    name: string
  • typeproperty
    type: DnsRecordType
  • ttlproperty
    ttl: number
  • addressproperty
    address: string

DnsQuery

interface
interface DnsQuery

3 members

  • idproperty
    id: number
  • nameproperty
    name: string
  • typeproperty
    type: number

DnsRecordType

type
type DnsRecordType = "A" | "AAAA"

DnsResolver

type
type DnsResolver = (name: string, type: DnsRecordType) => Promise<DnsAnswer[]>
Tip
Most of the types above are inferred. You rarely import AuthConfig or JobPayload — declaring your schema once is enough for the rest to follow. See Typed keys.