shareNow

tcmts.share.shareNow · #fb77kvnp · term · runs on the server

uses process

The page being made: the codebase, who's asking, from where.

import { serverUsers } from "#codebase/tcmts/cli/sync";
import { request } from "#codebase/tcmts/server";
import { callerNow, servedCodebase } from "#codebase/tcmts/share";
import type { Share } from "#codebase/tcmts/share";

export function shareNow(): Share & { signedIn: boolean } {
  const { cb, cache } = servedCodebase();
  const req = request();
  const caller = callerNow(cb);
  const host = req.headers.get("x-forwarded-host") ?? req.headers.get("host") ?? "localhost";
  const proto = (req.headers.get("x-forwarded-proto") ?? "http").split(",")[0]!.trim();
  return {
    cb,
    caller: caller ?? { role: "reader" },
    signedIn: !!caller,
    users: serverUsers(cb),
    isPublic: !process.env.TCM_SHARE_TOKEN || process.env.TCM_SHARE_PUBLIC === "1",
    cache,
    url: new URL(req.url, `${proto}://${host}`),
    origin: process.env.TCM_SHARE_ORIGIN || `${proto}://${host}`,
  };
}

uses

used by