UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

66 lines 3.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTSPOperationGroupName = getTSPOperationGroupName; exports.getSwaggerOperationGroupName = getSwaggerOperationGroupName; exports.getSwaggerOperationName = getSwaggerOperationName; exports.getTSPNonResourceOperationGroupName = getTSPNonResourceOperationGroupName; exports.isInterfaceName = isInterfaceName; 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; } function getSwaggerOperationGroupName(operationId) { const splittedOperationId = operationId.split("_"); return splittedOperationId.length === 2 ? splittedOperationId[0] : ""; } 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 || isInterfaceName(operationGroupName)); } function getSwaggerOperationName(operationId) { const splittedOperationId = operationId.split("_"); return splittedOperationId.length === 2 ? splittedOperationId[1] : operationId; } const nonResourceOperationGroupNameCache = new Set(); function getTSPNonResourceOperationGroupName(name) { const operationGroupName = `${name}OperationGroup`; if (!isExistingOperationGroupName(operationGroupName)) { nonResourceOperationGroupNameCache.add(operationGroupName); return operationGroupName; } // Arm resource operation group name cannot be ended with "Operations" const groupName = (0, options_1.getOptions)().isArm ? `${name}NonResourceOperationGroup` : `${name}Operations`; nonResourceOperationGroupNameCache.add(groupName); return groupName; } function isInterfaceName(name) { return (Array.from(operationGroupNameCache.values()).find((v) => v === name) !== undefined || nonResourceOperationGroupNameCache.has(name)); } //# sourceMappingURL=operation-group.js.map