+9
packages/shared/deno.jsonc
+9
packages/shared/deno.jsonc
+1
packages/shared/mod.ts
+1
packages/shared/mod.ts
···
1
1
+
export * from "./resolve-did.ts";
+30
packages/shared/resolve-did.ts
+30
packages/shared/resolve-did.ts
···
1
1
+
import type { Did, Handle } from "@atcute/lexicons";
2
2
+
3
3
+
export interface MiniDoc {
4
4
+
did: Did;
5
5
+
handle: Handle;
6
6
+
pds: string;
7
7
+
signing_key: string;
8
8
+
}
9
9
+
10
10
+
export async function resolveMiniDoc(
11
11
+
handle: string,
12
12
+
slingshotUrl?: string,
13
13
+
): Promise<MiniDoc> {
14
14
+
const url = new URL(
15
15
+
"/xrpc/com.bad-example.identity.resolveMiniDoc",
16
16
+
slingshotUrl ?? "https://slingshot.microcosm.blue",
17
17
+
);
18
18
+
19
19
+
url.searchParams.set("handle", handle);
20
20
+
21
21
+
const result = await fetch(url.toString());
22
22
+
23
23
+
if (!result.ok) {
24
24
+
throw new Error(
25
25
+
`failed to fetch identity mini doc: Error ${result.status} ${result.statusText}`,
26
26
+
);
27
27
+
}
28
28
+
29
29
+
return await result.json();
30
30
+
}