@autorest/openapi-to-cadl
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
55 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateSummary = exports.generateDocs = void 0;
function generateDocs({ doc }) {
if (isEmptyDoc(doc)) {
return ``;
}
let docString = Array.isArray(doc) ? doc.join("\n") : doc;
docString = docString.replace(/\r\n/g, "\n");
docString = docString.replace(/\\/g, "\\\\");
docString = docString.replace(/"/g, '\\"');
docString = lineWrap(docString);
return `@doc(${docString})`;
}
exports.generateDocs = generateDocs;
function generateSummary({ summary }) {
if (isEmptyDoc(summary)) {
return "";
}
return `@summary(${lineWrap(summary)})`;
}
exports.generateSummary = generateSummary;
function lineWrap(doc) {
const maxLength = 80;
if (doc.length <= maxLength && !doc.includes("\n")) {
return `"${doc}"`;
}
const lines = [`"""`];
const words = doc.split(" ");
let line = ``;
for (const word of words) {
if (word.length + 1 > maxLength - line.length) {
// Don't add the leading space
lines.push(line.substring(0, line.length - 1));
// Start a new line
line = `${word} `;
}
else {
line = `${line}${word} `;
}
}
lines.push(`${line.substring(0, line.length - 1)}`);
lines.push(`"""`);
return lines.join("\n");
}
function isEmptyDoc(doc) {
if (!doc) {
return true;
}
if (Array.isArray(doc) && !doc.length) {
return true;
}
return false;
}
//# sourceMappingURL=docs.js.map