handy online tools for AT Protocol boat.kelinci.net
atproto bluesky atcute typescript solidjs
at trunk 34 lines 822 B view raw
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};