/**
 * Validates OpenAPI specs under specs/openapi/ using @apidevtools/swagger-parser.
 * Run: npm run validate:openapi
 */
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";
import SwaggerParser from "@apidevtools/swagger-parser";

const __dirname = dirname(fileURLToPath(import.meta.url));
const ROOT = resolve(__dirname, "..");
const MAIN_SPEC = resolve(ROOT, "specs/openapi/bff-api.v1.yaml");

async function main(): Promise<void> {
  try {
    const api = await SwaggerParser.validate(MAIN_SPEC, {
      resolve: { external: true },
    });
    const title = (api as { info?: { title?: string } }).info?.title ?? MAIN_SPEC;
    console.log(`OpenAPI validation passed: ${title}`);
  } catch (err) {
    console.error("OpenAPI validation failed:");
    console.error(err instanceof Error ? err.message : err);
    process.exit(1);
  }
}

main();
