# Data flow — oxc-project/oxc

> Canonical page: https://codevetter.com/unpack/oxc/data-flow

# Data flow — oxc-project/oxc

Scanned commit 7f65b757df7c3225320d8f7e051e64873f80f988 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Source text enters through filesystem reads or explicit binding arguments and becomes arena-owned compiler data. Configuration resolution selects rule state or a typed formatting strategy before processing. Node parser output crosses an additional coordinate and serialization boundary. Filesystem outputs and suppression baselines are distinct from temporary allocator, module-graph, and directive state.
- Parser binding input consists of filename, source text, and ParserOptions; parse_with_return creates an allocator, derives SourceType and AST flavor, then calls parse_impl. — [napi/parser/src/lib.rs#L79-108](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/napi/parser/src/lib.rs#L79-L108) [napi/parser/src/lib.rs#L160-166](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/napi/parser/src/lib.rs#L160-L166)
- Node parser results optionally accumulate semantic diagnostics, convert AST/module/error offsets from UTF-8 to UTF-16, serialize ESTree fields, and return comments plus module metadata. — [napi/parser/src/lib.rs#L110-147](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/napi/parser/src/lib.rs#L110-L147)
- Oxlint normalizes explicit paths, filters ignore sources, walks candidates, loads root/nested configuration, and combines resolved rule state and external-plugin metadata into ConfigStore. — [apps/oxlint/src/lint.rs#L123-198](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxlint/src/lint.rs#L123-L198) [apps/oxlint/src/lint.rs#L220-238](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxlint/src/lint.rs#L220-L238) [apps/oxlint/src/lint.rs#L254-266](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxlint/src/lint.rs#L254-L266) [apps/oxlint/src/lint.rs#L369-413](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxlint/src/lint.rs#L369-L413)
- Lint Runtime stores source and section semantics under an AllocatorGuard-backed self_cell; a concurrent module graph retains Arc-owned records, with other cyclic references required to use Weak. — [crates/oxc_linter/src/service/runtime.rs#L45-68](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/service/runtime.rs#L45-L68) [crates/oxc_linter/src/service/runtime.rs#L79-119](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/service/runtime.rs#L79-L119)
- PartialLoader separates framework source sections; each section is parsed and semantically analyzed, and failed-section diagnostic spans are shifted back to original file coordinates. — [crates/oxc_linter/src/service/runtime.rs#L1078-1124](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/service/runtime.rs#L1078-L1124) [crates/oxc_linter/src/service/runtime.rs#L1137-1164](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/service/runtime.rs#L1137-L1164)
- Oxfmt streams FormatStrategy entries over an mpsc channel; FormatService bridges them into Rayon processing, reads source, formats it, and sends success or wrapped diagnostics over separate channels. — [apps/oxfmt/src/cli/walk_runner.rs#L124-150](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxfmt/src/cli/walk_runner.rs#L124-L150) [apps/oxfmt/src/cli/service.rs#L36-78](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxfmt/src/cli/service.rs#L36-L78) [apps/oxfmt/src/cli/service.rs#L100-117](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxfmt/src/cli/service.rs#L100-L117)
- JS formatting acquires a pooled allocator and a FormatSession carrying resolved host services, calls format_with_session, and prints its result; embedded children inherit the host's resolved config rather than resolving a virtual path. — [apps/oxfmt/src/core/format.rs#L410-450](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxfmt/src/core/format.rs#L410-L450) [apps/oxfmt/src/core/embed/dispatcher.rs#L108-127](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/apps/oxfmt/src/core/embed/dispatcher.rs#L108-L127)
- Suppression state maps filenames to rule diagnostic counts; serialization sorts filenames and rules, while finalization compares runtime counts with the baseline before saving updates or reporting differences. — [crates/oxc_linter/src/suppression/tracking.rs#L32-58](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/suppression/tracking.rs#L32-L58) [crates/oxc_linter/src/suppression/tracking.rs#L113-122](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/suppression/tracking.rs#L113-L122) [crates/oxc_linter/src/suppression/mod.rs#L142-179](https://github.com/oxc-project/oxc/blob/7f65b757df7c3225320d8f7e051e64873f80f988/crates/oxc_linter/src/suppression/mod.rs#L142-L179)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
