Code coverage report for master/dedent.js

Statements: 100% (17 / 17)      Branches: 100% (4 / 4)      Functions: 100% (2 / 2)      Lines: 100% (16 / 16)      Ignored: none     

All files » master/ » dedent.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 291   1 27 27   27 21     27     1 27 27 27   27   14 4   10     14    
var makeString = require('./helper/makeString');
 
function getIndent(str) {
  var matches = str.match(/^[\s\\t]*/gm);
  var indent = matches[0].length;
  
  for (var i = 1; i < matches.length; i++) {
    indent = Math.min(matches[i].length, indent);
  }
 
  return indent;
}
 
module.exports = function dedent(str, pattern) {
  str = makeString(str);
  var indent = getIndent(str);
  var reg;
 
  if (indent === 0) return str;
 
  if (typeof pattern === 'string') {
    reg = new RegExp('^' + pattern, 'gm');
  } else {
    reg = new RegExp('^[ \\t]{' + indent + '}', 'gm');
  }
 
  return str.replace(reg, '');
};