UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

37 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.emitRoutes = emitRoutes; const path_1 = require("path"); const autorest_session_1 = require("../autorest-session"); const generate_operations_1 = require("../generate/generate-operations"); const options_1 = require("../options"); const format_1 = require("../utils/format"); const imports_1 = require("../utils/imports"); const namespace_1 = require("../utils/namespace"); const emit_main_1 = require("./emit-main"); async function emitRoutes(program, basePath) { if (program.operationGroups.length === 0) { return; } const content = generateRoutes(program); const session = (0, autorest_session_1.getSession)(); const filePath = (0, path_1.join)(basePath, "routes.tsp"); session.writeFile({ filename: filePath, content: await (0, format_1.formatTypespecFile)(content, filePath) }); for (const operationGroup of program.operationGroups) { const examples = (0, generate_operations_1.generateOperationGroupExamples)(operationGroup); (0, emit_main_1.emitExamples)(examples, program.serviceInformation.versions, basePath); } } function generateRoutes(program) { const { isArm } = (0, options_1.getOptions)(); const { operationGroups } = program; const { modules, namespaces } = (0, imports_1.getRoutesImports)(program); const content = operationGroups.map(generate_operations_1.generateOperationGroup); const result = [...modules, "\n", ...namespaces, "\n", (0, namespace_1.getNamespaceStatement)(program), "\n", ...content].join("\n"); if (isArm) { return ("// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually\n\n" + result); } return result; } //# sourceMappingURL=emit-routes.js.map