fallow_config/config/
mod.rs1mod duplicates_config;
2mod format;
3mod parsing;
4mod resolution;
5mod rules;
6
7pub use duplicates_config::{
8 DetectionMode, DuplicatesConfig, NormalizationConfig, ResolvedNormalization,
9};
10pub use format::OutputFormat;
11pub use resolution::{ConfigOverride, IgnoreExportRule, ResolvedConfig, ResolvedOverride};
12pub use rules::{PartialRulesConfig, RulesConfig, Severity};
13
14use schemars::JsonSchema;
15use serde::{Deserialize, Serialize};
16
17use crate::external_plugin::ExternalPluginDef;
18use crate::workspace::WorkspaceConfig;
19
20#[derive(Debug, Deserialize, Serialize, JsonSchema)]
22#[serde(deny_unknown_fields, rename_all = "camelCase")]
23pub struct FallowConfig {
24 #[serde(rename = "$schema", default, skip_serializing)]
26 #[schemars(skip)]
27 pub schema: Option<String>,
28
29 #[serde(default, skip_serializing)]
34 pub extends: Vec<String>,
35
36 #[serde(default)]
38 pub entry: Vec<String>,
39
40 #[serde(default)]
42 pub ignore_patterns: Vec<String>,
43
44 #[serde(default)]
46 pub framework: Vec<ExternalPluginDef>,
47
48 #[serde(default)]
50 pub workspaces: Option<WorkspaceConfig>,
51
52 #[serde(default)]
54 pub ignore_dependencies: Vec<String>,
55
56 #[serde(default)]
58 pub ignore_exports: Vec<IgnoreExportRule>,
59
60 #[serde(default)]
62 pub duplicates: DuplicatesConfig,
63
64 #[serde(default)]
66 pub rules: RulesConfig,
67
68 #[serde(default)]
70 pub production: bool,
71
72 #[serde(default)]
80 pub plugins: Vec<String>,
81
82 #[serde(default)]
84 pub overrides: Vec<ConfigOverride>,
85}