@autorest/openapi-to-cadl
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
51 lines • 2.44 kB
JavaScript
;
// 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