@autorest/openapi-to-cadl
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
21 lines (17 loc) • 903 B
text/typescript
import { getSession } from "../autorest-session";
import { generateOperationGroup } from "../generate/generate-operations";
import { CadlProgram } from "../interfaces";
import { formatCadlFile } from "../utils/format";
import { getRoutesImports } from "../utils/imports";
import { getNamespace } from "../utils/namespace";
export async function emitRoutes(filePath: string, program: CadlProgram): Promise<void> {
const content = generateRoutes(program);
const session = getSession();
session.writeFile({ filename: filePath, content: await formatCadlFile(content, filePath) });
}
function generateRoutes(program: CadlProgram) {
const { operationGroups } = program;
const { modules, namespaces } = getRoutesImports(program);
const content = operationGroups.map(generateOperationGroup);
return [...modules, "\n", ...namespaces, "\n", getNamespace(program), "\n", ...content].join("\n");
}