@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
27 lines • 997 B
JavaScript
import path from 'node:path';
import { isAbsoluteUrl } from '../ref-utils.js';
import { resolvePreset } from './config-resolvers.js';
import { mergeExtends } from './utils.js';
import { isTruthy } from '../utils/is-truthy.js';
export function bundleExtends({ node, ctx, plugins, }) {
if (!node.extends) {
return node;
}
const resolvedExtends = (node.extends || [])
.map((presetItem) => {
if (!isAbsoluteUrl(presetItem) && !path.extname(presetItem)) {
return resolvePreset(presetItem, plugins);
}
const resolvedRef = ctx.resolve({ $ref: presetItem });
if (resolvedRef.location && resolvedRef.node !== undefined) {
return resolvedRef.node;
}
return null;
})
.filter(isTruthy);
return mergeExtends([
...resolvedExtends.map((nested) => bundleExtends({ node: nested, ctx, plugins })),
{ ...node, extends: undefined },
]);
}
//# sourceMappingURL=bundle-extends.js.map