UNPKG

@autorest/openapi-to-cadl

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

51 lines 2.44 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.processRequest = void 0; const path_1 = require("path"); const codemodel_1 = require("@autorest/codemodel"); const extension_base_1 = require("@autorest/extension-base"); const autorest_session_1 = require("./autorest-session"); const emit_cadl_config_1 = require("./emiters/emit-cadl-config"); const emit_main_1 = require("./emiters/emit-main"); const emit_models_1 = require("./emiters/emit-models"); const emit_package_1 = require("./emiters/emit-package"); const emit_routes_1 = require("./emiters/emit-routes"); const model_1 = require("./model"); const name_pretransform_1 = require("./pretransforms/name-pretransform"); const errors_1 = require("./utils/errors"); const paging_1 = require("./utils/paging"); const resources_1 = require("./utils/resources"); async function processRequest(host) { const session = await (0, extension_base_1.startSession)(host, codemodel_1.codeModelSchema); (0, autorest_session_1.setSession)(session); const codeModel = session.model; (0, name_pretransform_1.pretransformNames)(codeModel); (0, paging_1.markPagination)(codeModel); (0, errors_1.markErrorModels)(codeModel); (0, resources_1.markResources)(codeModel); const cadlProgramDetails = (0, model_1.getModel)(codeModel); await (0, emit_models_1.emitModels)(getFilePath(session, "models.tsp"), cadlProgramDetails); await (0, emit_routes_1.emitRoutes)(getFilePath(session, "routes.tsp"), cadlProgramDetails); await (0, emit_main_1.emitMain)(getFilePath(session, "main.tsp"), cadlProgramDetails); await (0, emit_package_1.emitPackage)(getFilePath(session, "package.json"), cadlProgramDetails); await (0, emit_cadl_config_1.emitCadlConfig)(getFilePath(session, "tspconfig.yaml")); } exports.processRequest = processRequest; function getOutuptDirectory(session) { var _a; return (_a = session.configuration["src-path"]) !== null && _a !== void 0 ? _a : ""; } function getFilePath(session, fileName) { return (0, path_1.join)(getOutuptDirectory(session), fileName); } async function main() { const pluginHost = new extension_base_1.AutoRestExtension(); pluginHost.add("openapi-to-cadl", processRequest); await pluginHost.run(); } main().catch((e) => { throw new Error(e); }); //# sourceMappingURL=main.js.map