UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

88 lines 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSuppressionsForProvisioningState = exports.getSuppressionsForModelExtension = exports.getSuppressionWithCode = exports.generateSuppressions = exports.generateSuppressionForNoEnum = exports.checkArmDeleteOperationResponseCodes = exports.checkNoResponseBody = exports.checkArmPutOperationResponseCodes = exports.SuppressionCode = void 0; var SuppressionCode; (function (SuppressionCode) { SuppressionCode["NoEnum"] = "@azure-tools/typespec-azure-core/no-enum"; SuppressionCode["ArmPutOperationResponseCodes"] = "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes"; SuppressionCode["DocumentRequired"] = "@azure-tools/typespec-azure-core/documentation-required"; SuppressionCode["NoResponseBody"] = "@azure-tools/typespec-azure-resource-manager/no-response-body"; SuppressionCode["LroLocationHeader"] = "@azure-tools/typespec-azure-resource-manager/lro-location-header"; SuppressionCode["ArmDeleteOperationResponseCodes"] = "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes"; SuppressionCode["ArmResourceInvalidEnvelopeProperty"] = "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property"; SuppressionCode["ArmNoRecord"] = "@azure-tools/typespec-azure-resource-manager/arm-no-record"; SuppressionCode["ArmResourceInterfaceRequiresDecorator"] = "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator"; })(SuppressionCode || (exports.SuppressionCode = SuppressionCode = {})); function checkArmPutOperationResponseCodes(responses, asyncNames, syncNames) { if ((responses.length === 2 && responses.find((r) => r.name === asyncNames._200Name) !== undefined && responses.find((r) => r.name === asyncNames._201Name) !== undefined) || (responses.find((r) => r.name === syncNames._201Name) !== undefined && responses.find((r) => r.name === syncNames._200Name) !== undefined)) return undefined; return getSuppressionWithCode(SuppressionCode.ArmPutOperationResponseCodes); } exports.checkArmPutOperationResponseCodes = checkArmPutOperationResponseCodes; function checkNoResponseBody(responses, asyncNames, syncNames) { // 202 and 204 templates don't accept body, therefore if they have a body, it must be like `& {@body _ : T}` function hasBody(response) { return (response.additionalProperties !== undefined && response.additionalProperties.find((p) => { var _a; return ((_a = p.decorators) === null || _a === void 0 ? void 0 : _a.find((d) => d.name === "bodyRoot" || d.name === "body")) !== undefined; }) !== undefined); } if (responses.find((r) => ((r.name === asyncNames._202Name || r.name === syncNames._202Name) && hasBody(r)) || ((r.name === asyncNames._204Name || r.name === syncNames._204Name) && hasBody(r)))) { return getSuppressionWithCode(SuppressionCode.NoResponseBody); } else return undefined; } exports.checkNoResponseBody = checkNoResponseBody; function checkArmDeleteOperationResponseCodes(responses, asyncNames, syncNames) { if ((responses.length === 2 && responses.find((r) => r.name === asyncNames._200Name) !== undefined && responses.find((r) => r.name === asyncNames._204Name) !== undefined) || (responses.find((r) => r.name === syncNames._204Name) !== undefined && responses.find((r) => r.name === syncNames._200Name) !== undefined)) return undefined; else return getSuppressionWithCode(SuppressionCode.ArmDeleteOperationResponseCodes); } exports.checkArmDeleteOperationResponseCodes = checkArmDeleteOperationResponseCodes; function generateSuppressionForNoEnum() { return `#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility"`; } exports.generateSuppressionForNoEnum = generateSuppressionForNoEnum; function generateSuppressions(suppressions) { const definitions = []; for (const suppression of suppressions) { definitions.push(`#suppress "${suppression.suppressionCode}" "${suppression.suppressionMessage}"`); } return definitions; } exports.generateSuppressions = generateSuppressions; function getSuppressionWithCode(suppressionCode) { return { suppressionCode, suppressionMessage: "For backward compatibility", }; } exports.getSuppressionWithCode = getSuppressionWithCode; function getSuppressionsForModelExtension() { return [ { suppressionCode: "@azure-tools/typespec-azure-core/composition-over-inheritance", suppressionMessage: "For backward compatibility", }, ]; } exports.getSuppressionsForModelExtension = getSuppressionsForModelExtension; function getSuppressionsForProvisioningState() { return [ { suppressionCode: "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state", suppressionMessage: "For backward compatibility", }, ]; } exports.getSuppressionsForProvisioningState = getSuppressionsForProvisioningState; //# sourceMappingURL=suppressions.js.map