UNPKG

@swagger-api/apidom-ns-openapi-3-1

Version:

OpenAPI 3.1.x namespace for ApiDOM.

30 lines (27 loc) 985 B
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;