UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

37 lines (32 loc) 1.25 kB
import { getSession } from "../autorest-session"; import { TypespecProgram } from "../interfaces"; import { formatFile } from "../utils/format"; export async function emitPackage(filePath: string, program: TypespecProgram): Promise<void> { const session = getSession(); // Default to false; const includePackage = session.configuration["include-package"] === true; if (!includePackage) { return; } const name = program.serviceInformation.name.toLowerCase().replace(/ /g, "-"); const description = program.serviceInformation.doc; const content = JSON.stringify(getPackage(name, description as string)); session.writeFile({ filename: filePath, content: await formatFile(content, filePath) }); } const getPackage = (name: string, description: string) => ({ name: `@typespec-api-spec/${name}`, author: "Microsoft Corporation", description, license: "MIT", dependencies: { "@typespec/compiler": "^0.44.0", "@typespec/rest": "^0.44.0", "@typespec/http": "^0.44.0", "@typespec/versioning": "^0.44.0", "@typespec/prettier-plugin-typespec": "^0.44.0", "@azure-tools/typespec-azure-core": "^0.30.0", "@azure-tools/typespec-autorest": "^0.30.0", prettier: "^2.7.1", }, private: true, });