UNPKG

@autorest/openapi-to-cadl

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

42 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformEnum = void 0; const codemodel_1 = require("@autorest/codemodel"); const data_types_1 = require("../data-types"); const decorators_1 = require("../utils/decorators"); const values_1 = require("../utils/values"); function transformEnum(schema, codeModel) { const dataTypes = (0, data_types_1.getDataTypes)(codeModel); let cadlEnum = dataTypes.get(schema); if (!cadlEnum) { cadlEnum = { decorators: (0, decorators_1.getEnumDecorators)(schema), doc: schema.language.default.documentation, kind: "enum", name: schema.language.default.name.replace(/-/g, "_"), members: schema.choices.map((choice) => transformChoiceMember(choice)), isExtensible: !isSealedChoiceSchema(schema), ...(hasSyntheticName(schema) && { fixMe: [ "// FIXME: (synthetic-name) This enum has a generated name. Please rename it to something more appropriate.", ], }), }; } return cadlEnum; } exports.transformEnum = transformEnum; function hasSyntheticName(schema) { return schema.language.default.name.startsWith("components·"); } function transformChoiceMember(member) { return { doc: member.language.default.description, name: member.language.default.name, value: (0, values_1.transformValue)(member.value), }; } const isSealedChoiceSchema = (schema) => { return schema.type === codemodel_1.SchemaType.SealedChoice; }; //# sourceMappingURL=transform-choices.js.map