mirror of
https://github.com/LukeHagar/aperture.git
synced 2025-12-06 04:19:09 +00:00
33 lines
962 B
TypeScript
33 lines
962 B
TypeScript
export type OpenApiVersion = '3.2' | '3.1' | '3.0' | '2.0';
|
|
|
|
export class VersionDetector {
|
|
detectVersion(data: any): OpenApiVersion | null {
|
|
if (typeof data?.openapi === 'string') {
|
|
const version = data.openapi;
|
|
if (version.startsWith('3.2')) return '3.2';
|
|
if (version.startsWith('3.1')) return '3.1';
|
|
if (version.startsWith('3.0')) return '3.0';
|
|
}
|
|
|
|
if (data?.swagger === '2.0') return '2.0';
|
|
|
|
return null;
|
|
}
|
|
|
|
isOpenApi3(version: OpenApiVersion | null): boolean {
|
|
return version === '3.0' || version === '3.1' || version === '3.2';
|
|
}
|
|
|
|
isOpenApi2(version: OpenApiVersion | null): boolean {
|
|
return version === '2.0';
|
|
}
|
|
|
|
getDefaultVersion(): OpenApiVersion {
|
|
return '3.2'; // Default to latest stable version
|
|
}
|
|
|
|
getSupportedVersions(): OpenApiVersion[] {
|
|
return ['3.2', '3.1', '3.0', '2.0'];
|
|
}
|
|
}
|