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}