UNPKG

markdown-table-prettify

Version:

Transforms markdown tables to be more readable.

35 lines (34 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TableFactory = void 0; var table_1 = require("../models/table"); var cell_1 = require("../models/cell"); var row_1 = require("../models/row"); var TableFactory = /** @class */ (function () { function TableFactory(_alignmentFactory, _selectionInterpreter, _transformer, _tableIndentationDetector) { this._alignmentFactory = _alignmentFactory; this._selectionInterpreter = _selectionInterpreter; this._transformer = _transformer; this._tableIndentationDetector = _tableIndentationDetector; } TableFactory.prototype.getModel = function (document, range) { var _this = this; var lines = document.getLines(range); if (lines == null || lines.length == 0) throw new Error("Can't create table model from no lines."); var rowsWithoutSeparator = lines .filter(function (_, i) { return i != 1; }) .map(function (line) { return new row_1.Row(_this._selectionInterpreter .splitLine(line.value) .map(function (c) { return new cell_1.Cell(c); }), line.EOL); }); var separatorLine = lines[1]; var separator = this._selectionInterpreter.splitLine(separatorLine.value); var alignments = separator != null && separator.length > 0 ? this._alignmentFactory.createAlignments(separator) : []; var leftPad = this._tableIndentationDetector.getLeftPad(lines.map(function (l) { return l.value; })); return this._transformer.process(new table_1.Table(rowsWithoutSeparator, separatorLine.EOL, alignments, leftPad)); }; return TableFactory; }()); exports.TableFactory = TableFactory;