in eng/tools/typespec-migration-validation/src/index.ts [63:103]
export async function main() {
const args = parseArguments();
const { oldPath, newPath, outputFolder } = args;
logHeader(`Processing old swagger from: ${oldPath}...`);
const mergedOldfile = mergeFiles(oldPath!);
const processedOldFile = processDocument(mergedOldfile);
const sortedOldFile = sortOpenAPIDocument(processedOldFile);
logHeader(`Processing new swagger from: ${newPath}`);
const newFile = readFileContent(newPath!);
const processedNewFile = processDocument(JSON.parse(newFile.toString()));
const sortedNewFile = sortOpenAPIDocument(processedNewFile);
logHeader("Comparing old and new Swagger files...");
if (outputFolder) {
fs.writeFileSync(`${outputFolder}/oldSwagger.json`, JSON.stringify(sortedOldFile, null, 2));
fs.writeFileSync(`${outputFolder}/newSwagger.json`, JSON.stringify(sortedNewFile, null, 2));
const diffForFile = diff(sortedOldFile, sortedNewFile);
fs.writeFileSync(`${outputFolder}/diff.json`, JSON.stringify(diffForFile, null, 2));
const suggestedFixes = suggestFix(diffForFile);
if (suggestedFixes.length > 0) {
logWarning(`Considering these suggested fixes for the diff:`);
suggestedFixes.forEach(fix => {
console.log(fix);
});
}
const suggestedPrompt = suggestPrompt(diffForFile);
if (suggestedPrompt.length > 0) {
logWarning(`Considering these suggested prompts for the diff:`);
suggestedPrompt.forEach(prompt => {
console.log(prompt);
});
}
// fs.writeFileSync(`${outputFolder}/diff.md`, `\`\`\`diff\n${diffForFile}\n\`\`\`\n`);
}
else {
const differences = diffString(sortedOldFile, sortedNewFile);
console.log(differences);
}
}