in media/src/utils/parseAPIMetaDescription.ts [63:123]
description: parseDescription(schema.description, popcode, version),
};
}
return schema;
});
return newSchema;
}
export function parseAPIMetaDescription (
apiMeta: any,
popcode: string,
version: string,
) {
const result = { ...(apiMeta || {}) };
const mdFields = ['description', 'extraInfo', 'requestParamsDescription', 'responseParamsDescription'];
mdFields.forEach((field) => {
if (apiMeta[field]) {
result[field] = parseDescription(apiMeta[field], popcode, version);
}
});
result.parameters = (apiMeta.parameters || []).map((param) => {
if (!param?.schema) {
return param;
}
return {
...param,
schema: parseSchemaDescription(param.schema as any as SemixJsonSchema, popcode, version),
};
}) as any[];
const newResponseSchema = parseSchemaDescription(
apiMeta.responses?.['200']?.schema as any as SemixJsonSchema,
popcode,
version,
);
return fp.set('responses.200.schema', newResponseSchema, result);
}
export const parseExample = (example: string) => {
if (!example) {
return example;
}
const replacements = [
(str: string) => str?.replace(/<props="china">([\s\S]+?)<\/props>/g, isAlibabaCloud ? '' : '$1'),
(str: string) => str?.replace(/<props="intl">([\s\S]+?)<\/props>/g, isAlibabaCloud ? '$1' : ''),
];
return replacements.reduce((str, replacement) => {
return replacement(str);
}, example);
};
export function parseSchemaExample(schema: SemixJsonSchema) {
if (!schema) {
return schema;
}
const newSchema = SemixJsonSchema.mapSchema(schema as any, (schema) => {
if (schema.example) {
return {