export async function main()

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);
  }
}