All files / TRANSPILE/3-Render/headers/types IHeaderRenderResult.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                                                                 
/**
 * The rendered header text for every file in this run, keyed by source path.
 *
 * Produced by `HeaderRenderer` from the `IHeaderEmissionFacts` each file
 * captured while its `CodeGenState` was warm (#1323).
 *
 * ## It used to be called `IEmissionPlan`, and it is not one
 *
 * #1323 introduced it under that name as an interim owner, saying so in its own
 * doc: "NOT #1449's whole-program `EmissionPlan` (2.2 Plan's deliverable) ...
 * #1449 is free to absorb or reshape this once a real 2.2 Plan pass exists."
 * That pass now exists, so the name went to it and this type took one that says
 * what it holds. It is a RENDER result -- text, already produced -- and a plan
 * is what is decided BEFORE any text exists. Keeping the plan's name on
 * rendered output would have put the two passes' artifacts under one word,
 * which is the confusion the pass table exists to prevent.
 */
interface IHeaderRenderResult {
  /** Source path -> rendered header text. A file with no public header has no entry. */
  readonly headersBySourcePath: ReadonlyMap<string, string>;
 
  /**
   * Source path -> the message from an exception `HeaderGenerator.generate()`
   * raised while rendering that file's header. Kept separate from a thrown
   * exception so one file's render failure cannot abort another's -- the same
   * per-file isolation `Transpiler._transpileFile`'s own try/catch already
   * gives `.c`/`.cpp` generation.
   */
  readonly errorsBySourcePath: ReadonlyMap<string, string>;
}
 
export default IHeaderRenderResult;