UNPKG

@shopify/prettier-plugin-liquid

Version:
56 lines 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasMoreThanOneNewLineBetweenNodes = exports.hasLineBreakInRange = exports.originallyHadLineBreaks = exports.reindent = exports.markupLines = exports.bodyLines = exports.trimEnd = exports.trim = exports.isWhitespace = void 0; function isWhitespace(source, loc) { if (loc < 0 || loc >= source.length) return false; return !!source[loc].match(/\s/); } exports.isWhitespace = isWhitespace; const trim = (x) => x.trim(); exports.trim = trim; const trimEnd = (x) => x.trimEnd(); exports.trimEnd = trimEnd; function bodyLines(str) { return str .replace(/^(?: |\t)*(\r?\n)*|\s*$/g, '') // only want the meat .split(/\r?\n/); } exports.bodyLines = bodyLines; function markupLines(markup) { return markup.trim().split('\n'); } exports.markupLines = markupLines; function reindent(lines, skipFirst = false) { const minIndentLevel = lines .filter((_, i) => (skipFirst ? i > 0 : true)) .filter((line) => line.trim().length > 0) .map((line) => line.match(/^\s*/)[0].length) .reduce((a, b) => Math.min(a, b), Infinity); if (minIndentLevel === Infinity) { return lines; } const indentStrip = new RegExp('^' + '\\s'.repeat(minIndentLevel)); return lines.map((line) => line.replace(indentStrip, '')).map(exports.trimEnd); } exports.reindent = reindent; function originallyHadLineBreaks(path, { locStart, locEnd }) { const node = path.getValue(); return hasLineBreakInRange(node.source, locStart(node), locEnd(node)); } exports.originallyHadLineBreaks = originallyHadLineBreaks; function hasLineBreakInRange(source, locStart, locEnd) { const indexOfNewLine = source.indexOf('\n', locStart); return 0 <= indexOfNewLine && indexOfNewLine < locEnd; } exports.hasLineBreakInRange = hasLineBreakInRange; function hasMoreThanOneNewLineBetweenNodes(source, prev, next) { var _a; if (!prev || !next) return false; const between = source.slice(prev.position.end, next.position.start); const count = ((_a = between.match(/\n/g)) === null || _a === void 0 ? void 0 : _a.length) || 0; return count > 1; } exports.hasMoreThanOneNewLineBetweenNodes = hasMoreThanOneNewLineBetweenNodes; //# sourceMappingURL=string.js.map