/** * Strips from each line any leading whitespace that is shared by all lines. * * @param str string * @returns string */ module.exports = function unindent(str) { var lines = str.split('\n'); var xs = lines.filter(function (x) { return /\S/.test(x); }).sort(); if (xs.length === 0) return str; var a = xs[0]; var b = xs[xs.length - 1]; var maxLength = Math.min(a.length, b.length); var i = 0; while (i < maxLength && /\s/.test(a.charAt(i)) && a.charAt(i) === b.charAt(i)) { i += 1; } if (i === 0) return str; return lines.map(function (line) { return line.substr(i); }).join('\n'); };