NpmFacts

tcmts.cli.npm.NpmFacts · #etavwdnn · type

What a package's export reaches, worked out from its code as tcm works out its own's: through every declaration it uses, in its module, the package's other modules and the packages they import. effects: what it reaches outside (the clock, randomness, the network, files, the environment, other processes, output), as reaches has them; node: Node's modules and globals it uses (it needs the server); dom: the browser's globals it uses (it needs the browser); state: a module it uses holds state something could change (a top-level let, or an object or array); opaque: what couldn't be followed (a computed import() or require(), eval, a module not found), so the rest can't be trusted to be all of it. client: why it's browser code, as React has it, if it is: a module it's in says "use client", or it uses React's hooks, contexts or class components (which React's server components can't).

import type { Effect } from "#codebase/tcmts/core/effects";

export interface NpmFacts {
  effects: Effect[];
  node: string[];
  dom: string[];
  client: string[];
  state: boolean;
  opaque: string[];
}

uses

used by