use std::path::PathBuf;
use farmfe_core::common::PackageJsonInfo;
use farmfe_core::lazy_static::lazy_static;
pub mod package_json_loader;
pub mod path_start_with_alias;
pub mod symlinks_analyzer;
use package_json_loader::PackageJsonLoader;
use crate::resolve::symlinks_analyzer::SymlinksAnalyzer;
use self::package_json_loader::Options;
lazy_static! {
pub static ref PACKAGE_JSON_LOADER: PackageJsonLoader = PackageJsonLoader::new();
pub static ref SYMLINKS_ANALYZER: SymlinksAnalyzer = SymlinksAnalyzer::new();
}
pub const DYNAMIC_EXTENSION_PRIORITY: &str = "DYNAMIC_EXTENSION_PRIORITY";
pub fn load_package_json(
path: PathBuf,
options: Options,
) -> farmfe_core::error::Result<PackageJsonInfo> {
PACKAGE_JSON_LOADER.load(path, options)
}
pub fn default_package_json() -> PackageJsonInfo {
PackageJsonInfo::new(
Some("farm-default-package-info".to_string()),
Some("0.0.0".to_string()),
)
}
pub fn follow_symlinks(path: PathBuf) -> PathBuf {
SYMLINKS_ANALYZER.follow_symlinks(path)
}