UNPKG

@awesome-fe/translate

Version:
61 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeIndent = void 0; var get_indent_1 = require("./get-indent"); var tab = '\t'; var lineFeed = '\n'; var space = ' '; var exclamationMark = '!'; // Remove the minimum indent from every line in `value`. Supports both tab, // spaced, and mixed indentation (as well as possible). function removeIndent(value, maximum) { var values = value.split(lineFeed); var position = values.length + 1; var minIndent = Infinity; var matrix = []; var index; var indentation; var stops; var padding; values.unshift(space.repeat(maximum) + exclamationMark); while (position--) { indentation = get_indent_1.getIndent(values[position]); matrix[position] = indentation.stops; if (!values[position].trim().length) { continue; } if (indentation.indent) { if (indentation.indent > 0 && indentation.indent < minIndent) { minIndent = indentation.indent; } } else { minIndent = Infinity; break; } } if (minIndent !== Infinity) { position = values.length; while (position--) { stops = matrix[position]; index = minIndent; while (index && !(index in stops)) { index--; } if (values[position].trim().length && minIndent && index !== minIndent) { padding = tab; } else { padding = ''; } values[position] = padding + values[position].slice(index in stops ? stops[index] + 1 : 0); } } values.shift(); return values.join(lineFeed); } exports.removeIndent = removeIndent; //# sourceMappingURL=remove-indent.js.map