@aashari/mcp-server-atlassian-jira
Version:
Node.js/TypeScript MCP server for Atlassian Jira. Equips AI systems (LLMs) with tools to list/get projects, search/get issues (using JQL/ID), and view dev info (commits, PRs). Connects AI capabilities directly into Jira project management and issue tracki
53 lines (52 loc) • 1.75 kB
JavaScript
;
/**
* Converts Atlassian Document Format (ADF) to Markdown
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.adfToMarkdown = adfToMarkdown;
const logger_util_js_1 = require("./logger.util.js");
const adf_node_processors_util_js_1 = require("./adf-node-processors.util.js");
const toMarkdownLogger = logger_util_js_1.Logger.forContext('utils/adf-to-markdown.util.ts');
/**
* Convert Atlassian Document Format (ADF) to Markdown
*
* @param adf - The ADF content to convert (can be string or object)
* @returns The converted Markdown content
*/
function adfToMarkdown(adf) {
const methodLogger = toMarkdownLogger.forMethod('adfToMarkdown');
try {
// Handle empty or undefined input
if (!adf) {
return '';
}
// Parse ADF if it's a string
let adfDoc;
if (typeof adf === 'string') {
try {
adfDoc = JSON.parse(adf);
}
catch {
return adf; // Return as-is if not valid JSON
}
}
else if (typeof adf === 'object') {
adfDoc = adf;
}
else {
return String(adf);
}
// Check if it's a valid ADF document
if (!adfDoc.content || !Array.isArray(adfDoc.content)) {
return '';
}
// Process the document
const markdown = (0, adf_node_processors_util_js_1.processAdfContent)(adfDoc.content);
methodLogger.debug(`Converted ADF to Markdown, length: ${markdown.length}`);
return markdown;
}
catch (error) {
methodLogger.error('Error converting ADF to Markdown:', error);
return '*Error converting description format*';
}
}