Skip to content

Commit 061831e

Browse files
committed
Add Variant enums to schema imports
1 parent 8a59c2d commit 061831e

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

Diff for: Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rust-purs-gql"
3-
version = "0.1.14"
3+
version = "0.1.15"
44
edition = "2021"
55
default-run = "pursgql"
66
repository = "https://github.com/OxfordAbstracts/purescript-graphql-schema-gen"

Diff for: spago_workspace_config.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ postgres_enums_dir: ../OxfordAbstracts/application/purs-projects/lib/generated-n
33
shared_graphql_enums_lib: oa-gql-enums
44
shared_graphql_enums_dir: ../OxfordAbstracts/application/purs-projects/lib/generated-new/
55
schema_libs_prefix: oa-gql-schema-
6-
schema_libs_dir: ../OxfordAbstracts/application/purs-projects/lib/generated-new/
6+
schema_libs_dir: ../OxfordAbstracts/application/purs-projects/lib/generated-new/
7+
variant_enums:
8+
- QuestionTypesEnum
9+
- ReviewerRecruitmentQuestionTypesEnum

Diff for: src/enums/generate_enum.rs

+13-6
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,17 @@ pub async fn generate_enum(
5050
&workspace_config.shared_graphql_enums_lib
5151
);
5252
let package_name = pascal_case(&workspace_config.shared_graphql_enums_lib);
53+
let module_name = format!("{package_name}.{name}");
5354
let helper_module = format!("{package_name}.Utils.VariantHelpers");
5455
if let Some(variant) = variant_mod(
5556
&name,
5657
&original_values,
58+
&module_name,
5759
&format!("\nimport {helper_module} (var, match)"),
5860
) {
61+
imports
62+
.push(PurescriptImport::new(&module_name, "oa-gql-enums").add_specified(&name));
63+
5964
write(
6065
&format!("{lib_path}/src/{package_name}/{name}.purs"),
6166
&variant,
@@ -97,10 +102,7 @@ pub async fn generate_enum(
97102
}
98103

99104
fn use_variant(name: &str, workspace_config: &WorkspaceConfig) -> bool {
100-
workspace_config
101-
.variant_enums
102-
.iter()
103-
.any(|suffix| name.ends_with(suffix))
105+
workspace_config.variant_enums.iter().any(|e| name == e)
104106
}
105107

106108
fn first_upper(s: &str) -> String {
@@ -222,7 +224,12 @@ fn enum_instances(name: &str, values: &Vec<String>, original_values: &Vec<String
222224
instances
223225
}
224226

225-
fn variant_mod(name: &str, original_values: &Vec<String>, helper_import: &str) -> Option<String> {
227+
fn variant_mod(
228+
name: &str,
229+
original_values: &Vec<String>,
230+
module_name: &str,
231+
helper_import: &str,
232+
) -> Option<String> {
226233
if original_values.len() == 0 {
227234
return None;
228235
}
@@ -386,7 +393,7 @@ instance BoundedEnum {name} where
386393
"#
387394
));
388395

389-
Some(format!("module {name} where\n\n{VARIANT_MODULE_IMPORTS}{helper_import}\n\n{variant}\n\n{variant_fns}{instances}"))
396+
Some(format!("module {module_name} where\n\n{VARIANT_MODULE_IMPORTS}{helper_import}\n\n{variant}\n\n{variant_fns}{instances}"))
390397
}
391398

392399
fn to_variant(type_name: &str, name: &str) -> String {

0 commit comments

Comments
 (0)