fallow_config/config/
mod.rs1mod duplicates_config;
2mod format;
3mod health;
4mod parsing;
5mod resolution;
6mod rules;
7
8pub use duplicates_config::{
9 DetectionMode, DuplicatesConfig, NormalizationConfig, ResolvedNormalization,
10};
11pub use format::OutputFormat;
12pub use health::HealthConfig;
13pub use resolution::{ConfigOverride, IgnoreExportRule, ResolvedConfig, ResolvedOverride};
14pub use rules::{PartialRulesConfig, RulesConfig, Severity};
15
16use schemars::JsonSchema;
17use serde::{Deserialize, Serialize};
18
19use crate::external_plugin::ExternalPluginDef;
20use crate::workspace::WorkspaceConfig;
21
22#[derive(Debug, Deserialize, Serialize, JsonSchema)]
24#[serde(deny_unknown_fields, rename_all = "camelCase")]
25pub struct FallowConfig {
26 #[serde(rename = "$schema", default, skip_serializing)]
28 #[schemars(skip)]
29 pub schema: Option<String>,
30
31 #[serde(default, skip_serializing)]
36 pub extends: Vec<String>,
37
38 #[serde(default)]
40 pub entry: Vec<String>,
41
42 #[serde(default)]
44 pub ignore_patterns: Vec<String>,
45
46 #[serde(default)]
48 pub framework: Vec<ExternalPluginDef>,
49
50 #[serde(default)]
52 pub workspaces: Option<WorkspaceConfig>,
53
54 #[serde(default)]
56 pub ignore_dependencies: Vec<String>,
57
58 #[serde(default)]
60 pub ignore_exports: Vec<IgnoreExportRule>,
61
62 #[serde(default)]
64 pub duplicates: DuplicatesConfig,
65
66 #[serde(default)]
68 pub health: HealthConfig,
69
70 #[serde(default)]
72 pub rules: RulesConfig,
73
74 #[serde(default)]
76 pub production: bool,
77
78 #[serde(default)]
86 pub plugins: Vec<String>,
87
88 #[serde(default)]
90 pub overrides: Vec<ConfigOverride>,
91}