UNPKG

@atlaskit/editor-wikimarkup-transformer

Version:

Wiki markup transformer for JIRA and Confluence

71 lines (70 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listItem = void 0; var _ = require(".."); var _paragraph = require("./paragraph"); var _unknown = require("./unknown"); var _codeBlock = require("./code-block"); var _mediaGroup = require("./media-group"); var _mediaInline = require("./media-inline"); var listItem = exports.listItem = function listItem(node, prefix, context) { var result = []; var contentBuffer = []; node.forEach(function (n) { switch (n.type.name) { case 'paragraph': { contentBuffer.push((0, _paragraph.paragraph)(n, { context: context })); break; } case 'bulletList': case 'orderedList': case 'taskList': { if (contentBuffer.length) { result.push("".concat(prefix, " ").concat(contentBuffer.join('\n'))); contentBuffer = []; } // eslint-disable-next-line @atlassian/perf-linting/no-expensive-split-replace -- Ignored via go/ees017 (to be fixed) var nestedList = (0, _.encode)(n, context).split('\n').map(function (line) { if (['#', '*'].indexOf(line.substr(0, 1)) !== -1) { return "".concat(prefix).concat(line); } return line; }).join('\n'); result.push(nestedList); break; } case 'codeBlock': { contentBuffer.push((0, _codeBlock.codeBlock)(n)); break; } case 'mediaInline': { contentBuffer.push((0, _mediaInline.mediaInline)(n, { context: context })); break; } case 'mediaSingle': { // mediaSingle and mediaGroup are holding the same conversion logic contentBuffer.push((0, _mediaGroup.mediaGroup)(n, { context: context })); break; } default: contentBuffer.push((0, _unknown.unknown)(n)); } }); if (contentBuffer.length) { result.push("".concat(prefix, " ").concat(contentBuffer.join('\n'))); } return result.join('\n'); };