userConfig

tcmts.cli.lint.userConfig · #35xcavri · term · runs on the server

uses node:path

The codebase's lint.config: its value, and the packages it imports, which are its JS plugins.

import type { Codebase } from "#codebase/tcmts/cli/codebase";
import { configDefinition } from "#codebase/tcmts/cli/config";
import { LINT_CONFIG } from "#codebase/tcmts/cli/lint";
import type { UserConfig } from "#codebase/tcmts/cli/lint";
import { npmAlias } from "#codebase/tcmts/loader/packages";
import path from "node:path";

export function userConfig(cb: Codebase): UserConfig {
  const def = configDefinition(cb, LINT_CONFIG);
  if (!def) return { config: {}, jsPlugins: [] };
  const jsPlugins = [
    ...new Set(
      def.rec.spans.flatMap((s) =>
        s.ext?.module.startsWith("npm:") && s.pos === "value" ? [s.ext.module] : [],
      ),
    ),
  ].map((m) => path.join(cb.lay.cacheDir, "node_modules", npmAlias(m)));
  return { config: def.value, jsPlugins, hash: def.hash };
}

uses

used by