あなたのサーバの自己紹介を、宇宙に読める形で掲げられます。何のソフトで、何人住んでいるか——fedi統計サイトにあなたの島が載るのは、この高札のおかげです。立てるのも読むのも、それぞれ関数ひとつ。
読む側の作法が、この部屋の見どころです。よその高札はしばしば崩れているので、防御的なパーサの鎖が、崩れた札をそっとnullにする。他所の島の事情を、責めずに受け流す作り。
見どころ
- 本堂の中の一角(packages/fedify/src/nodeinfo、約2000行)。client.ts / handler.ts / types.ts の三枚
- Protocolは文字列リテラルのunion——activitypubだけでなく、diaspora、ostatus、xmppなど旧い宇宙の名前も並んでいる
経文の一節
export function parseProtocol(data: unknown): Protocol | null {
// cSpell: disable
if (
data === "activitypub" || data === "buddycloud" || data === "dfrn" ||
data === "diaspora" || data === "libertree" || data === "ostatus" ||
data === "pumpio" || data === "tent" || data === "xmpp" ||
data === "zot"
) {
// cSpell: enable
return data;
}
return null;
}