UNPKG

@oada/media-types

Version:
25 lines 859 B
import { parse } from 'content-type'; const root = 'https://formats.openag.io'; const regex = /^application\/vnd\.([^.]+)\.(.*)\+json$/; export function getSchema(mediaType) { const matches = regex.exec(mediaType.toLowerCase()); if (!matches) { return; } const [, domain, type] = matches; const types = type?.split('.') ?? []; const version = types.pop() ?? Number.NaN; if (!Number(version)) { return; } return `${domain}/${types.join('/')}/v${version}.schema.json`; } function resolveSchema(type) { const schema = getSchema(type); return schema && `${root}/${schema}`; } export default function mediaType2schema(...parameters) { const { type, parameters: { schema = resolveSchema(type) }, } = parse(...parameters); return schema ? schema.split(' ') : []; } //# sourceMappingURL=index.js.map