Files
aperture/src/server/version.ts

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'];
}
}