1import {
2 CompositeDidDocumentResolver,
3 PlcDidDocumentResolver,
4 WebDidDocumentResolver,
5} from "@atcute/identity-resolver";
6import { createAsync, query } from "@solidjs/router";
7
8const docResolver = new CompositeDidDocumentResolver({
9 methods: {
10 plc: new PlcDidDocumentResolver(),
11 web: new WebDidDocumentResolver(),
12 },
13});
14
15export const getUserPDS = query(
16 async (did: `did:plc:${string}` | `did:web:${string}`) => {
17 const doc = await docResolver.resolve(did);
18 const endpoint = doc.service?.find(
19 (i) => i.id === "#atproto_pds",
20 )?.serviceEndpoint;
21 if (typeof endpoint === "string") return endpoint;
22 return undefined;
23 },
24 "user_pds",
25);
26
27export const UserPDS = (did: `did:plc:${string}` | `did:web:${string}`) => {
28 return createAsync(() => getUserPDS(did));
29};