codebaseMountFor

tcmts.registry.codebaseMountFor · #4v63jsts · term · runs anywhere

Where a listed codebase is mounted in the registry's codebase: by its author's DID (as a release is, mountFor), under _codebases (no package's name starts with _, so it's no release's), its name made a name: plc_ewvi7nxz…._codebases.notes_app.

export function codebaseMountFor(did: string, name: string): string {
  const who = did
    .replace(/^did:/, "")
    .replace(/:/g, "_")
    .replace(/[^A-Za-z0-9_]/g, "_");
  const word = name.replace(/[^A-Za-z0-9_$]/g, "_");
  return `${/^[A-Za-z_$]/.test(who) ? who : `_${who}`}._codebases.${/^[A-Za-z_$]/.test(word) ? word : `_${word}`}`;
}

used by