@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
118 lines • 5.66 kB
JavaScript
import { assignOnlyExistingConfig, assignConfig, isPlainObject } from '../utils.js';
export function parsePresetName(presetName) {
if (presetName.indexOf('/') > -1) {
const [pluginId, configName] = presetName.split('/');
return { pluginId, configName };
}
else {
return { pluginId: '', configName: presetName };
}
}
export function prefixRules(rules, prefix) {
if (!prefix)
return rules;
const res = {};
for (const name of Object.keys(rules)) {
res[`${prefix}/${name}`] = rules[name];
}
return res;
}
export function mergeExtends(rulesConfList) {
const result = {
rules: {},
oas2Rules: {},
oas3_0Rules: {},
oas3_1Rules: {},
async2Rules: {},
async3Rules: {},
arazzo1Rules: {},
overlay1Rules: {},
preprocessors: {},
oas2Preprocessors: {},
oas3_0Preprocessors: {},
oas3_1Preprocessors: {},
async2Preprocessors: {},
async3Preprocessors: {},
arazzo1Preprocessors: {},
overlay1Preprocessors: {},
decorators: {},
oas2Decorators: {},
oas3_0Decorators: {},
oas3_1Decorators: {},
async2Decorators: {},
async3Decorators: {},
arazzo1Decorators: {},
overlay1Decorators: {},
};
for (const rulesConf of rulesConfList) {
if (isPlainObject(rulesConf) && 'extends' in rulesConf && rulesConf.extends !== undefined) {
throw new Error(`'extends' is not supported in shared configs yet:\n${JSON.stringify(rulesConf, null, 2)}`);
}
assignConfig(result.rules, rulesConf.rules);
assignConfig(result.oas2Rules, rulesConf.oas2Rules);
assignOnlyExistingConfig(result.oas2Rules, rulesConf.rules);
assignConfig(result.oas3_0Rules, rulesConf.oas3_0Rules);
assignOnlyExistingConfig(result.oas3_0Rules, rulesConf.rules);
assignConfig(result.oas3_1Rules, rulesConf.oas3_1Rules);
assignOnlyExistingConfig(result.oas3_1Rules, rulesConf.rules);
assignConfig(result.async2Rules, rulesConf.async2Rules);
assignOnlyExistingConfig(result.async2Rules, rulesConf.rules);
assignConfig(result.async3Rules, rulesConf.async3Rules);
assignOnlyExistingConfig(result.async3Rules, rulesConf.rules);
assignConfig(result.arazzo1Rules, rulesConf.arazzo1Rules);
assignOnlyExistingConfig(result.arazzo1Rules, rulesConf.rules);
assignConfig(result.overlay1Rules, rulesConf.overlay1Rules);
assignOnlyExistingConfig(result.overlay1Rules, rulesConf.rules);
assignConfig(result.preprocessors, rulesConf.preprocessors);
assignConfig(result.oas2Preprocessors, rulesConf.oas2Preprocessors);
assignOnlyExistingConfig(result.oas2Preprocessors, rulesConf.preprocessors);
assignConfig(result.oas3_0Preprocessors, rulesConf.oas3_0Preprocessors);
assignOnlyExistingConfig(result.oas3_0Preprocessors, rulesConf.preprocessors);
assignConfig(result.oas3_1Preprocessors, rulesConf.oas3_1Preprocessors);
assignOnlyExistingConfig(result.oas3_1Preprocessors, rulesConf.preprocessors);
assignConfig(result.async2Preprocessors, rulesConf.async2Preprocessors);
assignOnlyExistingConfig(result.async2Preprocessors, rulesConf.preprocessors);
assignConfig(result.async3Preprocessors, rulesConf.async3Preprocessors);
assignOnlyExistingConfig(result.async3Preprocessors, rulesConf.preprocessors);
assignConfig(result.arazzo1Preprocessors, rulesConf.arazzo1Preprocessors);
assignOnlyExistingConfig(result.arazzo1Preprocessors, rulesConf.preprocessors);
assignConfig(result.overlay1Preprocessors, rulesConf.overlay1Preprocessors);
assignOnlyExistingConfig(result.overlay1Preprocessors, rulesConf.preprocessors);
assignConfig(result.decorators, rulesConf.decorators);
assignConfig(result.oas2Decorators, rulesConf.oas2Decorators);
assignOnlyExistingConfig(result.oas2Decorators, rulesConf.decorators);
assignConfig(result.oas3_0Decorators, rulesConf.oas3_0Decorators);
assignOnlyExistingConfig(result.oas3_0Decorators, rulesConf.decorators);
assignConfig(result.oas3_1Decorators, rulesConf.oas3_1Decorators);
assignOnlyExistingConfig(result.oas3_1Decorators, rulesConf.decorators);
assignConfig(result.async2Decorators, rulesConf.async2Decorators);
assignOnlyExistingConfig(result.async2Decorators, rulesConf.decorators);
assignConfig(result.async3Decorators, rulesConf.async3Decorators);
assignOnlyExistingConfig(result.async3Decorators, rulesConf.decorators);
assignConfig(result.arazzo1Decorators, rulesConf.arazzo1Decorators);
assignOnlyExistingConfig(result.arazzo1Decorators, rulesConf.decorators);
assignConfig(result.overlay1Decorators, rulesConf.overlay1Decorators);
assignOnlyExistingConfig(result.overlay1Decorators, rulesConf.decorators);
}
return result;
}
export function getResolveConfig(resolve) {
return {
http: {
headers: resolve?.http?.headers ?? [],
customFetch: undefined,
},
};
}
export class ConfigValidationError extends Error {
}
export function deepCloneMapWithJSON(originalMap) {
return new Map(JSON.parse(JSON.stringify([...originalMap])));
}
export function isDeprecatedPluginFormat(plugin) {
return plugin !== undefined && typeof plugin === 'object' && 'id' in plugin;
}
export function isCommonJsPlugin(plugin) {
return typeof plugin === 'function';
}
//# sourceMappingURL=utils.js.map