@autorest/openapi-to-typespec
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
37 lines • 1.84 kB
JavaScript
"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