( runtime: SemanticDiffRuntime = createDefaultSemanticDiffRuntime(), )
| 260 | } |
| 261 | |
| 262 | export async function getSemanticDiffAvailability( |
| 263 | runtime: SemanticDiffRuntime = createDefaultSemanticDiffRuntime(), |
| 264 | ): Promise<SemanticDiffAvailability> { |
| 265 | const resolved = await resolveSem(runtime); |
| 266 | if ("command" in resolved) { |
| 267 | return { |
| 268 | available: true, |
| 269 | semVersion: resolved.version, |
| 270 | semSource: resolved.source, |
| 271 | }; |
| 272 | } |
| 273 | |
| 274 | return { |
| 275 | available: false, |
| 276 | reason: resolved.reason, |
| 277 | message: resolved.message, |
| 278 | }; |
| 279 | } |
| 280 | |
| 281 | function valueAsNumber(value: unknown): number | null { |
| 282 | return typeof value === "number" && Number.isFinite(value) ? value : null; |
no test coverage detected