atUri

tcmts.atproto.atUri · #osi3syuo · function · runs anywhere

An at://<did>/<collection>/<rkey> URI's parts. Throws Refused for anything else.

import { isDid, Refused } from "#codebase/tcmts/atproto";

export function atUri(uri: string): { did: string; collection: string; rkey: string } {
  const m = /^at:\/\/([^/]+)\/([^/]+)\/([^/]+)$/.exec(uri);
  if (!m || !isDid(m[1]!)) throw new Refused(`${uri} isn't a record's at:// URI`);
  return { did: m[1]!, collection: m[2]!, rkey: m[3]! };
}

uses

used by