fedicrawl/application/src/Fediverse/NodeInfo/retrieveDomainNodeInfo.ts

17 wiersze
571 B
TypeScript
Czysty Zwykły widok Historia

2021-12-23 14:14:06 +00:00
import { retrieveWellKnown } from './retrieveWellKnown'
import { retrieveNodeInfo, NodeInfo } from './retrieveNodeInfo'
import { NoSupportedLinkError } from './NoSupportedLinkError'
2021-12-23 14:14:06 +00:00
2022-09-18 11:32:25 +00:00
export const retrieveDomainNodeInfo = async (
domain: string
): Promise<NodeInfo> => {
2021-12-23 14:14:06 +00:00
const wellKnown = await retrieveWellKnown(domain)
2022-09-18 11:32:25 +00:00
const link = wellKnown.links.find(
(link) => link.rel === 'http://nodeinfo.diaspora.software/ns/schema/2.0'
)
2021-12-23 14:14:06 +00:00
if (typeof link === 'undefined') {
throw new NoSupportedLinkError(domain)
2021-12-23 14:14:06 +00:00
}
return await retrieveNodeInfo(link.href)
}