Steel / api /openapi /generate.ts
supernovagateway's picture
Upload folder using huggingface_hub
fb38ec5 verified
import { writeFileSync } from "fs";
import { server } from "../src";
import { env } from "../src/env.js";
interface OpenAPIServer {
url: string;
description?: string;
}
interface OpenAPIDocument {
servers?: OpenAPIServer[];
[key: string]: any;
}
server.ready(() => {
let openApiJSON = server.swagger() as OpenAPIDocument;
// Add server URL from environment variables.
const serverUrl = `http://${env.HOST}:${env.PORT}`;
if (!openApiJSON.servers) {
openApiJSON.servers = [];
}
openApiJSON.servers.push({
url: serverUrl,
description: "Local server from env variables",
});
writeFileSync("./openapi/schemas.json", JSON.stringify(openApiJSON, null, 2), "utf-8");
console.log("OpenAPI JSON has been written to schemas.json");
server.close(() => {
console.log("Server closed after generating schemas.");
process.exit(0);
});
});