in eng/tools/typespec-migration-validation/src/document.ts [138:177]
function processParameter(parameter: Refable<OpenAPI2Parameter>): Refable<OpenAPI2Parameter> {
const newParameter: Refable<OpenAPI2Parameter> = deepCopy(parameter);
if ((parameter as Ref<OpenAPI2Parameter>).$ref) {
const refPath = (parameter as Ref<OpenAPI2Parameter>).$ref;
if (refPath.startsWith("#/parameters/")) {
const parameterName = refPath.substring("#/parameters/".length);
const originalParameter = originalDocument?.parameters?.[parameterName];
if (originalParameter) {
return processParameter(originalParameter);
}
}
}
else {
const inlineParameter = parameter as OpenAPI2Parameter;
if ((parameter as any).enum && (newParameter as any)["x-ms-enum"]?.["values"]) {
delete (newParameter as any)["x-ms-enum"]["values"];
}
if (configuration.enumNameToCamelCase && (newParameter as any)["x-ms-enum"]?.["name"]) {
const enumName = (newParameter as any)["x-ms-enum"]["name"] as string;
const camelCaseName = enumName.charAt(0).toUpperCase() + enumName.slice(1);
(newParameter as any)["x-ms-enum"]["name"] = camelCaseName;
}
for (const key in parameter) {
if (key === "x-ms-client-flatten") {
delete (newParameter as any)[key];
}
if (key === "required" && inlineParameter[key] !== true) {
delete (newParameter as any)[key];
}
if (key === "description") {
delete (newParameter as any)[key];
}
if (key === "x-ms-parameter-location" && inlineParameter[key] === "method") {
delete (newParameter as any)[key];
}
}
}
return newParameter;
}