UNPKG

@autorest/openapi-to-typespec

Version:

Autorest plugin to scaffold a Typespec definition from an OpenAPI document

45 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateObject = void 0; const decorators_1 = require("../utils/decorators"); const docs_1 = require("../utils/docs"); const model_generation_1 = require("../utils/model-generation"); const suppressions_1 = require("../utils/suppressions"); function generateObject(typespecObject) { var _a, _b, _c; let definitions = []; const fixme = getFixme(typespecObject); fixme && definitions.push(fixme); const doc = (0, docs_1.generateDocs)(typespecObject); definitions.push(doc); const decorators = (0, decorators_1.generateDecorators)(typespecObject.decorators); decorators && definitions.push(decorators); typespecObject.suppressions && definitions.push(...(0, suppressions_1.generateSuppressions)(typespecObject.suppressions)); if ((_a = typespecObject.extendedParents) === null || _a === void 0 ? void 0 : _a.length) { const firstParent = typespecObject.extendedParents[0]; definitions.push(`model ${typespecObject.name} extends ${firstParent} {`); } else if (typespecObject.alias) { const { alias, params } = typespecObject.alias; definitions.push(`model ${typespecObject.name} is ${alias}${params ? `<${params.join(",")}>` : ""} {`); } else { definitions.push(`model ${typespecObject.name} {`); } if ((_b = typespecObject.spreadParents) === null || _b === void 0 ? void 0 : _b.length) { for (const parent of typespecObject.spreadParents) { definitions.push(`...${parent};`); } } definitions = [...definitions, ...(0, model_generation_1.getModelPropertiesDeclarations)((_c = typespecObject.properties) !== null && _c !== void 0 ? _c : [])]; definitions.push("}"); return definitions.join("\n"); } exports.generateObject = generateObject; function getFixme(typespecObject) { if (!typespecObject.fixMe) { return undefined; } return typespecObject.fixMe.join("\n"); } //# sourceMappingURL=generate-object.js.map