Skip to content

Commit 6b839d8

Browse files
authored
chore(build): update tsDocGen.js with support for enum parsing
2 parents 46ccd94 + ee16c89 commit 6b839d8

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

cli/tsDocGen.js

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,20 +135,47 @@ const getTypeAliasMetadata = (filename, sourceText) =>
135135
[],
136136
)
137137

138+
function extractEnumValues(typeString) {
139+
if (!typeString || typeof typeString !== 'string') {
140+
return []
141+
}
142+
143+
// Handle union types like 'primary' | 'secondary' | 'tertiary'
144+
if (typeString.includes('|')) {
145+
return typeString
146+
.split('|')
147+
.map(value => value.trim())
148+
.filter(value => value.startsWith("'") || value.startsWith('"'))
149+
.map(value => value.slice(1, -1)) // Remove quotes
150+
.filter(value => value.length > 0)
151+
}
152+
153+
return []
154+
}
155+
138156
function normalizeProp([
139157
name,
140158
{ required, annotatedType, type, tsType, description, defaultValue },
141159
]) {
160+
const typeString =
161+
annotatedType ||
162+
(type && type.name) ||
163+
(type && (type.raw || type.name)) ||
164+
(tsType && (tsType.raw || tsType.name)) ||
165+
'No type info'
166+
142167
const res = {
143168
name,
144-
type:
145-
annotatedType ||
146-
(type && type.name) ||
147-
(type && (type.raw || type.name)) ||
148-
(tsType && (tsType.raw || tsType.name)) ||
149-
'No type info',
169+
type: typeString,
150170
description,
151171
}
172+
173+
// Extract enum values for union types
174+
const enumValues = extractEnumValues(typeString)
175+
if (enumValues.length > 0) {
176+
res.enumValues = enumValues
177+
}
178+
152179
if (required) {
153180
res.required = true
154181
}

0 commit comments

Comments
 (0)