import type { VercelRequest, VercelResponse } from '@vercel/node' import { getProvider } from './_utils' export async function getEnsTextRecords( ensName: string ): Promise<{ key: string; value: string }[] | null> { const texts = [ 'url', 'avatar', 'com.twitter', 'com.github', 'org.telegram', 'com.discord', 'com.reddit' ] const records = [] const provider = await getProvider() const resolver = await provider.getResolver(ensName) if (!resolver) return null for (let index = 0; index < texts?.length; index++) { const key = texts[index] const value = await resolver.getText(key) value && records.push({ key, value }) } return records } export default async function ensTextApi( request: VercelRequest, response: VercelResponse ) { try { const ensName = String(request.query.name) const records = await getEnsTextRecords(ensName) response.setHeader('Cache-Control', 'max-age=0, s-maxage=86400') response.status(200).send({ records }) } catch (error) { response.send({ error }) } }