Skip to content

Commit 1acb8fb

Browse files
refactor: Category -> ProjectTemplateCategory (#4015)
1 parent 09180b7 commit 1acb8fb

File tree

5 files changed

+33
-32
lines changed

5 files changed

+33
-32
lines changed

src/dfx-core/src/config/model/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ pub mod dfinity;
55
pub mod extension_canister_type;
66
pub mod local_server_descriptor;
77
pub mod network_descriptor;
8+
pub mod project_template;
89
pub mod replica_config;
910
pub mod settings_digest;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#[derive(Debug, Clone, Eq, PartialEq)]
2+
pub enum ProjectTemplateCategory {
3+
Backend,
4+
Frontend,
5+
FrontendTest,
6+
Extra,
7+
Support,
8+
}

src/dfx-core/src/config/project_templates.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::config::model::project_template::ProjectTemplateCategory;
12
use itertools::Itertools;
23
use std::collections::BTreeMap;
34
use std::fmt::Display;
@@ -12,15 +13,6 @@ pub enum ResourceLocation {
1213
Bundled { get_archive_fn: GetArchiveFn },
1314
}
1415

15-
#[derive(Debug, Clone, Eq, PartialEq)]
16-
pub enum Category {
17-
Backend,
18-
Frontend,
19-
FrontendTest,
20-
Extra,
21-
Support,
22-
}
23-
2416
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2517
pub struct ProjectTemplateName(pub String);
2618

@@ -44,7 +36,7 @@ pub struct ProjectTemplate {
4436

4537
/// Used to determine which CLI group (`--type`, `--backend`, `--frontend`)
4638
/// as well as for interactive selection
47-
pub category: Category,
39+
pub category: ProjectTemplateCategory,
4840

4941
/// Other project templates to patch in alongside this one
5042
pub requirements: Vec<ProjectTemplateName>,
@@ -99,7 +91,7 @@ pub fn find_project_template(name: &ProjectTemplateName) -> Option<ProjectTempla
9991
PROJECT_TEMPLATES.get().unwrap().get(name).cloned()
10092
}
10193

102-
pub fn get_sorted_templates(category: Category) -> Vec<ProjectTemplate> {
94+
pub fn get_sorted_templates(category: ProjectTemplateCategory) -> Vec<ProjectTemplate> {
10395
PROJECT_TEMPLATES
10496
.get()
10597
.unwrap()
@@ -114,7 +106,7 @@ pub fn get_sorted_templates(category: Category) -> Vec<ProjectTemplate> {
114106
.collect()
115107
}
116108

117-
pub fn project_template_cli_names(category: Category) -> Vec<String> {
109+
pub fn project_template_cli_names(category: ProjectTemplateCategory) -> Vec<String> {
118110
PROJECT_TEMPLATES
119111
.get()
120112
.unwrap()

src/dfx/src/commands/new.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ use anyhow::{anyhow, bail, ensure, Context, Error};
1111
use clap::builder::PossibleValuesParser;
1212
use clap::Parser;
1313
use console::{style, Style};
14+
use dfx_core::config::model::project_template::ProjectTemplateCategory as Category;
1415
use dfx_core::config::project_templates::{
1516
find_project_template, get_project_template, get_sorted_templates, project_template_cli_names,
16-
Category, ProjectTemplate, ProjectTemplateName, ResourceLocation,
17+
ProjectTemplate, ProjectTemplateName, ResourceLocation,
1718
};
1819
use dfx_core::json::{load_json_file, save_json_file};
1920
use dialoguer::theme::ColorfulTheme;

src/dfx/src/lib/project/templates.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::util::assets;
2-
use dfx_core::config::project_templates::{
3-
Category, ProjectTemplate, ProjectTemplateName, ResourceLocation,
4-
};
2+
use dfx_core::config::model::project_template::ProjectTemplateCategory;
3+
use dfx_core::config::project_templates::{ProjectTemplate, ProjectTemplateName, ResourceLocation};
54

65
const NPM_INSTALL: &str = "npm install --quiet --no-progress --workspaces --if-present";
76
const NPM_INSTALL_SPINNER_MESSAGE: &str = "Installing node dependencies...";
@@ -16,7 +15,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
1615
resource_location: ResourceLocation::Bundled {
1716
get_archive_fn: assets::new_project_motoko_files,
1817
},
19-
category: Category::Backend,
18+
category: ProjectTemplateCategory::Backend,
2019
post_create: vec![],
2120
post_create_failure_warning: None,
2221
post_create_spinner_message: None,
@@ -30,7 +29,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
3029
resource_location: ResourceLocation::Bundled {
3130
get_archive_fn: assets::new_project_rust_files,
3231
},
33-
category: Category::Backend,
32+
category: ProjectTemplateCategory::Backend,
3433
post_create: vec!["cargo update".to_string()],
3534
post_create_failure_warning: Some(CARGO_UPDATE_FAILURE_MESSAGE.to_string()),
3635
post_create_spinner_message: None,
@@ -44,7 +43,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
4443
resource_location: ResourceLocation::Bundled {
4544
get_archive_fn: assets::new_project_azle_files,
4645
},
47-
category: Category::Backend,
46+
category: ProjectTemplateCategory::Backend,
4847
post_create: vec![],
4948
post_create_failure_warning: None,
5049
post_create_spinner_message: None,
@@ -58,7 +57,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
5857
resource_location: ResourceLocation::Bundled {
5958
get_archive_fn: assets::new_project_kybra_files,
6059
},
61-
category: Category::Backend,
60+
category: ProjectTemplateCategory::Backend,
6261
post_create: vec![],
6362
post_create_failure_warning: None,
6463
post_create_spinner_message: None,
@@ -72,7 +71,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
7271
resource_location: ResourceLocation::Bundled {
7372
get_archive_fn: assets::new_project_svelte_files,
7473
},
75-
category: Category::Frontend,
74+
category: ProjectTemplateCategory::Frontend,
7675
post_create: vec![NPM_INSTALL.to_string()],
7776
post_create_failure_warning: Some(NPM_INSTALL_FAILURE_WARNING.to_string()),
7877
post_create_spinner_message: Some(NPM_INSTALL_SPINNER_MESSAGE.to_string()),
@@ -86,7 +85,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
8685
resource_location: ResourceLocation::Bundled {
8786
get_archive_fn: assets::new_project_react_files,
8887
},
89-
category: Category::Frontend,
88+
category: ProjectTemplateCategory::Frontend,
9089
post_create: vec![NPM_INSTALL.to_string()],
9190
post_create_failure_warning: Some(NPM_INSTALL_FAILURE_WARNING.to_string()),
9291
post_create_spinner_message: Some(NPM_INSTALL_SPINNER_MESSAGE.to_string()),
@@ -100,7 +99,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
10099
resource_location: ResourceLocation::Bundled {
101100
get_archive_fn: assets::new_project_vue_files,
102101
},
103-
category: Category::Frontend,
102+
category: ProjectTemplateCategory::Frontend,
104103
post_create: vec![NPM_INSTALL.to_string()],
105104
post_create_failure_warning: Some(NPM_INSTALL_FAILURE_WARNING.to_string()),
106105
post_create_spinner_message: Some(NPM_INSTALL_SPINNER_MESSAGE.to_string()),
@@ -114,7 +113,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
114113
resource_location: ResourceLocation::Bundled {
115114
get_archive_fn: assets::new_project_vanillajs_files,
116115
},
117-
category: Category::Frontend,
116+
category: ProjectTemplateCategory::Frontend,
118117
post_create: vec![NPM_INSTALL.to_string()],
119118
post_create_failure_warning: Some(NPM_INSTALL_FAILURE_WARNING.to_string()),
120119
post_create_spinner_message: Some(NPM_INSTALL_SPINNER_MESSAGE.to_string()),
@@ -128,7 +127,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
128127
resource_location: ResourceLocation::Bundled {
129128
get_archive_fn: assets::new_project_assets_files,
130129
},
131-
category: Category::Frontend,
130+
category: ProjectTemplateCategory::Frontend,
132131
post_create: vec![],
133132
post_create_failure_warning: None,
134133
post_create_spinner_message: None,
@@ -142,7 +141,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
142141
resource_location: ResourceLocation::Bundled {
143142
get_archive_fn: assets::new_project_svelte_test_files,
144143
},
145-
category: Category::FrontendTest,
144+
category: ProjectTemplateCategory::FrontendTest,
146145
post_create: vec![],
147146
post_create_failure_warning: None,
148147
post_create_spinner_message: None,
@@ -156,7 +155,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
156155
resource_location: ResourceLocation::Bundled {
157156
get_archive_fn: assets::new_project_react_test_files,
158157
},
159-
category: Category::FrontendTest,
158+
category: ProjectTemplateCategory::FrontendTest,
160159
post_create: vec![],
161160
post_create_failure_warning: None,
162161
post_create_spinner_message: None,
@@ -170,7 +169,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
170169
resource_location: ResourceLocation::Bundled {
171170
get_archive_fn: assets::new_project_vue_test_files,
172171
},
173-
category: Category::FrontendTest,
172+
category: ProjectTemplateCategory::FrontendTest,
174173
post_create: vec![],
175174
post_create_failure_warning: None,
176175
post_create_spinner_message: None,
@@ -184,7 +183,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
184183
resource_location: ResourceLocation::Bundled {
185184
get_archive_fn: assets::new_project_vanillajs_test_files,
186185
},
187-
category: Category::FrontendTest,
186+
category: ProjectTemplateCategory::FrontendTest,
188187
post_create: vec![],
189188
post_create_failure_warning: None,
190189
post_create_spinner_message: None,
@@ -198,7 +197,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
198197
resource_location: ResourceLocation::Bundled {
199198
get_archive_fn: assets::new_project_internet_identity_files,
200199
},
201-
category: Category::Extra,
200+
category: ProjectTemplateCategory::Extra,
202201
post_create: vec![],
203202
post_create_failure_warning: None,
204203
post_create_spinner_message: None,
@@ -212,7 +211,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
212211
resource_location: ResourceLocation::Bundled {
213212
get_archive_fn: assets::new_project_bitcoin_files,
214213
},
215-
category: Category::Extra,
214+
category: ProjectTemplateCategory::Extra,
216215
post_create: vec![],
217216
post_create_failure_warning: None,
218217
post_create_spinner_message: None,
@@ -226,7 +225,7 @@ pub fn builtin_templates() -> Vec<ProjectTemplate> {
226225
resource_location: ResourceLocation::Bundled {
227226
get_archive_fn: assets::new_project_js_files,
228227
},
229-
category: Category::Support,
228+
category: ProjectTemplateCategory::Support,
230229
post_create: vec![],
231230
post_create_failure_warning: None,
232231
post_create_spinner_message: None,

0 commit comments

Comments
 (0)