(spec: OptionSpec)
| 114 | } |
| 115 | |
| 116 | export function resolveSourceValueDefinition(spec: OptionSpec): FlagDefinition { |
| 117 | const explicitValueDefinition = spec.flagDefinitions.find( |
| 118 | (definition) => definition.setValue === undefined, |
| 119 | ); |
| 120 | if (explicitValueDefinition) return explicitValueDefinition; |
| 121 | |
| 122 | const baseDefinition = primaryFlagDefinition(spec); |
| 123 | if (baseDefinition.type === 'enum') { |
| 124 | const enumValues = |
| 125 | baseDefinition.enumValues ?? |
| 126 | spec.flagDefinitions |
| 127 | .map((definition) => definition.setValue) |
| 128 | .filter((value): value is NonNullable<typeof value> => value !== undefined); |
| 129 | return { |
| 130 | ...baseDefinition, |
| 131 | setValue: undefined, |
| 132 | enumValues: enumValues as readonly string[], |
| 133 | }; |
| 134 | } |
| 135 | return baseDefinition; |
| 136 | } |
no test coverage detected