@swagger-api/apidom-ns-openapi-3-1
Version:
OpenAPI 3.1.x namespace for ApiDOM.
30 lines (27 loc) • 985 B
JavaScript
import { last } from 'ramda';
import { MediaTypes } from '@swagger-api/apidom-core';
/**
* @public
*/
/**
* @public
*/
export class OpenAPIMediaTypes extends MediaTypes {
filterByFormat(format = 'generic') {
const effectiveFormat = format === 'generic' ? 'openapi;version' : format;
return this.filter(mediaType => mediaType.includes(effectiveFormat));
}
findBy(version = '3.1.0', format = 'generic') {
const search = format === 'generic' ? `vnd.oai.openapi;version=${version}` : `vnd.oai.openapi+${format};version=${version}`;
const found = this.find(mediaType => mediaType.includes(search));
return found || this.unknownMediaType;
}
latest(format = 'generic') {
return last(this.filterByFormat(format));
}
}
/**
* @public
*/
const mediaTypes = new OpenAPIMediaTypes('application/vnd.oai.openapi;version=3.1.0', 'application/vnd.oai.openapi+json;version=3.1.0', 'application/vnd.oai.openapi+yaml;version=3.1.0');
export default mediaTypes;