Files
oneuptime/Scripts/OpenAPI/GenerateSpec.ts
Simon Larsen d5f0a29959 feat: Update package dependencies and add OpenAPI spec generation
- Added @readme/openapi-parser as a dependency in Scripts/package.json.
- Introduced a new script command "generate-openapi-spec" in package.json for generating OpenAPI specifications.
- Removed the obsolete test_schema_permissions.js file.
- Created a new script (GenerateSpec.ts) to generate and validate the OpenAPI spec, saving it to openapi.json.
2025-06-09 14:08:56 +01:00

25 lines
767 B
TypeScript

import OpenAPI from "Common/Server/Utils/OpenAPI";
import fs from "fs";
import { validate, ValidationResult } from "@readme/openapi-parser";
import JSONFunctions from "Common/Types/JSONFunctions";
import BadDataException from "Common/Types/Exception/BadDataException";
const spec = OpenAPI.generateOpenAPISpec();
const validationResult: ValidationResult = await validate(
JSONFunctions.toString(spec)
);
if (validationResult.valid) {
console.log("OpenAPI spec is valid.");
} else {
throw new BadDataException("OpenAPI spec validation failed.");
}
// Write the OpenAPI spec to a file
const outputPath = "./openapi.json";
fs.writeFileSync(outputPath, JSON.stringify(spec, null, 2), "utf8");
console.log(`OpenAPI spec generated and saved to ${outputPath}`);