#![warn(missing_docs)]
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
mod readme_examples {}
mod cache;
mod error;
#[cfg(feature = "fix")]
mod fix;
#[cfg(feature = "js-analysis")]
mod js;
mod linter;
mod path;
mod root;
mod shared_config;
mod targets;
#[cfg(feature = "update")]
pub mod update;
pub use error::Error;
#[cfg(feature = "fix")]
pub use fix::{
Alternatives, AppliedFix, FixError, FixPlan, FixSelection, SkipReason, SkippedFix, apply_fixes, content_hash,
preferred_alternative,
};
#[cfg(feature = "js-analysis")]
pub use js::{explain_usage, trace_dependency};
pub use linter::{Linter, RunOptions, builtin_providers};
pub use path::join_lexical;
pub use root::{config_file, find_workspace_root, load_config, resolve_config};
pub use shared_config::settle_shared_config;
#[cfg(feature = "js-analysis")]
pub use skif_js::cache_version as module_cache_version;
#[cfg(feature = "js-analysis")]
pub use skif_js::{
Absence, CachedModule, DependencyImport, DependencyListing, DependencyTrace, EntryReason, ExportReport, ExportUser,
Importer, MemoryModuleCache, ModuleCache, ModuleKey, ReExport, SharedModules, UsageReport, Verdict,
empty_tsconfig_projects, relative_tsconfig,
};
#[cfg(feature = "manifest")]
pub use skif_rules::policy::{GroupRef, InstanceStatus, StatusType};
pub use targets::{
Discovery, RootFailure, Target, UnappliedConfig, UnappliedReason, discover_all, discover_targets, find_target,
load_target, unapplied_config_files, unapplied_config_files_all,
};
pub use skif_config::Format as FormatConfig;
pub use skif_config::Update as UpdateConfig;
pub use skif_config::Workspace as WorkspaceConfig;
pub use skif_config::{
Assignment, CONFIG_FILE_NAMES, Catalog, CatalogMode, Ceiling, Config, ConfigBuilder, ConfigCache, ConfigError,
ConfigLoader, ConfigOverrides, ConfigSource, DependencyFamily, DependencyTypes, ExportKinds, FamilyScope,
GroupScope, IgnoreEntry, IgnoreExportsUsedInFile, IgnoreItem, InstanceFilter, Js, JsWorkspace, Level, Lint, Op,
Origins, Override, OverrideScope, PackageJs, PackageManager, PluginConfig, PluginOptions, Policy, Prefer, ResetKey,
ResolvedConfig, RuleConfig, RuleOptions, Selector, SemverGroup, SemverRange, SourceKind, UpdateGroup, UpdateTarget,
VersionGroup, VersionPolicy, WorkspaceProtocol, join_key,
};
pub use skif_config::{CustomStrategy, CustomType, DependencyType};
pub use skif_core::{
BufferFs, CachedFs, Category, ConfigJudgement, Diagnostic, DiagnosticBuilder, DirEntry, FileChange, FileSystem,
Fix, FixOp, FixPreference, FixSafety, Fixability, IncompleteCause, IncompleteEntries, IncompletePackage,
IncompleteScope, InsertPosition, JsonAction, Location, MemoryFs, OsFs, PathKind, PathSeg, Related, Report, RuleId,
RuleMeta, Severity, Span, Summary, TextEdit, YamlAction, diagnostic, slash,
};
pub use skif_lint::{
Emitter, EnabledRules, Executor, ExecutorError, LintContext, LintError, ProviderError, RegistryError, Rule,
RuleProvider, RulesProvider, dependency_name, ignore_matches,
};
pub use skif_workspace::{DiscoverOptions, Package, PackageId, RootKind, Workspace, WorkspaceError};
#[cfg(feature = "report")]
pub mod render {
pub use skif_report::{
CODEOWNERS_LOCATIONS, CodeOwners, ErrorInfo, Format, RenderOptions, SCHEMA_VERSION, render, render_codeclimate,
render_codeowners, render_compact, render_disclosure, render_github, render_human, render_json,
render_json_error, render_json_error_info, render_markdown, render_sarif,
};
}
#[cfg(feature = "schema")]
#[must_use]
pub fn config_schema() -> String {
format!("{:#}\n", skif_config::json_schema())
}
const _: () = {
fn assert_send_sync<T: Send + Sync>() {}
let _ = assert_send_sync::<Linter>;
let _ = assert_send_sync::<Error>;
let _ = assert_send_sync::<RunOptions<'static>>;
let _ = assert_send_sync::<Config>;
let _ = assert_send_sync::<ConfigCache>;
let _ = assert_send_sync::<Report>;
let _ = assert_send_sync::<Executor>;
let _ = assert_send_sync::<ResolvedConfig>;
let _ = assert_send_sync::<Target>;
let _ = assert_send_sync::<Discovery>;
let _ = assert_send_sync::<Workspace>;
let _ = assert_send_sync::<Package>;
let _ = assert_send_sync::<Diagnostic>;
let _ = assert_send_sync::<RuleId>;
let _ = assert_send_sync::<Selector>;
let _ = assert_send_sync::<Fix>;
let _ = assert_send_sync::<FixOp>;
let _ = assert_send_sync::<CachedFs<OsFs>>;
let _ = assert_send_sync::<BufferFs<OsFs>>;
let _ = assert_send_sync::<OsFs>;
let _ = assert_send_sync::<MemoryFs>;
let _ = assert_send_sync::<ConfigLoader>;
let _ = assert_send_sync::<PathKind>;
let _ = assert_send_sync::<Emitter<'static>>;
let _ = assert_send_sync::<LintContext<'static>>;
let _ = assert_send_sync::<DiscoverOptions>;
let _ = assert_send_sync::<Box<dyn Rule>>;
let _ = assert_send_sync::<Box<dyn RuleProvider>>;
#[cfg(feature = "js-analysis")]
{
let _ = assert_send_sync::<UsageReport>;
let _ = assert_send_sync::<MemoryModuleCache>;
let _ = assert_send_sync::<SharedModules>;
let _ = assert_send_sync::<CachedModule>;
let _ = assert_send_sync::<ModuleKey>;
let _ = assert_send_sync::<std::sync::Arc<dyn ModuleCache>>;
let _ = assert_send_sync::<DependencyTrace>;
let _ = assert_send_sync::<skif_js::JsProvider>;
}
#[cfg(feature = "fix")]
{
let _ = assert_send_sync::<FixPlan>;
let _ = assert_send_sync::<FixSelection>;
let _ = assert_send_sync::<FixError>;
let _ = assert_send_sync::<SkipReason>;
}
};