Skip to content

Commit f7e69b1

Browse files
committed
Fix swift enum keys
1 parent e3cc1f5 commit f7e69b1

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/SDK/Language/Swift.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,10 @@ public function getFilters(): array
468468
return $value;
469469
}),
470470
new TwigFilter('caseEnumKey', function (string $value) {
471+
if (isset($this->getIdentifierOverrides()[$value])) {
472+
$value = $this->getIdentifierOverrides()[$value];
473+
}
474+
$value = \preg_replace('/[^a-zA-Z0-9]/', '', $value);
471475
return $this->toCamelCase($value);
472476
}),
473477
];

templates/swift/Sources/Enums/Enum.swift.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Foundation
33
public enum {{ enum.name | caseUcfirst | overrideIdentifier }}: String, Codable {
44
{%~ for value in enum.enum %}
55
{%~ set key = enum.keys is empty ? value : enum.keys[loop.index0] %}
6-
case {{ key | caseCamel | replace({'-': ''}) | escapeSwiftKeyword }}
6+
case {{ key | caseEnumKey | escapeSwiftKeyword }} = "{{ value }}"
77
{%~ endfor %}
88

99
public func encode(to encoder: Encoder) throws {

0 commit comments

Comments
 (0)