usesPackages
Whether a component's code, or anything it uses, imports an npm package (or anything else that isn't Node's or
the codebase's) not known to be pure: pure says which are, from the package's code (isPureExport); without it,
none is.
import { packaged } from "#codebase/tcmts/cli/kept"; import type { DefSource } from "#codebase/tcmts/loader"; export function usesPackages( src: DefSource, comp: string, pure: (ref: string) => boolean = () => false, ): boolean { const known = packaged.get(comp); if (known !== undefined) return known; packaged.set(comp, false); let uses = false; for (const m of src.members(comp)) { for (const d of m.deps) { if (d.pos !== "value") continue; if (!d.ref.startsWith("#")) uses ||= !d.ref.startsWith("node:") && !pure(d.ref); else { const dep = src.get(d.ref.slice(1)); if (dep && dep.componentHash !== comp) uses ||= usesPackages(src, dep.componentHash, pure); } if (uses) break; } if (uses) break; } packaged.set(comp, uses); return uses; }