roleNow

tcmts.share.roleNow · #rbjbkjax · term · runs on the server

uses tcmts.cli.pages.roleOf, which uses tcmts.cli.roles.codebaseRoles, which uses tcmts.cli.roles.rolesIn, which uses tcmts.cli.roles.manifestsIn, which uses tcmts.cli.config.configValue, which uses node:path

What a named definition is for (#7k5t7jin), told once for each head.

import { roleOf } from "#codebase/tcmts/cli/pages";
import type { Role } from "#codebase/tcmts/cli/pages";
import type { Share } from "#codebase/tcmts/share";
import type { NameRow } from "#codebase/tcmts/store";

export function roleNow(s: Pick<Share, "cb" | "cache">, r: NameRow): Role {
  const roles = s.cache.atHead(s.cb, "roles", () => new Map<string, Role>());
  const key = `${r.path} ${r.hash}`;
  let role = roles.get(key);
  if (!role) roles.set(key, (role = roleOf(s.cb, r.path, r.hash, s.cache.placement(s.cb))));
  return role;
}

uses

used by