A TypeScript SDK for RDAP.net. Directly calls RDAP APIs from RDAP.net as the main RDAP Server Database.
A TypeScript SDK for RDAP.net. Directly calls RDAP APIs from RDAP.net as the
main RDAP Server Database.
Support RDAP.net/RDAP.org here: https://about.rdap.org/
References:
- API Usage: \
https://www.openrdap.org/api
``bashUsing pnpm
pnpm add @chez14/rdap-sdk
Usage
`typescript
import { RdapClient } from '@chez14/rdap-sdk';// Create a client
const client = new RdapClient();
// Query domain information
const domain = await client.domain('example.com');
console.log(domain.ldhName);
// Query internationalized domain name (IDN)
const idn = await client.domain('münchen.de');
console.log(idn.ldhName); // Automatically converts to punycode
// Query IP information
const ip = await client.ip('8.8.8.8');
console.log(ip.name);
// Query IP network (CIDR notation)
const network = await client.ip('2001:db8::1/128');
console.log(network.startAddress, network.endAddress);
// Query ASN information
const asn = await client.autnum(174);
console.log(asn.name);
// Use custom base domain (default is www.rdap.net)
const customClient = new RdapClient({
baseDomain: 'custom.rdap.example.com'
});
`Advanced Usage
$3
You can provide your own fetcher implementation to customize how HTTP requests
are made. This is useful for:
- Adding custom headers
- Implementing custom retry logic
- Using different HTTP clients
- Adding request/response interceptors
- Custom error handling
`typescript
import { RdapClient, Fetcher } from '@chez14/rdap-sdk';// Define your custom types
interface CustomHeaders {
Accept: string;
'User-Agent': string;
}
// Implement a typed fetcher
class CustomFetcher implements Fetcher {
constructor(private userAgent: string) {}
// Your implementation here
}
// Use your custom fetcher
const client = new RdapClient({
fetcher: new CustomFetcher('MyApp/1.0 (https://example.com)'),
});
`$3
The SDK is fully typed and provides interfaces for customizing request behavior.
You can implement your own fetcher with custom types:
The SDK exports these key types for customization:
-
HttpMethod: Supported HTTP methods ('GET' | 'POST' | 'PUT' | 'DELETE' |
'PATCH')
- FetchOptions: Request configuration including method, URL, body, and headers
- FetchResponse: Standardized response format with status, data, and headers
- Fetcher: Interface for implementing custom HTTP clientsResponse types:
-
DomainResponse: Type for domain query responses
- IpNetworkResponse: Type for IP network query responses
- AutonomousSystemResponse: Type for ASN query responsesFor type safety, we recommend:
1. Define interfaces for your request and response data
2. Use TypeScript's strict mode
3. Avoid using
unknown or any types in your implementationsDevelopment
`bash
Install dependencies
pnpm installBuild
pnpm buildRun tests
pnpm testLint
pnpm lint
``MIT