openfare_js_lib/
lib.rs

1use anyhow::Result;
2
3mod commands;
4mod registries;
5
6#[derive(Clone, Debug)]
7pub struct JsExtension {
8    name_: String,
9    registry_host_names_: Vec<String>,
10    version_: String,
11}
12
13impl openfare_lib::extension::FromLib for JsExtension {
14    fn new() -> Self {
15        Self {
16            name_: "js".to_string(),
17            registry_host_names_: registries::HOST_NAMES
18                .to_vec()
19                .iter()
20                .map(|s| s.to_string())
21                .collect(),
22            version_: format!("CARGO_PKG_VERSION: {}", env!("CARGO_PKG_VERSION"),),
23        }
24    }
25}
26
27impl openfare_lib::extension::Extension for JsExtension {
28    fn name(&self) -> String {
29        self.name_.clone()
30    }
31
32    fn registries(&self) -> Vec<String> {
33        self.registry_host_names_.clone()
34    }
35
36    fn version(&self) -> String {
37        self.version_.clone()
38    }
39
40    fn package_dependencies_locks(
41        &self,
42        package_name: &str,
43        package_version: &Option<&str>,
44        extension_args: &Vec<String>,
45    ) -> Result<
46        openfare_lib::extension::commands::package_dependencies_locks::PackageDependenciesLocks,
47    > {
48        commands::package_dependencies_locks(
49            &self,
50            &package_name,
51            &package_version,
52            &extension_args,
53        )
54    }
55
56    fn project_dependencies_locks(
57        &self,
58        working_directory: &std::path::PathBuf,
59        extension_args: &Vec<String>,
60    ) -> Result<
61        openfare_lib::extension::commands::project_dependencies_locks::ProjectDependenciesLocks,
62    > {
63        commands::project_dependencies_locks(&working_directory, &extension_args)
64    }
65}