pub struct FallowConfig {Show 19 fields
pub schema: Option<String>,
pub extends: Vec<String>,
pub entry: Vec<String>,
pub ignore_patterns: Vec<String>,
pub framework: Vec<ExternalPluginDef>,
pub workspaces: Option<WorkspaceConfig>,
pub ignore_dependencies: Vec<String>,
pub ignore_exports: Vec<IgnoreExportRule>,
pub duplicates: DuplicatesConfig,
pub health: HealthConfig,
pub rules: RulesConfig,
pub boundaries: BoundaryConfig,
pub production: bool,
pub plugins: Vec<String>,
pub dynamically_loaded: Vec<String>,
pub overrides: Vec<ConfigOverride>,
pub codeowners: Option<String>,
pub public_packages: Vec<String>,
pub regression: Option<RegressionConfig>,
}Expand description
User-facing configuration loaded from .fallowrc.json or fallow.toml.
§Examples
use fallow_config::FallowConfig;
// Default config has sensible defaults
let config = FallowConfig::default();
assert!(config.entry.is_empty());
assert!(!config.production);
// Deserialize from JSON
let config: FallowConfig = serde_json::from_str(r#"{
"entry": ["src/main.ts"],
"production": true
}"#).unwrap();
assert_eq!(config.entry, vec!["src/main.ts"]);
assert!(config.production);Fields§
§schema: Option<String>JSON Schema reference (ignored during deserialization).
extends: Vec<String>Base config files to extend from.
Supports three resolution strategies:
- Relative paths:
"./base.json"— resolved relative to the config file. - npm packages:
"npm:@co/config"— resolved by walking upnode_modules/. Package resolution checkspackage.jsonexports/mainfirst, then falls back to standard config file names. Subpaths are supported (e.g.,npm:@co/config/strict.json). - HTTPS URLs:
"https://example.com/fallow-base.json"— fetched remotely. Only HTTPS is supported (no plain HTTP). URL-sourced configs may extend other URLs ornpm:packages, but not relative paths. Only JSON/JSONC format is supported for remote configs. Timeout is configurable viaFALLOW_EXTENDS_TIMEOUT_SECS(default: 5s).
Base configs are loaded first, then this config’s values override them. Later entries in the array override earlier ones.
Note: npm: resolution uses node_modules/ directory walk-up and is
incompatible with Yarn Plug’n’Play (PnP), which has no node_modules/.
URL extends fetch on every run (no caching). For reliable CI, prefer npm:
for private or critical configs.
entry: Vec<String>Additional entry point glob patterns.
ignore_patterns: Vec<String>Glob patterns to ignore from analysis.
framework: Vec<ExternalPluginDef>Custom framework definitions (inline plugin definitions).
workspaces: Option<WorkspaceConfig>Workspace overrides.
ignore_dependencies: Vec<String>Dependencies to ignore (always considered used).
ignore_exports: Vec<IgnoreExportRule>Export ignore rules.
duplicates: DuplicatesConfigDuplication detection settings.
health: HealthConfigComplexity health metrics settings.
rules: RulesConfigPer-issue-type severity rules.
boundaries: BoundaryConfigArchitecture boundary enforcement configuration.
production: boolProduction mode: exclude test/dev files, only start/build scripts.
plugins: Vec<String>Paths to external plugin files or directories containing plugin files.
Supports TOML, JSON, and JSONC formats.
In addition to these explicit paths, fallow automatically discovers:
*.toml,*.json,*.jsoncfiles in.fallow/plugins/fallow-plugin-*.{toml,json,jsonc}files in the project root
dynamically_loaded: Vec<String>Glob patterns for files that are dynamically loaded at runtime (plugin directories, locale files, etc.). These files are treated as always-used and will never be flagged as unused.
overrides: Vec<ConfigOverride>Per-file rule overrides matching oxlint’s overrides pattern.
codeowners: Option<String>Path to a CODEOWNERS file for --group-by owner.
When unset, fallow auto-probes CODEOWNERS, .github/CODEOWNERS,
.gitlab/CODEOWNERS, and docs/CODEOWNERS. Set this to use a
non-standard location.
public_packages: Vec<String>Workspace package name patterns that are public libraries. Exports from these packages are not flagged as unused.
regression: Option<RegressionConfig>Regression detection baseline embedded in config.
Stores issue counts from a known-good state for CI regression checks.
Populated by --save-regression-baseline (no path), read by --fail-on-regression.
Implementations§
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn load(path: &Path) -> Result<Self, Report>
pub fn load(path: &Path) -> Result<Self, Report>
Load config from a fallow config file (TOML or JSON/JSONC).
The format is detected from the file extension:
.toml→ TOML.json→ JSON (with JSONC comment stripping)
Supports extends for config inheritance. Extended configs are loaded
and deep-merged before this config’s values are applied.
§Errors
Returns an error when the config file cannot be read, merged, or deserialized.
Sourcepub fn find_config_path(start: &Path) -> Option<PathBuf>
pub fn find_config_path(start: &Path) -> Option<PathBuf>
Find the config file path without loading it.
Searches the same locations as find_and_load.
Sourcepub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
pub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
Find and load config, searching from start up to the project root.
§Errors
Returns an error if a config file is found but cannot be read or parsed.
Sourcepub fn json_schema() -> Value
pub fn json_schema() -> Value
Generate JSON Schema for the configuration format.
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn resolve(
self,
root: PathBuf,
output: OutputFormat,
threads: usize,
no_cache: bool,
quiet: bool,
) -> ResolvedConfig
pub fn resolve( self, root: PathBuf, output: OutputFormat, threads: usize, no_cache: bool, quiet: bool, ) -> ResolvedConfig
Resolve into a fully resolved config with compiled globs.
Trait Implementations§
Source§impl Debug for FallowConfig
impl Debug for FallowConfig
Source§impl Default for FallowConfig
impl Default for FallowConfig
Source§fn default() -> FallowConfig
fn default() -> FallowConfig
Source§impl<'de> Deserialize<'de> for FallowConfig
impl<'de> Deserialize<'de> for FallowConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for FallowConfig
impl JsonSchema for FallowConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for FallowConfig
impl RefUnwindSafe for FallowConfig
impl Send for FallowConfig
impl Sync for FallowConfig
impl Unpin for FallowConfig
impl UnsafeUnpin for FallowConfig
impl UnwindSafe for FallowConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more