UNPKG

@hirosystems/api-toolkit

Version:
23 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateOpenApiSpec = generateOpenApiSpec; const fastify_1 = require("fastify"); const swagger_1 = require("@fastify/swagger"); const fs_1 = require("fs"); /** * Generates OpenAPI JSON and YAML spec documents based on a given Fastify API plugin with optional * Swagger definitions. */ async function generateOpenApiSpec(options) { const fastify = (0, fastify_1.default)().withTypeProvider(); await fastify.register(swagger_1.default, options.swaggerOptions); await fastify.register(options.apiDefinition, { prefix: options.prefix }); await fastify.ready(); const directory = options.outputDirectory ?? './tmp'; if (!(0, fs_1.existsSync)(directory)) (0, fs_1.mkdirSync)(directory); (0, fs_1.writeFileSync)(`${directory}/openapi.yaml`, fastify.swagger({ yaml: true })); (0, fs_1.writeFileSync)(`${directory}/openapi.json`, JSON.stringify(fastify.swagger(), null, 2)); await fastify.close(); } //# sourceMappingURL=openapi.js.map