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 and always considered available).
Listed dependencies are excluded from both unused dependency and unlisted
dependency detection. Useful for runtime-provided packages like bun:sqlite
or implicitly available dependencies.
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 more