Skip to content

Commit f595ca1

Browse files
authored
feat: improve enum companion object functions (#17)
1 parent fc13905 commit f595ca1

File tree

6 files changed

+18
-30
lines changed

6 files changed

+18
-30
lines changed

src/definitions/enum.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,12 @@ export function buildEnumTypeDefinition(
3535
config,
3636
definitionNode: node,
3737
});
38-
return `${annotations}enum class ${enumName}(val label: String) {
38+
return `${annotations}enum class ${enumName}(val value: String) {
3939
${indentMultiline(enumValues.join(",\n") + ";", 2)}
4040
4141
companion object {
42-
@JvmStatic
43-
fun valueOfLabel(label: String): ${enumName}? {
44-
return values().find { it.label == label }
45-
}
42+
fun findByName(name: String): ${enumName}? = values().find { it.name == name }
43+
fun findByValue(value: String): ${enumName}? = values().find { it.value == value }
4644
}
4745
}`;
4846
}

test/unit/should_generate_basic_enums_correctly/expected.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@ package com.kotlin.generated
22

33
import com.expediagroup.graphql.generator.annotations.*
44

5-
enum class UserRole(val label: String) {
5+
enum class UserRole(val value: String) {
66
Admin("ADMIN"),
77
User("USER"),
88
Editor("EDITOR");
99

1010
companion object {
11-
@JvmStatic
12-
fun valueOfLabel(label: String): UserRole? {
13-
return values().find { it.label == label }
14-
}
11+
fun findByName(name: String): UserRole? = values().find { it.name == name }
12+
fun findByValue(value: String): UserRole? = values().find { it.value == value }
1513
}
1614
}

test/unit/should_generate_enums_properly/expected.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@ package com.kotlin.generated
33
import com.expediagroup.graphql.generator.annotations.*
44

55
@GraphQLDescription("A description for MyEnum")
6-
enum class MyEnum(val label: String) {
6+
enum class MyEnum(val value: String) {
77
This("THIS"),
88
@GraphQLDescription("A description for THAT")
99
That("THAT");
1010

1111
companion object {
12-
@JvmStatic
13-
fun valueOfLabel(label: String): MyEnum? {
14-
return values().find { it.label == label }
15-
}
12+
fun findByName(name: String): MyEnum? = values().find { it.name == name }
13+
fun findByValue(value: String): MyEnum? = values().find { it.value == value }
1614
}
1715
}

test/unit/should_honor_base_configs/expected.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@ package com.kotlin.generated
33
import com.expediagroup.graphql.generator.annotations.*
44

55
@GraphQLDescription("A description for MyEnum")
6-
enum class MyEnum(val label: String) {
6+
enum class MyEnum(val value: String) {
77
THIS("THIS"),
88
@GraphQLDescription("A description for THAT")
99
THAT("THAT");
1010

1111
companion object {
12-
@JvmStatic
13-
fun valueOfLabel(label: String): MyEnum? {
14-
return values().find { it.label == label }
15-
}
12+
fun findByName(name: String): MyEnum? = values().find { it.name == name }
13+
fun findByValue(value: String): MyEnum? = values().find { it.value == value }
1614
}
1715
}

test/unit/should_honor_onlyTypes_config/expected.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@ data class MyType(
1111
)
1212

1313
@GraphQLDescription("A description for MyEnum")
14-
enum class MyEnum(val label: String) {
14+
enum class MyEnum(val value: String) {
1515
This("THIS"),
1616
@GraphQLDescription("A description for THAT")
1717
That("THAT");
1818

1919
companion object {
20-
@JvmStatic
21-
fun valueOfLabel(label: String): MyEnum? {
22-
return values().find { it.label == label }
23-
}
20+
fun findByName(name: String): MyEnum? = values().find { it.name == name }
21+
fun findByValue(value: String): MyEnum? = values().find { it.value == value }
2422
}
2523
}

test/unit/should_include_dependent_types_in_onlyTypes_config/expected.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@ data class NestedListType(
2525
val field: String? = null
2626
)
2727

28-
enum class MyEnum(val label: String) {
28+
enum class MyEnum(val value: String) {
2929
This("THIS"),
3030
That("THAT");
3131

3232
companion object {
33-
@JvmStatic
34-
fun valueOfLabel(label: String): MyEnum? {
35-
return values().find { it.label == label }
36-
}
33+
fun findByName(name: String): MyEnum? = values().find { it.name == name }
34+
fun findByValue(value: String): MyEnum? = values().find { it.value == value }
3735
}
3836
}
3937

0 commit comments

Comments
 (0)