Skip to content

Harvest

module Harvest
AssemblyXantham.Generator

Tier 1 - Harvest: the Wire-driven inventory of what the author exported. No mapping decisions live here; every entry-module export and exported type member of a harvested namespace appears once per public origin and name, aliases followed to their origin.

Functions and values

harvestAmbientClasses: Pass<HarvestModel>

Runtime ambient class exports available to declarations reached through dependencies.

harvestDocs: Pass<HarvestModel>

Documentation for every harvested export, from the checker rather than the syntax tree so merged declarations already read as one.

harvestExports: Pass<HarvestModel>

Every public path's exports, root first then each subpath in PublicPaths order, each followed through getAliasedSymbol to its origin so that re-exports and default-export aliases land on the declaring symbol. The root binds [<Import(name, package)>]; a subpath binds under its own specifier, "<runtime>/<key without the leading ./>".

A skipped exports key - a wildcard, or a key without declarations - raises the finding recorded for it in Context.SkippedPaths, degrading the model and leaving the run intact.

harvestGlobals: Pass<HarvestModel>

Harvests package globals when a public input is a global script, module exports are empty, or compiler libraries ship alongside the entry package. A mixed run reads the global script's scope and retains the public module exports.

harvestNamespaceMembers: Pass<HarvestModel>

The exported interfaces, aliases, classes and enums of every harvested namespace, nested namespaces included, each harvested under its namespace's origin. A member carries no value export of its own: its value binds through the namespace object. Every walked namespace joins Namespaces, a nested one under its dotted path (Pool.Inner). A module package's global namespaces (declare global { namespace X }) are harvested as global exports first. Only namespaces and members whose group ships are walked.

orderExports: Pass<HarvestModel>

Entry declarations first, then package-relative dependency and compiler sources. Node index and export name break ties; exports without declarations sort last. Occurrences of one declaration then order by public path: the declaring namespace's own path before an alias path such as globalThis.Intl, then by ordinal path. Occurrences that still tie keep harvest-pass order, entry module first. The order will be identical across runs whatever order the checker enumerates scopes in.

passes: Pass<HarvestModel> list

The tier's pass list, in execution order.