servedCodebase

tcmts.share.servedCodebase · #7u4learc · term · runs on the server

uses process

import { Codebase, openApart } from "#codebase/tcmts/cli/codebase";
import { keepWarm, opened, shareCache } from "#codebase/tcmts/share";
import type { ShareCache } from "#codebase/tcmts/share";

export function servedCodebase(): { cb: Codebase; cache: ShareCache } {
  const named = process.env.TCM_SHARE_CODEBASE;
  const dir = named || process.cwd();
  if (!opened.has(dir)) {
    const served = { cb: named ? openApart(named) : Codebase.find(dir), cache: shareCache() };
    opened.set(dir, served);
    keepWarm(served);
  }
  return opened.get(dir)!;
}

uses

used by