handy online tools for AT Protocol
boat.kelinci.net
atproto
bluesky
atcute
typescript
solidjs
1import { XrpcHandleResolver } from '@atcute/identity-resolver';
2import { type AtprotoDid, type Handle, isHandle } from '@atcute/lexicons/syntax';
3
4const handleResolver = new XrpcHandleResolver({
5 serviceUrl: import.meta.env.VITE_APPVIEW_URL,
6});
7
8export const resolveHandleViaAppView = async ({
9 handle,
10 signal,
11}: {
12 handle: Handle;
13 signal?: AbortSignal;
14}): Promise<AtprotoDid> => {
15 if (!isHandle(handle)) {
16 throw new Error(`invalid handle: ${handle}`);
17 }
18
19 return await handleResolver.resolve(handle, { signal });
20};
21
22export const resolveHandleViaPds = async ({
23 service,
24 handle: handle,
25 signal,
26}: {
27 service: string;
28 handle: Handle;
29 signal?: AbortSignal;
30}): Promise<AtprotoDid> => {
31 const resolver = new XrpcHandleResolver({ serviceUrl: service });
32
33 return await resolver.resolve(handle, { signal });
34};