Skip to content
This repository was archived by the owner on Apr 30, 2025. It is now read-only.

Commit 2a46e50

Browse files
author
sam boyer
committed
cuetsy: No capitalization of explicit enum memberNames
1 parent c39ec1b commit 2a46e50

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

generator.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,17 +421,19 @@ func orEnum(v cue.Value) ([]ts.Expr, error) {
421421
var fields []ts.Expr
422422
for idx, dv := range dvals {
423423
var text string
424+
var id tsast.Ident
424425
if attrMemberNameExist {
425426
text = evals[idx]
427+
id = ts.Ident(text)
426428
} else {
427429
text, _ = dv.String()
430+
id = ts.Ident(strings.Title(text))
428431
}
429432

430433
if !dv.IsConcrete() {
431434
return nil, valError(v, "typescript enums may only be generated from a disjunction of concrete strings or numbers")
432435
}
433436

434-
id := ts.Ident(strings.Title(text))
435437
if id.Validate() != nil {
436438
return nil, valError(v, "title casing of enum member %q produces an invalid typescript identifier; memberNames must be explicitly given in @cuetsy attribute", text)
437439
}

testdata/enum.txtar

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Verify that the disjunction enum style works
44
E1: "e1str1" | "e1str2" | "e1str3" @cuetsy(kind="enum")
55
E2: "e2str1" | "e2str2" | "e2str3" | "e2str4" @cuetsy(kind="enum")
66
E3: "e1str1" | "e1str2" | "e1str3" @cuetsy(kind="enum", memberNames="Foo|Bar|Zip")
7-
E4: 1 | 2 | 3 @cuetsy(kind="enum", memberNames="Foo|Bar|Zip")
7+
E4: 1 | 2 | 3 @cuetsy(kind="enum", memberNames="foo|Bar|Zip")
88

99
-- ts --
1010

@@ -29,6 +29,6 @@ export enum E3 {
2929

3030
export enum E4 {
3131
Bar = 2,
32-
Foo = 1,
3332
Zip = 3,
33+
foo = 1,
3434
}

0 commit comments

Comments
 (0)