UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

48 lines 2.58 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTSPNonResourceOperationGroupName = exports.getTSPOperationGroupName = void 0; const pluralize_1 = __importDefault(require("pluralize")); const autorest_session_1 = require("../autorest-session"); const options_1 = require("../options"); const operationGroupNameCache = new Map(); function getTSPOperationGroupName(resourceMetadata) { if (operationGroupNameCache.has(resourceMetadata)) return operationGroupNameCache.get(resourceMetadata); // Try pluralizing the resource name first let operationGroupName = (0, pluralize_1.default)(resourceMetadata.SwaggerModelName); if (operationGroupName !== resourceMetadata.SwaggerModelName && !isExistingOperationGroupName(operationGroupName)) { operationGroupNameCache.set(resourceMetadata, operationGroupName); } else { // Try operationId then operationGroupName = resourceMetadata.GetOperation.OperationID.split("_")[0]; if (operationGroupName !== resourceMetadata.SwaggerModelName && !isExistingOperationGroupName(operationGroupName)) { operationGroupNameCache.set(resourceMetadata, operationGroupName); } else { operationGroupName = `${resourceMetadata.SwaggerModelName}OperationGroup`; operationGroupNameCache.set(resourceMetadata, operationGroupName); } } return operationGroupName; } exports.getTSPOperationGroupName = getTSPOperationGroupName; function isExistingOperationGroupName(operationGroupName) { var _a; const codeModel = (0, autorest_session_1.getSession)().model; return (((_a = codeModel.schemas.objects) === null || _a === void 0 ? void 0 : _a.find((o) => o.language.default.name === operationGroupName)) !== undefined || Array.from(operationGroupNameCache.values()).find((v) => v === operationGroupName) !== undefined); } function getTSPNonResourceOperationGroupName(name) { const operationGroupName = `${name}OperationGroup`; if (!isExistingOperationGroupName(operationGroupName)) { return operationGroupName; } // Arm resource operation group name cannot be ended with "Operations" return (0, options_1.getOptions)().isArm ? `${name}NonResourceOperationGroup` : `${name}Operations`; } exports.getTSPNonResourceOperationGroupName = getTSPNonResourceOperationGroupName; //# sourceMappingURL=operation-group.js.map