userConfig
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
- tcmts.cli.codebase.Codebase
- tcmts.cli.config.configDefinition
- tcmts.cli.lint.LINT_CONFIG
- tcmts.cli.lint.UserConfig
- tcmts.loader.packages.npmAlias